2 наложенных динамических блока лексера мешают друг другу

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

2 наложенных динамических блока лексера мешают друг другу

Post by Developer »

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

На скриншотах в динамическом блоке функции есть белый блок Массива, но в Куда он не работает.
Скрины КудаТекст и СинВрайт.
Attachments
CudaText
CudaText
SynWrite
SynWrite
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Дайте способ повторить это, можно на любом лексере где есть такие блоки.
дайте фрагмент.
если на нашли лексера, дайте бету лексера по емейл support @ uvviewsoft.com
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Опишите словами что на что наложилось, в чем трабл, не понял
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
Attachments
test-lexer.zip.txt
(923 Bytes) Downloaded 91 times
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Сейчас опишу и прикреплю лексер сюда

Обращаю внимание что сообщения из Темы viewtopic.php?f=6&t=2282
лучше перенести сюда. Это одна и таже проблема с неверными интерпретациями условий лексера ,
а еще лучше удалить ту тему, так как ниже она включена в описание.

Для разбора берем такой пример (он же для удобства внутри лексера уже есть):

Code: Select all

Установить курсор в пределах Блока

 {  Внешний блок фигруных скобок
    подсветка всей строки
    подсвечен весь этот блок от начала до конца
    остальные блоки не подсвечены 
     
    {  	Внутрений блок фигруных скобок
    	подсвечен только внутрений блок
        остальные не подсвечены 
	}                          
 	
    (блок круглых скобок подсвечен голубым, а внешний фигурный весь серым)
    
    [блок квадратных скобок подсвечен красным, а внешний фигурный весь серым]
    
    
    Ниже строчка комбинация, каждый вложенный слой, должен иметь свой цвет
    тут серый цвет  ( голубой блок [ внутри красный блок (перехват голубого) все еще красный ] ) 
   	             			
 }
Как видно из примера, каждый блок должен иметь свою динамическую подсветку.
Условия созданы так, что бы каждый одинаковый блок внутри перехватывал правило подсветки на себя.
Так получается что при:
- при помещении курсора во внешний фигурный блок, он должен весь окраситься в серый цвет.
- при помещении курсора во ВНУТРЕННИЙ фигурный блок, произойдет перехват серого цвета и серым останеться только внутренний блок.
- при помещении курсора в блок круглых скобок, он окрашивается в голубой цвет, но так как курсор по прежнему внутри серого блока,
то он тоже по прежнему окрашен в серый цвет.
- при помещении курсора в блок квадратных скобок, он краситься в красный, и остается серый.
ну и так далее

в редакторе КудаТекст обработка правил и построение подсветки создано с ошибками.
На скриншотах ниже можно видеть что
проблема 1: Серый фигурный блок с инструкцией "красить ВСЮ строку" не красит всю строку, а красит только между границами блока.
проблема 2: В случае перехвата цвета правилом "выделять наименьший блок" красится от начала блока до начала следующего блока.
проблема 3: В случае нескольких вложений, правила работают только на первое вложение и не распространяются дальше по циклу.
Attachments
aaa.zip.txt
пример Лексера
(1.58 KiB) Downloaded 97 times
Пример на SYN
Пример на SYN
Проблема на Cuda
Проблема на Cuda
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Повторил наконец-то... Буду разбираться, спасибо за отчет.
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

Alexey wrote:Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
Посмотрел на это лексере- проблема та же самая.
в этом лексере подсветка блоков в режиме "Только границы элементов" а в моем случае, Режим "Элементы без границ"

При переключении этого режима, Ваш пример выглядит на скриншоте.

П.С. Приятно видеть мою старую палитру цветов из PHP_Dev лексера. Рад что она настолько прижилась у Вас, что почти во всех Лексерах можно наблюдать отголоски. :D Ах, Сколько лет назад это было...
Attachments
лексер
лексер
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Поборол- бета там же- cudatext.sf.net
Developer
Posts: 23
Joined: 13.08.2018 13:14

Post by Developer »

по cudatext.sf.net качает lexer_editor.zip не бету
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

ну там же папка beta_version.
Post Reply