Проблема с собственным лексером

Post Reply
Alex842
Posts: 40
Joined: 25.10.2015 09:43

Проблема с собственным лексером

Post by Alex842 »

Всем привет!

Есть такая программа для создания визуальных новел - RenPy. Она бесплатная и популярная для разработки новел.
Несколько лет назад я увлекся этим делом (разработкой визуальных новел), начал осваивать данную программу. Написание кода в ней ведется в сторонних редакторах. При установке программа уже предлагает несколько на выбор. Но ни один меня не устроил. На тот момент я уже давно работал в CudaText и решил "прикрутить" его к RenPy. Изучил документацию, написал новый лексер, автодополнение, подсветку синтаксиса, тему... Все работало замечательно.
Затем я на пару лет забросил все это. Сейчас решил вернуться. Но для начала обновил CudaText до новой версии и... столкнулся с проблемой.
В версии 1.90.1 в дереве кода все отображается хорошо. Все ключевые слова, которые я задал в лексере, определяются как надо, и по ним дерево строится нормально.
А в новой версии все сломалось (см. скриншоты).

Во вложении скриншоты и архив с лексером и примером файла RenPy (Python со своими плюшками).

Ссылка на сброку Cudatext (1.90.1), настроенную под работу с RenPy. В ней все работает хорошо.
https://cloud.mail.ru/public/sFQT%2FEPNc8SZQG
Attachments
Lexer RenPy.zip
Лексер и образец
(10.79 KiB) Downloaded 122 times
В этой версии дерево кода работает неправильно.
В этой версии дерево кода работает неправильно.
В этой версии дерево кода работает правильно.
В этой версии дерево кода работает правильно.
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Post by main Alexey »

Это потому что после 1.90 код для indent-based folding поменялся!

1.105.5 (2020/06)

+ add: option "lexer_folding_max_lines" - when document has too many lines, parser doesn't find fold-blocks
+ add: reworked parser code which handles indentation-based folding (e.g. in Python); reworked lexer Python for this; all lexers in add-ons which use indentation-based folding will be reworked soon

для старого лексера новый код не Окей. надо обновить лексер. или еще раз сделать "свой лекс" на базе нового Питон лекса.
SynWrite тоже обновился - чтобы поддержать новую систему фолдов. соответственно правьте ваш лексер В НОВОМ synwrite. когда в новом заработает - все окей.
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Post by main Alexey »

я советую сделать "ваш вариант" еще раз уже на новом моем Питон лексе. если будет трудно, помогу, присылайте ваш лексер на support(at)uvviewsoft.com
Alex842
Posts: 40
Joined: 25.10.2015 09:43

Post by Alex842 »

Спасибо за подсказку и предложение помощи. Сначала попробую сам разобраться.
Post Reply