I'm experimenting with magit-section as the UI library for an Emacs package. Without going into too much detail, this package interfaces with a websocket and displays the data it receives as an expandable line in the buffer, preferably as a
magit-section item. Nested inside it are more
magit-section items with other data categories.
Unfortunately, I can't figure out, how to insert a section dynamically (on a websocket message). The following works well enough on buffer setup:
(magit-insert-section (root-section) ;; top-lvl section containing all buffer data (magit-insert-section (list-section) ;; first visible section with a heading (magit-insert-heading "Websocket messages:") (magit-insert-section (item-section nil t) ;; nested data is hidden (magit-insert-heading "List item:") (magit-insert-section-body ;; more data and sections ))))
But adding an
item-section to the
list-section dynamically is very difficult.
Is it possible? If it is, how?
I'd really prefer
magit-section because of it's ergonomics (setting a specific keymap for every section).