Мигание фона подсветки на lexer_dynamic_hilite

Solved bugs are moved into this topic...
Developer
Posts: 23
Joined: 13.08.2018 13:14

Мигание фона подсветки на lexer_dynamic_hilite

Post by Developer »

Очередной вопрос по горе лексеру.

Есть правило, задающее блок между { и }
К правилу применен стиль для подсветки фона всего блока.
В Cuda, для отображения фона для динамического блока нужно включить два параметра
свойство редактора "lexer_dynamic_hilite" установить в TRUE, что бы заработали динамические подсветки блока.
свойство редактора "ui_lexer_themes" установить в FALSE, что бы использовались цвета заложенные в лексер.

И тут появляется проблема.
в Куда Редакторе, если курсор находиться внутри динамического блока, то подсветка работает и отображается все как следует.
Но если ввести любой символ или удалить любой символ, то фон в блоке тухнет и загорается через короткий промежуток времени.
Создается Мерцающий эффект фона. Это очень раздражает и мешает пользоваться редактором (в Синврайте такого эффекта не наблюдается).

Я так полагаю по умолчанию эта опция выключена в редакторе потому что с ней были сложности? Настройками это не регулируется и нужен fix динамической подсветки.
Когда можно ожидать решение этого вопроса или как это чинить?

п.с. Также можно заметить, что мерцают фоны за пределами экрана, идущие после этого блока.
Если включена карта файла то очень хорошо видно, как все фоны тухнут ниже от текущего расположения экрана.

пп.с. Так же обнаружена проблема с распознаванием инструкций для границ. После миграции лексера, приходиться вручную указывать некоторые из границ.
Attachments
problem_01
problem_01
problem_02
problem_02
правило - подсветка
правило - подсветка
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Про "распознавание границ" надо подробнее- не понял о чем это. Границы для стилей лексера (borders: up/ down/ left/ rignt)? Или что.

При "мигание" - повторил на 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
Проблема видна. Буду думать. Когда будет решение- не знаю.
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Alexey wrote:Про "распознавание границ" надо подробнее- не понял о чем это. Границы для стилей лексера (borders: up/ down/ left/ rignt)? Или что.
Да именно это и есть.
При создании стиля в редакторе СинВрайта, если стилю задать границу и выбрать Тонкую линию (которая в КудаТекст позиционируется как SOLID граница)
то парсер КудаТекст не всегда понимает эту инструкцию. И приходиться в ручную указывать гнаницу в свойствах Лексера.
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Мне кажется проблема с границами упирается в
CudaText\settings\JavaScript.cuda-lexops
CudaText\settings\lexer JavaScript.json

Если существуют эти файлы, то Границы из лексера больше не парсятся
А если в этих файлах не указаны инструкции по границам стиля, то редактор подставляет пустые значения
вместо того, что бы брать значения из файла лексера.

Ну мне так кажется.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Попытался порешать "мигание". вот бета, попробуйте, на Баш лексере стало лучше
https://sourceforge.net/projects/cudate ... a_version/
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

"Границы". .cuda-lexops это кеш свойств лексера, так что его удалите если обновили лексер. если удалить- стало ок? "lexer JavaScript.json" это опции для JS, не должен мешать.
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Alexey wrote:Попытался порешать "мигание". вот бета, попробуйте, на Баш лексере стало лучше
https://sourceforge.net/projects/cudate ... a_version/
Да, стало значительно удобнее. На экране больше мигания нет. А мигание на карте не критично. можно считать вопрос закрытым.
Alexey wrote:"Границы". .cuda-lexops это кеш свойств лексера, так что его удалите если обновили лексер. если удалить- стало ок? "lexer JavaScript.json" это опции для JS, не должен мешать.
Да при удалении cuda-lexops все работает как должно, но все же странно, почему подставляются пустые значения в случае если файл есть но без записей. Думаю верно было бы делать проверку на Наличие инструкций в лексере, если в cuda-lexops инструкции нет.
Вобщем этот вопрос для меня тоже закрыт.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

разве он без записей? он создается когда вы меняете св-ва лексера и имеет записи. они имеют инфо про границы.
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Вот на примере с картинками.
1. Есть границы на куче правилах.
2. принудительно указываем границу для любого стиля - создается файл но в нем лишь ОДНА запись для созданной границы.
3. открываем документ и видим что все границы пропали КРОМЕ принудительно заданной.

Вывод:
Если есть файл и в нем не указаны значения стилей, то редактор считает эти значения нулевыми и не смотрит есть ли они в Лексере.
Attachments
Border_03.PNG
Border_02.PNG
Border_01.PNG
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

"границы пропали"- сделал фикс. тестим.
https://sourceforge.net/projects/cudate ... a_version/
Post Reply