gpt4 book ai didi

ColdFusion 哈希标记的 vim 语法高亮显示

转载 作者:行者123 更新时间:2023-12-02 05:17:33 24 4
gpt4 key购买 nike

我正在尝试为 cf.vim 创建补丁来解决哈希问题。在 ColdFusion 中,# 符号用于将表达式括在 cfoutput block 内。

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

当存在单独的 # 而不是 cfoutput block 内时,问题就会出现:

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

这将使 vim 突出显示 # 之后的所有内容,就像它位于 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 中添加一些内容来告诉 vim“除非找到开始和结束属性,否则不要输入 cfHashRegion?

super 奖励:cfoutput只是进入“cfOutputRegion”的最常见方式。任何带有 output="true"的 cffunction 都会表现得好像其 block 内的所有内容都包装在 cfoutput 标记中。

最佳答案

您是否尝试过使用syn match而不是synregion?我不知道 ColdFusion 语法,所以我不知道这是否可能/正确。

类似于:

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

在某些情况下,您可能还想研究 contains=ALLBUT,{group-name},.. 参数列表的使用。

关于ColdFusion 哈希标记的 vim 语法高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com