【问题标题】:Enable automatic commenting in Sublime Text for a custom syntax在 Sublime Text 中为自定义语法启用自动注释
【发布时间】:2013-08-16 21:07:00
【问题描述】:

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

【问题讨论】:

    标签: sublimetext2 sublimetext sublimetext3


    【解决方案1】:

    查看“Comments (C++).tmPreferences”,您应该能够弄清楚如何根据您的语法对其进行编辑。

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

    评论 (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>
    

    【讨论】:

    • 谢谢!我的问题显然是我在错误的文件中查找示例。
    • 感谢 AGS 的编辑,我猜你必须对 xml 代码使用硬制表符。
    猜你喜欢
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多