Я пытаюсь создать патч для 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
теги.
Вы пробовали использовать syn match
вместо syn region
? Я не знаю синтаксиса ColdFusion, поэтому не знаю, возможно ли это / правильно.
Примерно так:
syn region cfHashRegion "L\=#[^#]+#" containedin=cfOutputRegion contains=@cfExpressionCluster,cfScriptParenError
Вы также можете изучить использование списка аргументов contains = ALLBUT, {group-name}, ..
для некоторых случаев.