2012-10-02 78 views
5

我想區分Python文檔和Sublime Text 2中的單行字符串。查看Python語言定義,我可以看到這一點,以及使用相同comment.block的撇號字符串的匹配定義。 python名稱。可以使單行字符串中的Python文檔顏色與Sublime顏色不同嗎?

<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> 

什麼也沒有發生;它們的顏色與單線字符串相同。

可以做到這一點嗎?如果是這樣,我做錯了什麼?

+0

偉大的問題。 – dbn

回答

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> 

我只測試了它短暫的,但它似乎工作。

+0

它的工作原理;謝謝! – DNS

0

我認爲Python.tmLanguage有一個小錯誤。下面是文檔字符串的修復,雖然我不知道這是否是一個很好的一個:

  • 替換文檔字符串鍵:

    <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第一陣列和string_quoted_single

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

這應自動進行文檔字符串成爲評論。

相關問題