{ "//": [ "TextMate grammar for Klammertext — the VS Code port of", "doc/edit/sublime/Klammertext.sublime-syntax (same token classes,", "same scope names; see that file's header for the full rationale).", "", "What it highlights: text removal (#, ##, nestable #[ ... ]#,", "whitespace operators left unscoped), the three @-tiers — application", "(@), definition (@@), system (@@@) — each as an opening (@name, one", "unit) or a close (name@, bare @), ^-escapes (consumed, unscoped),", "and verbatim @code ... code@ / @c ... c@ interiors.", "", "How open vs. close is decided (the same rule as every integration):", "a delimiter whose NAME follows the @-run is an OPENING; a bare", "@-run, or one whose NAME precedes it, is a CLOSING. The", "(?![A-Za-z0-9_@]) look-ahead on every closing keeps foo@bar correct.", "", "SYNC: the literal-klammer set's source of truth is LITERAL_KLAMMERS", "in doc/edit/shared/klammertext_edit.py. A static grammar cannot", "read it: to add a literal klammer 'foo', copy the @code begin/end", "rule below with code -> foo (and mirror it in the Emacs, Sublime,", "and Vim artifacts; all are seeded with 'code' and 'c').", "", "Delimiter matching, indentation, alignment, and diagnostics are not", "tokenizer concerns — they come from the Klammertext language server", "via extension.js.", "", "The ## rule's end pattern never matches, so the region runs to the", "end of the file (## removes the rest of the file by definition)." ], "name": "Klammertext", "scopeName": "text.klammertext", "patterns": [ { "match": "\\^." }, { "begin": "#\\[", "beginCaptures": { "0": { "name": "punctuation.definition.comment.klammertext" } }, "end": "\\]#", "endCaptures": { "0": { "name": "punctuation.definition.comment.klammertext" } }, "name": "comment.block.klammertext", "patterns": [ { "include": "#removal-block" } ] }, { "match": "#[-+/]\\d*" }, { "begin": "##", "beginCaptures": { "0": { "name": "punctuation.definition.comment.klammertext" } }, "end": "$never^", "name": "comment.block.klammertext" }, { "begin": "#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.klammertext" } }, "end": "$", "name": "comment.line.klammertext" }, { "begin": "@code(?![A-Za-z0-9_])", "beginCaptures": { "0": { "name": "entity.name.function.begin.klammertext" } }, "end": "code@", "endCaptures": { "0": { "name": "entity.name.function.end.klammertext" } } }, { "begin": "@c(?![A-Za-z0-9_])", "beginCaptures": { "0": { "name": "entity.name.function.begin.klammertext" } }, "end": "(?