[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Customize ‘window-state-get/put’
From: |
Juri Linkov |
Subject: |
Re: Customize ‘window-state-get/put’ |
Date: |
Tue, 08 Oct 2019 01:01:14 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) |
> I’m adding the ability to store and restore window configuration for
> gdb-mi. To make it work for gdb-mi I need to change what
> ‘window-state-get’ save - now it saves buffers and I need to not save
> buffers. That’s because the buffer names for each window will change
> across gdb sessions debugging different programs. Instead of buffer
> name I need to store a symbol representing the ”buffer type” of the
> window. E.g., register, memory, breakpoint, etc.
>
> So instead of
>
> (buffer "*scratch*"
> (selected . t)
> (hscroll . 0)
> (fringes 8 8 nil)
> (margins nil)
> (scroll-bars nil 0 t nil 0 t)
> (vscroll . 0)
> (dedicated)
> (point . #<marker at 193 in *scratch*>)
> (start . #<marker at 1 in *scratch*>))
>
> I would store something like
>
> (buffer 'register)
>
> I would just add an optional argument that handles the extraction of
> buffer information and another to restore a buffer from that
> information. Does it sound like a good idea?
Is this needed because of such dynamically generated buffer names?
(defun gdb-memory-buffer-name ()
(concat "*memory of " (gdb-get-target-string) "*"))
Not too long ago we discussed an idea of defining a “window layout” -
a data structure similar to the returned by ‘window-state-get’, but
where instead of buffer names there are buffer regexps, so when
‘display-buffer’ needs to display a buffer, it consults a predefined
layout, finds the right window in its window tree, and displays the
buffer in the window whose buffer regexp matches the displayed
buffer name. A new function like ‘window-state-get’ could generate
a layout from the current window configuration, or even from the
window state. Then such layout could be exported to anywhere:
saved in the init file, in packages, etc.
BTW, while you are working on gdb-mi, you could also try to replace
the ad-hoc tabs implemented in the header-line, with real tabs in
the tab-line for “Locals”, “Registers”, “Breakpoints”, “Threads”, etc.
Just display these buffers in their dedicated window, and the tab-line
will show them as tabs.
- Customize ‘window-state-get/put’, Yuan Fu, 2019/10/07
- Re: Customize ‘window-state-get/put’,
Juri Linkov <=
- Re: Customize ‘window-state-get/put’, Yuan Fu, 2019/10/07
- Re: Customize ‘window-state-get/put’, Juri Linkov, 2019/10/09
- Re: Customize ‘window-state-get/put’, Yuan Fu, 2019/10/09
- Re: Customize ‘window-state-get/put’, Juri Linkov, 2019/10/10
- Re: Customize ‘window-state-get/put’, Yuan Fu, 2019/10/10
- Re: Customize ‘window-state-get/put’, martin rudalics, 2019/10/11
- Re: Customize ‘window-state-get/put’, Yuan Fu, 2019/10/12
- Re: Customize ‘window-state-get/put’, martin rudalics, 2019/10/13
- Re: Customize ‘window-state-get/put’, Juri Linkov, 2019/10/12
- Re: Customize ‘window-state-get/put’, Yuan Fu, 2019/10/13