PHP 个属性 Vim
PHP attributes with Vim
我正在使用 Vim 在 PHP 中编码,并且我看到 attributes syntax (#[...]
) 在 [=38] 中被解析为注释=]语法高亮。
我想确保 #[
不被视为评论,而 #
后跟除 [
以外的任何字符都保留为评论。
我之前从来没有弄乱过 vim 的语法配置,所以我不熟悉它是如何工作的,但我尝试添加一个 after/syntax/php.vim
文件,我重新定义了 phpComment
组如下,除了我定义的那个之外,默认匹配仍然有效。我不知道如何覆盖它们。
if exists("php_parent_error_open")
syn region phpComment start="/\*" end="\*/" fold contained contains=phpTodo,@Spell
else
syn region phpComment start="/\*" end="\*/" fold contained contains=phpTodo,@Spell extend
endif
syn match phpComment "#[^\[].\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
我也尝试过使用 call matchdelete('phpComment', "#\[*$")
但我收到一条错误消息说我有一个无效的 ID,并且该 ID 应该大于或等于 1(我很确定我不明白如何使用matchdelete
功能,但我不确定这是解决此问题的最简单方法。
我也考虑过为 #[
和 ]
之间的所有内容创建一个新的语法突出显示来覆盖注释突出显示,但我对 vim 的语法系统了解不够对于这么少的人来说,学习这一切似乎需要做很多工作。
感谢您的帮助。
我发现了问题:我安装了插件 vim-polyglot,还有一个优先于 $VIMRUNTIME/syntax/php.[=15= 的另一个 php.vim 语法文件] 文件 - 并且不是最新的 PHP8 功能。
我正在使用 Vim 在 PHP 中编码,并且我看到 attributes syntax (#[...]
) 在 [=38] 中被解析为注释=]语法高亮。
我想确保 #[
不被视为评论,而 #
后跟除 [
以外的任何字符都保留为评论。
我之前从来没有弄乱过 vim 的语法配置,所以我不熟悉它是如何工作的,但我尝试添加一个 after/syntax/php.vim
文件,我重新定义了 phpComment
组如下,除了我定义的那个之外,默认匹配仍然有效。我不知道如何覆盖它们。
if exists("php_parent_error_open")
syn region phpComment start="/\*" end="\*/" fold contained contains=phpTodo,@Spell
else
syn region phpComment start="/\*" end="\*/" fold contained contains=phpTodo,@Spell extend
endif
syn match phpComment "#[^\[].\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
我也尝试过使用 call matchdelete('phpComment', "#\[*$")
但我收到一条错误消息说我有一个无效的 ID,并且该 ID 应该大于或等于 1(我很确定我不明白如何使用matchdelete
功能,但我不确定这是解决此问题的最简单方法。
我也考虑过为 #[
和 ]
之间的所有内容创建一个新的语法突出显示来覆盖注释突出显示,但我对 vim 的语法系统了解不够对于这么少的人来说,学习这一切似乎需要做很多工作。
感谢您的帮助。
我发现了问题:我安装了插件 vim-polyglot,还有一个优先于 $VIMRUNTIME/syntax/php.[=15= 的另一个 php.vim 语法文件] 文件 - 并且不是最新的 PHP8 功能。