Как определить ключевые слова для сгибов кода при создании языка? - PullRequest
0 голосов
/ 19 сентября 2018

В настоящее время я пытаюсь разработать новый синтаксис языка для визуальной студии (не 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 не самая лучшая и не содержит много примеров

...