К этой же теме еще она проблема.
Если два динамических фона накладываются друг на друга - они блокируют один другого.
При помещении курсора во внутренний блок, оба фона по логике должны быть активными по правилам лексера.
На скриншотах в динамическом блоке функции есть белый блок Массива, но в Куда он не работает.
Скрины КудаТекст и СинВрайт.
2 наложенных динамических блока лексера мешают друг другу
Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
- Attachments
-
- test-lexer.zip.txt
- (923 Bytes) Downloaded 91 times
Сейчас опишу и прикреплю лексер сюда
Обращаю внимание что сообщения из Темы viewtopic.php?f=6&t=2282
лучше перенести сюда. Это одна и таже проблема с неверными интерпретациями условий лексера ,
а еще лучше удалить ту тему, так как ниже она включена в описание.
Для разбора берем такой пример (он же для удобства внутри лексера уже есть):
Как видно из примера, каждый блок должен иметь свою динамическую подсветку.
Условия созданы так, что бы каждый одинаковый блок внутри перехватывал правило подсветки на себя.
Так получается что при:
- при помещении курсора во внешний фигурный блок, он должен весь окраситься в серый цвет.
- при помещении курсора во ВНУТРЕННИЙ фигурный блок, произойдет перехват серого цвета и серым останеться только внутренний блок.
- при помещении курсора в блок круглых скобок, он окрашивается в голубой цвет, но так как курсор по прежнему внутри серого блока,
то он тоже по прежнему окрашен в серый цвет.
- при помещении курсора в блок квадратных скобок, он краситься в красный, и остается серый.
ну и так далее
в редакторе КудаТекст обработка правил и построение подсветки создано с ошибками.
На скриншотах ниже можно видеть что
проблема 1: Серый фигурный блок с инструкцией "красить ВСЮ строку" не красит всю строку, а красит только между границами блока.
проблема 2: В случае перехвата цвета правилом "выделять наименьший блок" красится от начала блока до начала следующего блока.
проблема 3: В случае нескольких вложений, правила работают только на первое вложение и не распространяются дальше по циклу.
Обращаю внимание что сообщения из Темы viewtopic.php?f=6&t=2282
лучше перенести сюда. Это одна и таже проблема с неверными интерпретациями условий лексера ,
а еще лучше удалить ту тему, так как ниже она включена в описание.
Для разбора берем такой пример (он же для удобства внутри лексера уже есть):
Code: Select all
Установить курсор в пределах Блока
{ Внешний блок фигруных скобок
подсветка всей строки
подсвечен весь этот блок от начала до конца
остальные блоки не подсвечены
{ Внутрений блок фигруных скобок
подсвечен только внутрений блок
остальные не подсвечены
}
(блок круглых скобок подсвечен голубым, а внешний фигурный весь серым)
[блок квадратных скобок подсвечен красным, а внешний фигурный весь серым]
Ниже строчка комбинация, каждый вложенный слой, должен иметь свой цвет
тут серый цвет ( голубой блок [ внутри красный блок (перехват голубого) все еще красный ] )
}
Условия созданы так, что бы каждый одинаковый блок внутри перехватывал правило подсветки на себя.
Так получается что при:
- при помещении курсора во внешний фигурный блок, он должен весь окраситься в серый цвет.
- при помещении курсора во ВНУТРЕННИЙ фигурный блок, произойдет перехват серого цвета и серым останеться только внутренний блок.
- при помещении курсора в блок круглых скобок, он окрашивается в голубой цвет, но так как курсор по прежнему внутри серого блока,
то он тоже по прежнему окрашен в серый цвет.
- при помещении курсора в блок квадратных скобок, он краситься в красный, и остается серый.
ну и так далее
в редакторе КудаТекст обработка правил и построение подсветки создано с ошибками.
На скриншотах ниже можно видеть что
проблема 1: Серый фигурный блок с инструкцией "красить ВСЮ строку" не красит всю строку, а красит только между границами блока.
проблема 2: В случае перехвата цвета правилом "выделять наименьший блок" красится от начала блока до начала следующего блока.
проблема 3: В случае нескольких вложений, правила работают только на первое вложение и не распространяются дальше по циклу.
- Attachments
-
- aaa.zip.txt
- пример Лексера
- (1.58 KiB) Downloaded 97 times
Посмотрел на это лексере- проблема та же самая.Alexey wrote:Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
в этом лексере подсветка блоков в режиме "Только границы элементов" а в моем случае, Режим "Элементы без границ"
При переключении этого режима, Ваш пример выглядит на скриншоте.
П.С. Приятно видеть мою старую палитру цветов из PHP_Dev лексера. Рад что она настолько прижилась у Вас, что почти во всех Лексерах можно наблюдать отголоски.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)