Еще раз поясню, зачем нужно "замораживаеть" обновление 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
Сам текст плагина я размещу после здесь и, думаю, на Гитхабе.
Cudatext Code tree
Re: Cudatext Code tree
вся "магия" ("рисунок" ветвей дерева, их состояние свернуто/развернуто) хранится в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
Re: Cudatext Code tree
А как перейти в поле ввода фильтра Code tree не мышкой, а клавиатурой?
Для поиска есть Ctrl-F, а для Code tree?
Для поиска есть Ctrl-F, а для Code tree?
Re: Cudatext Code tree
"Все уже украдено до нас" (с) (Если вам что-то надо от CudaText, это уже реализовано.)
Не надо никакого замораживания дерева и плагина для этого, чтобы структура дерева сохранялась (не сворачивались в Code tree развернутые узлы)!
Если мы не переключаем вкладку, не переименовываем заголовок, блоки остаются в том же состоянии.
И может быть развернуто больше одного узла.
Но стоит нам переключить вкладку, добавить или переименовать блок, как все блоки, кроме текущего, сворачиваются.
При переключении вкладок не нужно перерисовывать Code tree.
Ведь изменений Code tree не было, просто посмотрели другой файл.
Поэтому просьба - не перерисовывать Code tree после переключения вкладок.
Спасибо!
Не надо никакого замораживания дерева и плагина для этого, чтобы структура дерева сохранялась (не сворачивались в Code tree развернутые узлы)!
Если мы не переключаем вкладку, не переименовываем заголовок, блоки остаются в том же состоянии.
И может быть развернуто больше одного узла.
Но стоит нам переключить вкладку, добавить или переименовать блок, как все блоки, кроме текущего, сворачиваются.
При переключении вкладок не нужно перерисовывать Code tree.
Ведь изменений Code tree не было, просто посмотрели другой файл.
Поэтому просьба - не перерисовывать Code tree после переключения вкладок.
Спасибо!
-
- Posts: 2533
- Joined: 25.08.2021 18:15
Re: Cudatext Code tree
> как перейти в поле ввода фильтра Code tree не мышкой, а клавиатурой?
Cmd palette: "code tree: focus filter".
повесить хоткей на эту кмд.
Cmd palette: "code tree: focus filter".
повесить хоткей на эту кмд.
-
- Posts: 2533
- Joined: 25.08.2021 18:15
Re: Cudatext Code tree
>просьба - не перерисовывать Code tree после переключения вкладок.
дерево хранится в "буфере" ввнутри своего таба. перерисовывать конечно надо, т к мы копируем данные из этого "буфера" в контрол дерева (после переключания таба). может еще и сохранять свернутость узлов. надо подумать, это не просто сделать.
дерево хранится в "буфере" ввнутри своего таба. перерисовывать конечно надо, т к мы копируем данные из этого "буфера" в контрол дерева (после переключания таба). может еще и сохранять свернутость узлов. надо подумать, это не просто сделать.
Re: Cudatext Code tree
> перерисовывать конечно надо,
Жалко, что нельзя оставить.
А нельзя ли перед переключением вкладки контрол ее дерева сохранять? Сильно ли это замедлит переключение, если возможно.
Ведь контрол дерева построен, отображается, имеет где-то свое записанное состояние. Вот его бы зафиксировать!
ОК, еще может для последних двух - n вкладок хранить буферы дерева и восстанавливать.
Или - более простое и универсальное решение - ставить пины (по аналогии с маркерами, закладками) на те блоки, которые хотелось бы иметь открытыми.
Как очки на книжке, чтобы страницы не листались от сквозняка.
Это, правда, новая сущность.
Но зато не надо запоминать то, что, возможно, не надо запоминать.
Если не плодить сущности, то маркеры красные по умолчанию, а маркеры-"грузики" пусть будут синими.
Да, не очень идея с маркерами...
А было бы здорово при переключении оставаться с теми же открытыми нодами, с той же "картинкой".
Удобно. Стабильно. Надежно. Т.е. лояльность бренду повышается из-за такого удобства. позволю себе представить.
Жалко, что нельзя оставить.
А нельзя ли перед переключением вкладки контрол ее дерева сохранять? Сильно ли это замедлит переключение, если возможно.
Ведь контрол дерева построен, отображается, имеет где-то свое записанное состояние. Вот его бы зафиксировать!
ОК, еще может для последних двух - n вкладок хранить буферы дерева и восстанавливать.
Или - более простое и универсальное решение - ставить пины (по аналогии с маркерами, закладками) на те блоки, которые хотелось бы иметь открытыми.
Как очки на книжке, чтобы страницы не листались от сквозняка.
Это, правда, новая сущность.
Но зато не надо запоминать то, что, возможно, не надо запоминать.
Если не плодить сущности, то маркеры красные по умолчанию, а маркеры-"грузики" пусть будут синими.
Да, не очень идея с маркерами...
А было бы здорово при переключении оставаться с теми же открытыми нодами, с той же "картинкой".
Удобно. Стабильно. Надежно. Т.е. лояльность бренду повышается из-за такого удобства. позволю себе представить.
Re: Cudatext Code tree
> Cmd palette: "code tree: focus filter".
ЗдОрово! Все уже реализовано!
ЗдОрово! Все уже реализовано!
-
- Posts: 2533
- Joined: 25.08.2021 18:15
Re: Cudatext Code tree
я и говорю что надо посмотреть, как сохранять свернутость узлов codetree при переключении табов. уже и так сохраняется содержимое дерева. но не свернутость узлов. пишется в "буфер" внутри таба. после возврата на старый таб "буфер" копируется в один общий контрол codetree.
но свернутость пока НЕ восстанавливается AFAIR.
но свернутость пока НЕ восстанавливается AFAIR.
-
- Posts: 2533
- Joined: 25.08.2021 18:15
Re: Cudatext Code tree
как времяное решение, опция "ui_tree_unfold":true вам пригодится?