我正在使用Backbone应用程序的模板,这些应用程序存储在<script type="text/template">
元素的HTML中,但这变得令人沮丧,因为Sublime Text将模板中的HTML着色,就好像它是Javascript一样。我想让编辑器将这些脚本标记视为与普通HTML标记相同。
我已经尝试修改HTML.tmLanguage上source.js.embedded.html块中的正则表达式,但是对于那些对正则表达式缺乏经验的人来说,我无法做到正确。
有什么想法吗?
我相信,这是需要修改的tmLanguage文件的相关部分:
<key>begin</key>
<string>(?<!</(?:script|SCRIPT))(>)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.html</string>
</dict>
</dict>
<key>end</key>
<string>(</)((?i:script))</string>
答案 0 :(得分:1)
我认为你应该编辑另一个值:
<key>begin</key>
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.html</string>
</dict>
</dict>
并替换(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)
(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?![^>]*type="text/template")