Очередной вопрос по горе лексеру.
Есть правило, задающее блок между { и }
К правилу применен стиль для подсветки фона всего блока.
В Cuda, для отображения фона для динамического блока нужно включить два параметра
свойство редактора "lexer_dynamic_hilite" установить в TRUE, что бы заработали динамические подсветки блока.
свойство редактора "ui_lexer_themes" установить в FALSE, что бы использовались цвета заложенные в лексер.
И тут появляется проблема.
в Куда Редакторе, если курсор находиться внутри динамического блока, то подсветка работает и отображается все как следует.
Но если ввести любой символ или удалить любой символ, то фон в блоке тухнет и загорается через короткий промежуток времени.
Создается Мерцающий эффект фона. Это очень раздражает и мешает пользоваться редактором (в Синврайте такого эффекта не наблюдается).
Я так полагаю по умолчанию эта опция выключена в редакторе потому что с ней были сложности? Настройками это не регулируется и нужен fix динамической подсветки.
Когда можно ожидать решение этого вопроса или как это чинить?
п.с. Также можно заметить, что мерцают фоны за пределами экрана, идущие после этого блока.
Если включена карта файла то очень хорошо видно, как все фоны тухнут ниже от текущего расположения экрана.
пп.с. Так же обнаружена проблема с распознаванием инструкций для границ. После миграции лексера, приходиться вручную указывать некоторые из границ.
Мигание фона подсветки на lexer_dynamic_hilite
Про "распознавание границ" надо подробнее- не понял о чем это. Границы для стилей лексера (borders: up/ down/ left/ rignt)? Или что.
При "мигание" - повторил на Bash lexer. на примере таком
Проблема видна. Буду думать. Когда будет решение- не знаю.
При "мигание" - повторил на Bash lexer. на примере таком
Code: Select all
#!/bin/bash
var=value
/ddd/ddd.sh, "test
string"
+= -= /= *ddd= &= |= ^= ~= == != >= <= ( ) [ ] { } $( ) + - / | < >
test `dirname $var 20+30`, `more $var(20)`
function echo {
git -a --test "path"
}
while read line #comment
do
test $(test "$line");
test "test\"test"
len=${#line} $(text here)
if [[ "$len" -lt "$MINLEN" && "$line" =~ \[*\.\] ]]
then echo
fi
done
#!/bin/bash
var=value
/ddd/ddd.sh, "test
string"
+= -= /= *= &= |= ^= ~= == != >= <= ( ) [ ] { } $( ) + - / | < >
test `dirname $var 20+30`, `more $var(20)`
function echo {
git -a --test "path"
}
while read line #comment
do
test $(test "$line");
test "test\"test"
len=${#line} $(text here)
if [[ "$len" -lt "$MINLEN" && "$line" =~ \[*\.\] ]]
then echo
fi
done
Да именно это и есть.Alexey wrote:Про "распознавание границ" надо подробнее- не понял о чем это. Границы для стилей лексера (borders: up/ down/ left/ rignt)? Или что.
При создании стиля в редакторе СинВрайта, если стилю задать границу и выбрать Тонкую линию (которая в КудаТекст позиционируется как SOLID граница)
то парсер КудаТекст не всегда понимает эту инструкцию. И приходиться в ручную указывать гнаницу в свойствах Лексера.
Мне кажется проблема с границами упирается в
CudaText\settings\JavaScript.cuda-lexops
CudaText\settings\lexer JavaScript.json
Если существуют эти файлы, то Границы из лексера больше не парсятся
А если в этих файлах не указаны инструкции по границам стиля, то редактор подставляет пустые значения
вместо того, что бы брать значения из файла лексера.
Ну мне так кажется.
CudaText\settings\JavaScript.cuda-lexops
CudaText\settings\lexer JavaScript.json
Если существуют эти файлы, то Границы из лексера больше не парсятся
А если в этих файлах не указаны инструкции по границам стиля, то редактор подставляет пустые значения
вместо того, что бы брать значения из файла лексера.
Ну мне так кажется.
Попытался порешать "мигание". вот бета, попробуйте, на Баш лексере стало лучше
https://sourceforge.net/projects/cudate ... a_version/
https://sourceforge.net/projects/cudate ... a_version/
Да, стало значительно удобнее. На экране больше мигания нет. А мигание на карте не критично. можно считать вопрос закрытым.Alexey wrote:Попытался порешать "мигание". вот бета, попробуйте, на Баш лексере стало лучше
https://sourceforge.net/projects/cudate ... a_version/
Да при удалении cuda-lexops все работает как должно, но все же странно, почему подставляются пустые значения в случае если файл есть но без записей. Думаю верно было бы делать проверку на Наличие инструкций в лексере, если в cuda-lexops инструкции нет.Alexey wrote:"Границы". .cuda-lexops это кеш свойств лексера, так что его удалите если обновили лексер. если удалить- стало ок? "lexer JavaScript.json" это опции для JS, не должен мешать.
Вобщем этот вопрос для меня тоже закрыт.
Вот на примере с картинками.
1. Есть границы на куче правилах.
2. принудительно указываем границу для любого стиля - создается файл но в нем лишь ОДНА запись для созданной границы.
3. открываем документ и видим что все границы пропали КРОМЕ принудительно заданной.
Вывод:
Если есть файл и в нем не указаны значения стилей, то редактор считает эти значения нулевыми и не смотрит есть ли они в Лексере.
1. Есть границы на куче правилах.
2. принудительно указываем границу для любого стиля - создается файл но в нем лишь ОДНА запись для созданной границы.
3. открываем документ и видим что все границы пропали КРОМЕ принудительно заданной.
Вывод:
Если есть файл и в нем не указаны значения стилей, то редактор считает эти значения нулевыми и не смотрит есть ли они в Лексере.
"границы пропали"- сделал фикс. тестим.
https://sourceforge.net/projects/cudate ... a_version/
https://sourceforge.net/projects/cudate ... a_version/