К этой же теме еще она проблема. 
Если два динамических фона накладываются друг на друга - они блокируют один другого.
При помещении курсора во внутренний блок, оба фона по логике должны быть активными по правилам лексера.
На скриншотах в динамическом блоке функции есть белый блок Массива, но в Куда он не работает.
Скрины КудаТекст и СинВрайт.
			
							2 наложенных динамических блока лексера мешают друг другу
Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
			
							- Attachments
 - 
			
		
		
				
- test-lexer.zip.txt
 - (923 Bytes) Downloaded 254 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 254 times
 
 
Посмотрел на это лексере- проблема та же самая.Alexey wrote:Вот на таком лексе потестил - все ок, вложенные ranges все равно светятся
в этом лексере подсветка блоков в режиме "Только границы элементов" а в моем случае, Режим "Элементы без границ"
При переключении этого режима, Ваш пример выглядит на скриншоте.
П.С. Приятно видеть мою старую палитру цветов из PHP_Dev лексера. Рад что она настолько прижилась у Вас, что почти во всех Лексерах можно наблюдать отголоски.