5

Sublime Text 2でPythondocstringと1行の文字列を区別したいと思います。Python言語の定義を見ると、同じcomment.block.python名を使用するアポストロフィ文字列の一致する定義とともにこれを確認できます。 。

<dict>
    <key>begin</key>
    <string>^\s*(?=[uU]?[rR]?""")</string>
    <key>end</key>
    <string>(?&lt;=""")</string>
    <key>name</key>
    <string>comment.block.python</string>
...

しかし、次のような新しいカラールールを作成すると、次のようになります。

<dict>
    <key>name</key>
    <string>Docstring</string>
    <key>scope</key>
    <string>comment.block.python</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#008800</string>
    </dict>
</dict>

何も起こりません; それらは、単一行の文字列と同じ色のままです。

これを行うことは可能ですか?もしそうなら、私は何を間違っていますか?

4

2 に答える 2

3

多分次のように変更します:

<dict>
    <key>name</key>
    <string>Docstring</string>
    <key>scope</key>
    <string>string.quoted.double.block.python</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#008800</string>
    </dict>
</dict>

簡単にテストしただけですが、うまくいったようです。

于 2012-12-28T08:33:16.647 に答える
0

Python.tmLanguage少しバグがあると思います。docstringの修正は次のとおりですが、これが適切かどうかはわかりません。

  • docstringsキーを次のように置き換えます。

    <key>docstrings</key>
    <dict>
        <key>patterns</key>
        <array>
            <dict>
                <key>begin</key>
                <string>^\s*([uU]?[rR]?""")</string>
                <key>end</key>
                <string>(""")</string>
                <key>name</key>
                <string>comment.block.python</string>
            </dict>
            <dict>
                <key>begin</key>
                <string>^\s*(?=[uU]?[rR]?''')</string>
                <key>end</key>
                <string>(?&lt;=''')</string>
                <key>name</key>
                <string>comment.block.python</string>
            </dict>
        </array>
    </dict>
    
  • string_quoted_doubleとの最初の配列として単一のdictを追加しますstring_quoted_single

    <key>string_quoted_double</key>
    <dict>
        <key>patterns</key>
        <array>
            <dict>
                <key>include</key>
                <string>#docstrings</string>
            </dict>
    

これにより、docstringが自動的にコメントになります。

于 2013-09-01T23:24:02.113 に答える