Sublime Text:在包含PHP代码段的HTML链接中,与号突出显示红色


Sublime Text: in HTML links having PHP snippets, ampersands highlight red?

我正在编写我所理解的相当标准的PHP/HTML代码。在PHP中模仿受Rails启发的粗糙RESTful架构。我的页面包含许多动态生成的链接,其结构如下:

<a href='objects_list.php?coursekey=<? echo $coursekey; ?>&delete_section=<? 
  echo $row['key']; ?>'>delete</a>

正如您所看到的,链接有两个URL变量,每个变量都是基于页面所知道的PHP变量设置的。很普通,对吧?

我最近转到Sublime Text 2作为我的主要开发环境。我觉得这太棒了,我的开发过程也有了很大的改进。但是Sublime的语法高亮显示似乎被任何链接中分隔URL变量的符号(&)弄糊涂了。它用红色突出显示每个"与"符号,好像在想我犯了一个错误。

知道为什么吗?有什么方法可以让Sublime认识到链接中经常需要有与符号?

EDIT:无论链接href中是否包含PHP片段,都会发生这种情况。Sublime似乎不信任链接中的符号。。。?

href属性中,与号字符应该由其HTML实体&amp;表示,否则HTML验证器会抱怨。Sublime Text将没有实体的单个&正确标记为错误。

另请参阅在HTML href/src属性中应该对与号(&)旁边的其他哪些字符进行编码?以及我是否在<a href>?

正如Marcel Korpel所指出的,用&amp;代替&通常是个好主意,但使用angular之类的东西时会很痛苦。您可以通过编辑sublime_directory/Packages/HTML.sublime-package/HTML.tmLanguage来删除突出显示非法与号的规则并注释这些行(搜索ampersand就可以了)

<dict>
    <key>match</key>
    <string>&amp;</string>
    <key>name</key>
    <string>invalid.illegal.bad-ampersand.html</string>
</dict>

重新启动"崇高"以查看效果。在Sublime Text 3 上测试