Cudatext Code tree

mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

Еще раз поясню, зачем нужно "замораживаеть" обновление Code tree.
Пусть у вас файл-календарь:
+ годы
++ месяцы
+++ даты
Вы работаете с 2-3 разными месяцами и вам нужно, чтобы работать с январем и сентябрем,
а иногда и заглядывать в март.
Т.е. три узла второго нужно держать открытым.
Code tree обновляет фолдинг после перемещения в другой узел, свораяивая остальные узлы.
Запоминать программно состояние дерева программно сложно, хотя есть программы, которые это делают.
Возможно, есть какие-то простые алгоритмы или API для запоминания дерева.
CherryTree помнит все состояние дерева, но где хранит, я не нашел!
GitHub - giuspen/cherrytree: cherrytree
https://github.com/giuspen/cherrytree

В xml-файле нет (или я не увидел) параметра свернтутости узла.

Возникла идея "заморозить" обновление Code tree.
Для этого подходит параметр
//Delay after text change (in milliseconds), after which code-tree
//starts to fill.
"ui_tree_time_fill": 2000,

По умолчанию дерево обновляется через 2 сеунды после измениия состояния или текста заголовка/заголовков, перемещения каретки в другой блок.
Если установить параметр "ui_tree_time_fill": 2000000,
с помощью app_proc(PROC_CONFIG_READ, '{"ui_tree_time_fill": 2000000}')
то фолдинг будет возможен вручную, но его обновление происходить не будет,
вернее, через 2000 секунд.
К сожалению, макроса для app_proc нет, поэтому делаем простенький плагин для этой функции.
Идеи и вопросы по нему в теме Вопросы по плагинам, начиная с 3 страницы.
(259) CudaText. Вопросы по плагинам - Страница 3 - UVviewsoft forums
https://synwrite.sourceforge.net/forums ... 2&start=20

Сам текст плагина я размещу после здесь и, думаю, на Гитхабе.
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

mix-7 wrote: 29.04.2025 13:32 <...>
(И как CherryTree запоминает конфигурацию дерева?
здесь ссылки https://synwrite.sourceforge.net/forums ... 0&start=60
Куда копать?)
вся "магия" ("рисунок" ветвей дерева, их состояние свернуто/развернуто) хранится в
~/.var/app/net.giuspen.cherrytree/config/cherrytree/config.cfg
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

А как перейти в поле ввода фильтра Code tree не мышкой, а клавиатурой?
Для поиска есть Ctrl-F, а для Code tree?
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

"Все уже украдено до нас" (с) (Если вам что-то надо от CudaText, это уже реализовано.)
Не надо никакого замораживания дерева и плагина для этого, чтобы структура дерева сохранялась (не сворачивались в Code tree развернутые узлы)!

Если мы не переключаем вкладку, не переименовываем заголовок, блоки остаются в том же состоянии.
И может быть развернуто больше одного узла.
Но стоит нам переключить вкладку, добавить или переименовать блок, как все блоки, кроме текущего, сворачиваются.
При переключении вкладок не нужно перерисовывать Code tree.
Ведь изменений Code tree не было, просто посмотрели другой файл.

Поэтому просьба - не перерисовывать Code tree после переключения вкладок.
Спасибо!
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

> как перейти в поле ввода фильтра Code tree не мышкой, а клавиатурой?

Cmd palette: "code tree: focus filter".
повесить хоткей на эту кмд.
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

>просьба - не перерисовывать Code tree после переключения вкладок.

дерево хранится в "буфере" ввнутри своего таба. перерисовывать конечно надо, т к мы копируем данные из этого "буфера" в контрол дерева (после переключания таба). может еще и сохранять свернутость узлов. надо подумать, это не просто сделать.
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

> перерисовывать конечно надо,

Жалко, что нельзя оставить.

А нельзя ли перед переключением вкладки контрол ее дерева сохранять? Сильно ли это замедлит переключение, если возможно.
Ведь контрол дерева построен, отображается, имеет где-то свое записанное состояние. Вот его бы зафиксировать!

ОК, еще может для последних двух - n вкладок хранить буферы дерева и восстанавливать.

Или - более простое и универсальное решение - ставить пины (по аналогии с маркерами, закладками) на те блоки, которые хотелось бы иметь открытыми.
Как очки на книжке, чтобы страницы не листались от сквозняка.

Это, правда, новая сущность.
Но зато не надо запоминать то, что, возможно, не надо запоминать.

Если не плодить сущности, то маркеры красные по умолчанию, а маркеры-"грузики" пусть будут синими.

Да, не очень идея с маркерами...

А было бы здорово при переключении оставаться с теми же открытыми нодами, с той же "картинкой".
Удобно. Стабильно. Надежно. Т.е. лояльность бренду повышается из-за такого удобства. позволю себе представить.
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

> Cmd palette: "code tree: focus filter".

ЗдОрово! Все уже реализовано!
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

я и говорю что надо посмотреть, как сохранять свернутость узлов codetree при переключении табов. уже и так сохраняется содержимое дерева. но не свернутость узлов. пишется в "буфер" внутри таба. после возврата на старый таб "буфер" копируется в один общий контрол codetree.
но свернутость пока НЕ восстанавливается AFAIR.
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

как времяное решение, опция "ui_tree_unfold":true вам пригодится?
Post Reply