我对Sublime Text 2中JSP页面的内置语法突出显示有一些问题。
请参见第11/12行白线后的代码:这里正确显示了HTML标记<strong>。
这一行之前的代码颜色不正确:第二个JSP结束标记(%>)是红色的,但应该像第一个一样是橙色的,而且我认为其中的标记被识别为Java代码,尽管作用域(在CTRL+SHIFT+ALT+P中显示为text.html.jsp)没有改变。

如果我对<?php或<?开始标记和?>结束标记执行相同的操作,那么问题就不存在了,所有的颜色似乎都是正确的。
有没有人有同样的问题?我确保语法设置为JavaServerPages (JSP)。
我认为问题与HTML.tmLanguage文件中的这些行有关(JSP范围在HTML范围内):
<dict>
<key>embedded-code</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#ruby</string>
</dict>
<dict>
<key>include</key>
<string>#php</string>
</dict>
<!--
<dict>
<key>include</key>
<string>#smarty</string>
</dict>
-->
<dict>
<key>include</key>
<string>#python</string>
</dict>
</array>
</dict>没有包含JSP。但我只是猜想...有什么想法吗?
发布于 2012-10-03 01:48:29
我现在设法编辑了HTML.tmLanguage和Java Server Pages (JSP).tmLanguage文件...ruby的一些匹配项覆盖了HTML标记中的<script>作用域,我删除了花括号的匹配项,另外,我在一些作用域定义中添加了一些text.html.jsp包含。
我复制了我的.tmTheme文件,并将其作为User.tmTheme放入User包文件夹。然后,我将以下几行添加到此文件的底部:
<dict>
<key>name</key>
<string>Embedded Code Punctuation</string>
<key>scope</key>
<string>punctuation.section.embedded</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#FD971F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Embedded Java Code Directive</string>
<key>scope</key>
<string>punctuation.section.directive</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FD971F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Embedded Java Code</string>
<key>scope</key>
<string>source.java.embedded.html</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#F8F8F2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Embedded Java Code String</string>
<key>scope</key>
<string>string.quoted.double.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E6DB74</string>
</dict>
</dict>然后,我编辑了文件夹HTML和Java中的这两个文件,并注释掉了一些ruby include和内容。
请参阅此处的文件:
https://stackoverflow.com/questions/12643749
复制相似问题