Page 7 of 21

Posted: 04.04.2022 11:50
by mix-7
1- проверьте что все опции из этой части вики не блочат работу--
'Reduced functionality for big files'
Спасибо, помогла установка "ui_max_size_lexer" : 2, в

Code: Select all

"ui_max_size_lexer" : 3,
в user.json
(Проблемный wiki-файл был 2+ МБ).

Posted: 04.04.2022 11:56
by mix-7
2-клик не предлагает ссылку! если положить курсор мыши на панельку статусбара (справа) то проскакивает там такое
Да, сделано, спасибо!
Возможно, обновил плагин WikidPad Helper через Addons Manager.

Posted: 04.04.2022 12:12
by mix-7
Прочитал по вашим ссылкам
https://wiki.freepascal.org/CudaText#Kinds_of_add-ons
tree helpers
Plugins which show Code-Tree structure for some lexer (useful if language is complex, and lexer cannot handle all language complexity).
https://wiki.freepascal.org/CudaText_API#TreeHelpers
Section(s) "treehelper" followed by any string (e.g. "treehelper1"):
key "lexers" is comma-separated lexers list
Через Addons Manager - Edit
открыл TreeHelper for WikidPad
/home/one/.config/cudatext/py/cuda_tree_wikidpad/__init__.py

В тексте не обнаружил

Code: Select all

Section(s) "treehelper" 
key "lexers" 
Наверное, не там смотрел?
Как дописать treehelper для WikidPad для lite lexer WikidPad' ^ ?

Posted: 04.04.2022 14:21
by main Alexey
__init__.py это питон-код.
а менять это надо в файле install.inf.
дописать лексер через запятую сюда

Code: Select all

[treehelper1]
lexers=WikidPad
method=get_headers
fold=1

Posted: 05.04.2022 08:29
by mix-7
Спасибо, невнимательно прочитал https://wiki.freepascal.org/CudaText_API#TreeHelpers

В /home/one/.config/cudatext/py/cuda_tree_wikidpad/install.inf
прописал

Code: Select all

[treehelper1]
lexers=WikidPad,WikidPad ^
method=get_headers
fold=1
Для большого файла (размер больше "ui_max_size_lexer" : 2) lite lexer по расширению не выбирается автоматически, Code tree не строится.
Code tree иногда остается от другого файла.


Lite lexer /home/one/.config/cudatext/data/lexliblite/WikidPad.cuda-litelexer :

Code: Select all

{
  "about": "Converted from Matthias030's lexer by Alexey Torgashin",
  "files": "*.wiki",
  "case_sens": false,
  "consider_spaces": true,
  "rules": {
    "success": {
      "regex": "^.*((?<!no )success|(?<!nicht )erfolgreich|(no|without( any)?) error|fehlerfrei|(ohne |kein(e)? )fehler|(?<!not )succeed|mit erfolg).*$",
      "style": "LightBG3"
    },
<... опустил, взял из ~/.config/cudatext/data/lexliblite/Log files.cuda-litelexer, изменив расширение файла на "*.wiki" >
Попробовал изменить имя большого файла с кириллицы на латиницу - не помогло
Что здесь не так?

Цель - для больших, больше 10000 строк, работать (навигация по тексту) , в основном, с Code tree, используя lite lexer

Posted: 05.04.2022 10:09
by main Alexey
Здесь не так то что вы наткнулись на блокируюшую опцию "lexer_folding_max_lines".
я сделал 6 Мб файл wikidpad. в нем 230 000 строк.
задал ту опцию как 300 тыщ.

/home/user/_cud_test/data/lexliblite/WikidPad.cuda-litelexer

Code: Select all

{
  "about": "tst lexer",
  "files": "*.wiki",
  "case_sens": false,
  "consider_spaces": true,
  "rules": {
    "success": {
      "regex": "^\\++.*",
      "style": "LightBG3"
    }
  }
}
и поправил три-хелпер
/home/user/_cud_test/py/cuda_tree_wikidpad/install.inf

Code: Select all

[info]
title=TreeHelper for WikidPad
desc=TreeHelper for WikidPad lexer
type=cudatext-plugin
subdir=cuda_tree_wikidpad
homepage=https://github.com/CudaText-addons/cuda_tree_wikidpad

[treehelper1]
lexers=WikidPad,WikidPad ^
method=get_headers
fold=1
на файле в 6 Мб лексер активен! дерево есть!

Posted: 05.04.2022 14:22
by mix-7
Здесь не так то что вы наткнулись на блокируюшую опцию "lexer_folding_max_lines".
Хм, а я-то думал, что это триггер lexer / lexer lite.
Возможно, поэтому и строилось дерево.

Сделал, как вы написали - увеличил параметр lexer_folding_max_lines - заработало!
Дерево строится!

Переключение lexer / lexer lite определяется параметром

Code: Select all

  "ui_max_size_lexer" : 1,
Спасибо огромное!
Очень удобный инструмент!

Posted: 05.04.2022 14:25
by mix-7
P.S. В 2018 году, когда вы написали лексер WikidPad, он работал довольно медленно, сравнимо по скорости с WikidPad.
Сейчас по скорости CudaText многократно опережает WikidPad.
За счет чего получилась такая оптимизация?

Posted: 05.04.2022 16:57
by main Alexey
ну как, просто постоянно что-то оптимизировал, плюс вот что
1.133.0 (2021/05)

+ add: major change: parser is multi-threaded now. This allows app to react to typing commands faster, and allows to not blink with uncolored text, on big files. Total parsing speed is better too, on big files. Options "lexer_delayed_parsing_*" were removed.

Posted: 15.04.2022 14:12
by mix-7
main Alexey wrote: но вижу другой баг - в этом тексте вообще нет фолдинга:

Code: Select all

++ Заголовок1
текст
текст
текст
текст
++ Заголовок2
вв
Отсюда

Это поправимо?

(Есть старые записи без блочных комментариев <<...>> еще, они сворачиваются не все.)