Как я могу сопоставить строку, за которой следует двоеточие в грамматике textmate (или предшествует, если это проще) - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть грамматика textmate только со строками и двоеточиями. Возможно ли иметь шаблон, который соответствует строкам, за которыми следует двоеточие, имя которого отличается от строк, за которыми не следует двоеточие? (если это невозможно, но возможно сопоставить двоеточие, за которым следует строка, этого также будет достаточно)

пример:

"a" "b" "this one should be different": "c" "d"

мой текущий источник:

{
    "name": "mylang",
    "scopeName": "source.mylang",
    "patterns": [
        {
            "match": ":",
            "name": "punctuation.definition.colon.mylang"
        },
        {
            "include": "#string"
        }
    ],
    "repository": {
        "string": {
            "begin": "\"",
            "beginCaptures": {
                "0": {
                    "name": "punctuation.definition.string.quote.begin.mylang"
                }
            },
            "end": "\"",
            "endCaptures": {
                "0": {
                    "name": "punctuation.definition.string.quote.end.mylang"
                }
            },
            "name": "string.quoted.double.mylang",
            "patterns": [
                {
                    "include": "#stringcontent"
                }
            ]
        },
        "stringcontent": {
            "patterns": [
                {
                    "match": "(?x)                # turn on extended mode\n  \\\\                # a literal backslash\n  (?:               # ...followed by...\n    [\"\\\\/bfnrt]     # one of these characters\n    |               # ...or...\n    u               # a u\n    [0-9a-fA-F]{4}) # and four hex digits",
                    "name": "constant.character.escape.mylang"
                },
                {
                    "match": "\\\\.",
                    "name": "invalid.illegal.unrecognized-string-escape.mylang"
                }
            ]
        }
    }
}
...