15

我在 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 中启用此功能?或者,我是否必须添加/修改其他文件才能启用此功能?

4

1 回答 1

15

查看“Comments (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>

于 2013-08-14T21:39:32.533 回答