Lenchik / Akelpad-syntax-highlighting

Syntax themes for AkelPad text editor with Coder plugin (AutoHotkey, AviSynth, bash, BibTeX, Grub4Dos, KiXtart, LaTeX, Makefile, nnCron, R, Smarty, plain text and many more other syntax highlighting)
32 stars 3 forks source link

Неверная подсветка 4-ёх двойных кавычек идущих друг за другом """" #7

Closed Drugoy closed 11 years ago

Drugoy commented 11 years ago

Некоторые параметры у команд ожидают текст, а некоторые - выражения. И вот часто в тех, что ожидают выражения - используется dereferencing, чтобы передать какой-то текст дословно. Дословный текст передаётся в кавычках. Но если нужно передать сам символ кавычек как текст, то т.к. это спецсимвол - его нужно "обезопасить" (escape): конкретно его - удваивают. Получается, что если мы хотим в параметр, ожидающий выражение (а не простой текст) передать просто одинарный символ кавычек - у нас получится """". Нынешний .coder распознаёт это как левую и правую группы из двух кавычек и подсвечивает их соответственно. Но правильно было бы подсветить их как группу из двух кавычек внутри другой группы из двух кавычек. Я не знаю как это сделать, Вы не поможете с этим?

Drugoy commented 11 years ago

Вернее, сейчас .coder подсвечивает только одну (всегда правую) группу кавычек. Даже в случае из 3-ёх кавычек идущих подряд.

Drugoy commented 11 years ago

Вот сложный случай, подходящий для проверки:

"""" A_AhkPath """  ""c:\path\"""

слева - первая группа dereference'овая, эти 4 кавычки на самом деле означают просто одну текстовую кавычку. A_AhkPath - это переменная (она не окружена %-ами т.к. весь параметр в котором это всё находится - уже ожидает выражения). справа закодировано следующее:

"  "c:\path\"
Lenchik commented 11 years ago

Решение с форума http://akelpad.sourceforge.net/forum/viewtopic.php?p=22378#22378 подходит?

Drugoy commented 11 years ago

Нет, оно только для случая, если кавычки идут одна за другой, а если между ними есть хоть что-то - подсветка сбивается.