Notepad ++ UDL: как сделать так, чтобы экранирующие скобки jq красиво вкладывались в двойные кавычки? - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь написать UDL Notepad ++ (пользовательский язык) для jq, но я достиг предела того, что я знаю, как сделать с одной конкретной функцией языка jq. : - (

Одна из (многих) приятных особенностей jq - это компактный способ встраивания кода jq в строки, например,

"Value is \(.value | ascii_upcase)"

Теперь я могу стилизовать разделенные двойными кавычками Строки достаточно легко ...

Open: "       Escape: \         Close: "

... и я могу стилизовать блок в скобках в середине ...

Open: \(       Escape:          Close: )

... но я не могу получить два для совместной работы.: - (

Я думаю, что проблема в том, что \ -символ пытается обслуживать двух мастеров, то есть, с одной стороны, он работает как обычный escape-символ внутри "- - \ '--- "строк, и, с другой стороны, он работает (в сочетании с левой круглой скобкой) как разделитель выражений" --- \ (expression) --- "(но имеет значение только во вложенных внутри строки). То есть, у меня может быть \ как escape-символ строки, или у меня может быть \ (как разделитель выражений внутри строки, но я не могу иметь оба одновременно. Это правильно?

Даже если я смогу это исправить, я также не смогу понять, как мне справиться с парами круглых скобок в середине набережной. Выражение edded, потому что закрывающая круглая скобка досрочно завершает вложенное выражение. То есть я не вижу, как правильно это стилизовать ...

"Name twice is \((.name + .name) | ascii_upcase)"

... без разбивки ...

"(I) (like) (brackets)"

(... который должен был иметь нормальный стиль строки). Какие-либо предложения? Или jq - это просто язык, который нуждается в более сложном парсере, чем может обеспечить UDL?

В качестве альтернативы, если какой-то приятный человек уже решил все эти проблемы, создав UDL для jq, оставьте комментарий со ссылкой на это спасибо! : -)

(PS: у StackOverflow еще нет тега UDL. :-()

...