进行tmlanguage时,如何定义代码折叠的关键字?

时间:2018-09-18 22:20:04

标签: json visual-studio plist textmate tmlanguage

我目前正在尝试为Visual Studio(而非VSCode)开发一种新的语言语法。作为基础,我有一个同事过去创建的tmLanguage文件。我想继续使用此语言文件,以使自己更轻松。该语言文件本身非常简单,因为它没有使用变量选项和我在textmate文档中看到的其他选项。

首先,我正在寻找一种指定多个折叠开始标记和多个折叠结束标记的方法。截至目前,Visual Studio似乎确实使用选项卡自动进行了代码折叠(但是正确标记了这些注释的注释会将其弄乱了)。

我正在使用的语言称为PReS。它是一种文档撰写语言(用于打印)。我在下面提供了一个代码示例,以显示开始标记和结束标记的不同类型。

我所用的语言不是很好。它称为PrintSoft PReS,它具有多种类型的开始和停止指示符,需要为代码折叠定义这些指示符。

示例:

SUBROUTINE subName(args)
    ALPHA variable L25
    ALPHA args     L25
START
    ;I am a comment
    APPEND args, variable
    IF(args <> variable){
        SWITCH(args){
            CASE("things")
                ;do something
            BREAK
            CASE ("STUFF")
                ;dont do something
            BREAK
            DEFAULT
                ;something unexpected happened
            BREAK
; THIS NEEDS TO NOT BREAK THE CODE FOLDING, so it cannot be purely tab based
        }
    }


RETURN

以上是该语言的结构示例。我希望代码在START | RETURN,{|},CASE | BREAK和DEFAULT | BREAK处折叠。

我也很感谢任何有关如何使tmlanguage文件更健壮的输入。 textmate网站上的文档不是最好的,并且没有包含很多示例

0 个答案:

没有答案