5

我对 Sublime Text 2 中 JSP 页面的内置语法突出显示有一些问题。

见第 11/12 行白线后的代码:<strong>此处 HTML 标签显示正确。

此行之前的代码未正确着色:第二个 JSP 结束标记 ( %>) 为红色,但应该像第一个一样为橙色,并且我认为里面的 HTML 标记被识别为 Java 代码,尽管范围(可见CTRL+SHIFT+ALT+Pas text.html.jsp) 不要换。

Sublime Text 2 中的 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 没有包含。但我只是猜测......有什么想法吗?

4

1 回答 1

2

我现在设法编辑了HTML.tmLanguageJava 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>

然后我在文件夹中编辑了这两个文件HTMLJava并注释掉了一些 ruby​​ 包含和东西。

在此处查看文件:

HTML.tmLanguage
Java 服务器页面 (JSP).tmLanguage
JavaScript.tmLanguage

于 2012-10-02T17:48:28.760 回答