我对Sublime Text 2中JSP页面的内置语法高亮显示有一些问题。
请参阅第11/12行的白线后面的代码:此处正确显示HTML代码<strong>
。
此行之前的代码未正确着色:第二个JSP结束标记(%>
)为红色,但应该像第一个一样橙色,内部的HTML标记被认为是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没有包含。但我只是猜测......有什么想法吗?
答案 0 :(得分:2)
我设法现在编辑HTML.tmLanguage
和Java Server Pages (JSP).tmLanguage
文件... ruby的一些匹配覆盖了HTML <script>
标记内的jsp范围,我删除了大括号的匹配,并且另外,我在一些范围定义中添加了一些text.html.jsp
包含。
我复制了我的.tmTheme
文件,并将其作为User
放入User.tmTheme
包文件夹中。然后我将这些行添加到底部的这个文件中:
<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包含和内容。
请参阅此处的文件:
HTML.tmLanguage
Java Server Pages (JSP).tmLanguage
JavaScript.tmLanguage