Xerox wrote: ↑Sun 29 Dec, 2019 10:29
А все-таки, зачем нужен именно номер пункта в меню?
Чтобы не вызывать всю эту тягомотину с синхронизацией-разотметкой-отметкой при каждом DN_INPUT. Она на самом деле приходит на каждое движение мыши или уж не знаю от чего ещё. Это довольно ресурсоёмкий процесс (match & tonumber).
Можно, конечно, запоминать саму строку и сравнивать с предыдущей, но это тоже может оказаться ресурсоёмко: не знаю, как в LUA, а в некоторых языках многократное запоминание строк приводит к расходованию памяти, что приводит к частому вызову сборщика мусора. Если б приходил DN_LISTCHANGE, то этого не потребовалось бы.
Xerox wrote: ↑Sun 29 Dec, 2019 10:29
не упростит ли если можно воспользоваться искуственным посыланием КтрлЕнтер при переходах?
1. позицию всё равно надо знать (для раскраски), так что без match / tonumber не обойтись
2. а если позиция всё равно известна, то чем
Keys"CtrlEnter"
проще, чем
editor.SetPosition(…)
?
Впрочем, исходники открыты - всё в Ваших руках.