Cudatext Code tree

Post Reply
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

а про какую синхронизацию мы говорим?

1. положение каретки в разных блоках - не дает нового выделенного узла дерева для своего блока? или что?
2. или наоборот - dbl-click в дереве не дает прыжка каретки в блок?

эти 2 п-та у меня работают при любой "ui_tree_sublexers".
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

можете дать файл-пример и лучше записать видео как вы с ним видите потерю синхронизации?
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

второй баг с фильтром который не применяется, повторил.
записал в https://github.com/Alexey-T/CudaText/issues/5524
когда решу, закрою.
mix-7
Posts: 906
Joined: 11.05.2018 11:02

folding unfold Code tree Re: Cudatext Code tree

Post by mix-7 »

folding unfold Code tree

Смотрел я вкладку с лексером WikidPad. (CudaText 1.223.0.5, linux-x86_64-qt6, fpc 3.2.3)
Code tree был развернут до 3 уровня и не сворачивался другие ветви при перемещении - ооочень удобно!
(Бывает, нужно два узла померенно, перейдешь к первому, второй свернется, разворачивай его).
Но, оказывается, в Code tree был введен фильтр.

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

Re: Cudatext Code tree

Post by main Alexey »

запоминание развернутых блоков в codetree. ну это непросто сделать. надо помнить какие блоки развернуты, потом их развертывать после перестройки codetree. непросто. не знаю осилю ли.
может через Питон плагин попробуете сделать? on_state вызывается для разных состояний codetree.

APPSTATE_CODETREE_BEFORE_CLEAR: Code-Tree: content is about to be cleared.
APPSTATE_CODETREE_CLEAR: Code-Tree: content was just cleared.
APPSTATE_CODETREE_BEFORE_FILL: Code-Tree: before filling the content.
APPSTATE_CODETREE_AFTER_FILL: Code-Tree: after filling the content.
APPSTATE_CODETREE_SET_SELECTION: Code-Tree: caret position changed, then app sync'ed tree selection.
APPSTATE_CODETREE_DBL_CLICK: Code-Tree: user made double-click in tree, then app sync'ed caret position with tree selection.
APPSTATE_CODETREE_FOLDED_UNFOLDED: Code-Tree: some tree node was just folded or unfolded. You can get this node's handle via app_proc(PROC_GET_CODETREE_CURRENT_NODE, "").
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

> надо помнить какие блоки развернуты, потом их развертывать после

А как же помнит и разворачивает в редакторе? Есть команды разные для folding'а.

> перестройки codetree. непросто. не знаю осилю ли.

Да, понял сложность. Ведь Code tree постоянно перестраивается. Ну потом как-нибудь, если настроение будет.
Тогда на данном этапе предлагаю три простые опции:
Отключить временно перестройку Code tree, чтобы сохранять "картину" дерева" с командой обновить Code tree.

Вторая - оставлять развернутыми 2 последних узла, с которыми работаешь. Т.е. запоминать только 1-2, макс., 3 последних узла.

(Без переделки кода лайфак: в эти узлы, в заголовки добавить одинаковый только для хештег, ключевое слово, которое вставить в фильтр Code tree.

А нельзя ли фильтр Code tree задавать еще и по "или"?)


Третья - хм. Не надо ее.
А, вспомнил: развернуть/свернуть ВСЕ дерево Code tree!
Этого вполне достаточно на перспективу.
Да и больше не надо, наверное.
А было бы очень удобно!

А уж сверх этого - можно отмечать bookmarks - закладками на странице.
(Заметил тоже в CudaText 1.223.0.5, linux-x86_64-qt6, fpc 3.2.3, что bookmarks съехали на одну строку вниз, не понял из-за чего).




> может через Питон плагин попробуете сделать?

Да я еще для WikidPad для работы со ссылками helper еще не сделал!
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

>А нельзя ли фильтр Code tree задавать еще и по "или"?

нельзя. вводить "язык" для фильтра дерева - слишком.

3 опции делать не стОит, слишком они ненужные.


>вспомнил: развернуть/свернуть ВСЕ дерево Code tree!

это делается простеньким плагином.
- плагин получает handle code-tree. через app_proc().
- плагин вызывает tree_proc() с этим хендлом, с акшеном "свернуть/развернуть все узлы".
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

>что bookmarks съехали на одну строку вниз, не понял из-за чего.

я правил, после релиза 1.223.0.5, вот что:
https://github.com/Alexey-T/CudaText/issues/5925
mix-7
Posts: 906
Joined: 11.05.2018 11:02

Re: Cudatext Code tree

Post by mix-7 »

Простым выходом было бы выключить обновление Code tree с целью, чтобы не сворачивались узлы Code tree при переходе в другой.

Нашел способ:
в ~/.config/cudatext/settings/user.json
раскомментариваю и сохраняю (но после построения Code tree во вкладке.
// "ui_tree_time_fill": 2000000,

Было бы удобно переключать обновление (отключать/включать) Code tree во View или Plugins


Еще.
Баг в Code tree

CudaText 1.223.0.5, linux-x86_64-qt6, fpc 3.2.3, Лексер WikidPad

Если заголовок имеет пустой блок, например,

Code: Select all

+ март
lorem ipsum
++ 27.03.2025
++ 28.03.2025
lorem ipsum
То при установке мышкой каретки на заголовок пустого блока

Code: Select all

++ 27.03.2025
"каретка" (выделение, отметка?) в Code tree
перемещается на заголовок родительского блока, в данном случае на

Code: Select all

+ март
main Alexey
Posts: 2533
Joined: 25.08.2021 18:15

Re: Cudatext Code tree

Post by main Alexey »

вот этот баг давайте в новую тему в разделе "Баги".
т.к. быстро я это неповторил. на INI лексере. вот с таким документом:

[aa]
aa=1
[bb1]
[bb2]
bb=2

а ставить Wikidpad lexer+treehelper - позже.
Post Reply