在Sublime Text中启用自动注释以获得自定义语法

时间:2013-08-14 18:43:07

标签: sublimetext2 sublimetext sublimetext3

我在Sublime Text中为自定义语言创建了一个.tmLanuage文件。一切都运作良好,除了我似乎无法自动评论工作。我似乎无法在Sublime Text文档或Google上找到有关如何执行此操作的任何内容,但也许这是因为我没有使用正确的关键字。

让我解释一下我的意思。假设我有以下C代码:

int i = 1;
i += 2;

如果我在Sublime Text中突出显示此内容并按ctrl+/,则会更改为

// int i = 1;
// i += 2;

同样,对于Python代码:

i = 1
i += 2

会变成

# i = 1
# i += 2

显然,Sublime Text必须知道语言语法才能选择正确的注释字符,这就是为什么我假设我需要在我的.tmLanguage文件中添加一些内容才能使其工作。我查看了Sublime Text附带的C.tmLanguage和Python.tmLanguage文件,没有任何内容跳出来作为执行此自动注释的代码。

如何在我的.tmLanguage文件中添加以在Sublime Text中启用此功能?或者,是否有一些其他文件我必须添加/修改才能启用此功能?

1 个答案:

答案 0 :(得分:15)

看看“评论(C ++)。tmPreferences”,您应该能够弄清楚如何根据语法编辑它。

  • 将语法的“scopeName”添加到范围
  • TM_COMMENT_START =行评论
  • TM_COMMENT_START_2 / TM_COMMENT_END_2 =阻止评论

评论(C ++)。tmPreferences:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Comments</string>
    <key>scope</key>
    <string>source.your_syntax</string>
    <key>settings</key>
    <dict>
        <key>shellVariables</key>
        <array>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_START</string>
                <key>value</key>
                <string>// </string>
            </dict>
            <dict>
                <key>name</key>
                    <string>TM_COMMENT_START_2</string>
                <key>value</key>
                <string>/*</string>
            </dict>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_END_2</string>
                <key>value</key>
                <string>*/</string>
            </dict>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_DISABLE_INDENT_2</string>
                <key>value</key>
                <string>yes</string>
            </dict>
        </array>
    </dict>