0

次の 2 行のコードは、TCL の構文の色付けを壊しているようです。

regsub -all {/} $original {\\\\} target      # The last } is being escaped

set grep_keyword [string trim $grep_keyword {"}]   # The " character is starting a new quote

このコードは、ファイルを開くとこのようになっていました。これを修正する方法はありますか?

4

2 に答える 2

1

それで、私はこれに戻って、私の問題を解決するためにいくらかの努力をしました. TCL の tmLangauge ファイルを変更しました。} 文字は終了中括弧として認識されます。この定義にも \} を追加しました。

<key>braces</key>
<dict>
    <key>begin</key>
    <string>(?:^|(?&lt;=\s))\{</string>
    <key>comment</key>
    <string>matches a single brace-enclosed word</string>
    <key>end</key>
    <string>\}([^\s\]]*)</string>
    <key>endCaptures</key>
    <dict>
        <key>1</key>
        <dict>
            <key>name</key>
            <string>invalid.illegal.tcl</string>
        </dict>
    </dict>
    <key>patterns</key>
    <array>
        <dict>
            <key>match</key>
            <string>\\[{}\n]</string>
            <key>name</key>
            <string>constant.character.escape.tcl</string>
        </dict>
        <dict>
            <key>include</key>
            <string>#inner-braces</string>
        </dict>
    </array>
</dict>

上記で、次のように RegEx を変更しました。

<string>\}([^\s\]]*)|\\}\s</string>
于 2012-09-04T16:08:17.003 に答える
1

問題は技術的には Sublime Text 2 にありますが (Tcl はいくつかのまれなケースで正しく強調表示するのが非常に簡単ではありません)、Tcl コードを意味的に同等のものに変更する方が簡単です。

regsub -all {/} $original "\\\\\\\\" target
set grep_keyword [string trim $grep_keyword "\""]

もちろん、最初のものに使用することを検討するかもしれませんstring map:

set target [string map {"/" "\\\\"} $original]
# or this:
#    set target [string map {/ {\\}} $original]
# but I'm not sure if the editor will like that...
于 2012-06-15T08:29:23.933 に答える