Компонент Scintilla, используемый Notepad++, отвечает за лексеры для подсветки синтаксиса. Видимо, разработчик этого лексера не решил проводить различие между именами свойств и значениями, хотя это кажется хорошей идеей. Чтобы сделать предложение об этом улучшении в лексере, вам нужно посмотреть, внедрил ли это самое последнее Scintilla JSON Lexer это изменение, и если нет, добавить запрос в проект Scintilla. Если изменение уже внесено или Scintilla выпускает новую версию с этим исправлением, вам нужно будет попросить разработчика Notepad++ обновить Scintilla, чтобы включить это исправление. (И последний раз, когда АЭС модернизировала, ее Scintilla была с 3.34 до 3.56 - около 4 лет назад - по сравнению с самой последней Scintilla 4.1.3)
Обходной путь № 1: измените Color Configurator> JSON> Operator color так, чтобы он выделялся между свойством и значением - может быть, с ярко-желтым фоном или чем-то - чтобы было проще найти разделители :
at наименее...
Обходной путь № 2: На форумах сообщества Клаудия Франк проделала некоторую работу над лексером на основе PythonScript, который позволял бы пользовательским языкам с регулярными выражениями, а не упрощенному UDL 2.1. Моя коллекция ссылок на ее работу находится по адресу https://notepad-plus-plus.org/community/topic/16164/bug-javascript-multiline-character-not-understood-by-notepad/11. Приложив некоторые усилия, вы сможете определить регулярное выражение, необходимое для анализа JSON, так, как вам нравится.
обновление: вы можете получить UDL (определяемый пользователем язык), чтобы делать то, что вы хотите. Я пришел к быстрому, которое получит описанные вами различия в освещении. Как неприятный побочный эффект, он нарушает складывание (поэтому не может свернуть пары { ... }
. (Я попытался установить параметры свертывания UDL, но вложенные сгибы работали неправильно, по крайней мере, с первой попытки)
- Язык> Определить свой язык ...: Создать New = JsonPropertyValues.
- Операторы и разделители
- Операторы 1 =,:
, : " ' { }
, STYLER = установить любые цвета, которые вы хотите для пунктуации
- Разделитель 1 стиль =
:
Close = ((EOL))
STYLER = установить цвет вы хотите сторона VALUE быть; установить Nesting:
разрешить Operators 1
- Стиль разделителя 2 = OPEN:
"
, Close = "
, STYLER = установить цвет для левой стороны (свойство) в двойных кавычках, вложение не требуется
- Стиль разделителя 3 = OPEN:
'
, Close = '
, STYLER = установить цвет для левой стороны (свойство), когда в одинарных кавычках нет необходимости в вложении
Возможно, вы захотите установить Nesting:
включить Numbers
во все эти записи STYLER выше. А затем перейдите на вкладку « Комментарий и номер » и определите СТИЛЬ, чтобы также установить цвет для чисел.
Вы можете установить в поле Ext значение json
, если хотите, чтобы оно применялось ко всем .JSON
, или вы можете просто вручную применить Language> JsonPropertyValues к любому JSON, который вы хотите проанализировать таким образом.
В любом случае, это разумная отправная точка, основанная на том, что вы описали; не стесняйтесь настраивать его или расширять за пределы включенных функций.