подсветка синтаксиса энергии знаков "диез" ColdFusion

Я пытаюсь создать патч для cf.vim решать вопрос с хешами. В ColdFusion, # знаки используются для включения выражения внутри a cfoutput блок.

<cfset x = 1 />
<cfoutput> x is now #x# </cfoutput>
<!--- outputs "x is now 1" --->

Проблема играет роль, когда существует одинокое #, не внутри a cfoutput блок:

<a href="#x">an anchored link</a>

Это заставит энергию выделять все после # как будто это было в a cfHashRegion.

syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contained containedin=cfOutputRegion contains=@cfExpressionCluster,cfScriptParenError

syn region cfOutputRegion matchgroup=NONE transparent start=+<cfoutput>+ end=+</cfoutput>+ contains=TOP

Есть ли что-то, к чему я могу добавить cfHashRegion для сообщения энергии "Не вводят cfHashRegion, если запуск и не заканчивается, свойства оба найдены?

Суперпремия: cfoutput только наиболее распространенный способ состоит в том, чтобы быть в "cfOutputRegion".Любой cffunction с выводом = "верный" будет вести себя, как будто все в его блоке было перенесено в cfoutput теги.

6
задан mwcz 1 March 2010 в 22:01
поделиться

1 ответ

Вы пробовали использовать syn match вместо syn region ? Я не знаю синтаксиса ColdFusion, поэтому не знаю, возможно ли это / правильно.

Примерно так:

syn region cfHashRegion "L\=#[^#]+#" containedin=cfOutputRegion  contains=@cfExpressionCluster,cfScriptParenError

Вы также можете изучить использование списка аргументов contains = ALLBUT, {group-name}, .. для некоторых случаев.

2
ответ дан 17 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: