gpt4 book ai didi

javascript - 在 Coffee.vim 中修改注释突出显示时出现问题

转载 作者:行者123 更新时间:2023-12-02 17:38:57 25 4
gpt4 key购买 nike

我正在尝试修改 CoffeeScript 注释的突出显示:

"" coffeescript comments
syntax keyword coffeescriptCommentTodo TODO FIXME XXX TBD contained
syntax region coffeescriptLineComment start=/####\@!/ end=/###/ keepend contains=coffeescriptCommentTodo,@Spell
syntax region coffeescriptEnvComment start=/####\@!/ end=/###/ display
syntax region coffeescriptLineComment start=/####\@!/ end=/###/ keepend contains=coffeescriptCommentTodo,@Spell fold
syntax region coffeescriptCvsTag start="\$\cid:" end="\$" oneline contained
syntax region coffeescriptComment start=/#*/ end="\$" contains=coffeescriptCommentTodo,coffeescriptCvsTag,@Spell fold

我承认我这样做有点随机,基于另一个语法文件:

syn match coffeeComment /#.*/ contains=@Spell,coffeeTodo
hi def link coffeeComment Comment

syn region coffeeBlockComment start=/####\@!/ end=/###/
\ contains=@Spell,coffeeTodo
hi def link coffeeBlockComment coffeeComment

" A comment in a heregex
syn region coffeeHeregexComment start=/#/ end=/\ze\/\/\/\|$/ contained
\ contains=@Spell,coffeeTodo
hi def link coffeeHeregexComment coffeeComment

有了这个,我现在(第一个代码),除了 if 语句之外的所有内容看起来都被注释了。如何修改语法文件以正确突出显示 CoffeeScript 注释?

enter image description here

最佳答案

搜索 #* 会匹配任何文件的整个内容,因为 * 会匹配任意数量的前面字符(甚至为零)。因此所有字符都匹配零 #

这就是您发布的示例使用 #.* 的原因 - 匹配一个 #,然后匹配任意数量的任意字符 (.*)

我发现这是一个有用的引用:VimRegex .

有问题的行是:

syntax region  coffeescriptComment        start=/#*/      end="\$" contains=coffeescriptCommentTodo,coffeescriptCvsTag,@Spell fold

尝试:start=/#\+/ 匹配至少一个 # 及更多。

关于javascript - 在 Coffee.vim 中修改注释突出显示时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385443/

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