Files
WRNexusJS/editors/vscode/syntaxes/wrn.tmLanguage.json
Clintchiz 2c960fc1dc
Quality / quality (ubuntu-latest) (push) Failing after 9m49s
Quality / quality (windows-latest) (push) Canceled after 0s
refactor: migrate legacy wire namespace to wrn
2026-08-12 18:51:15 +05:30

1194 lines
28 KiB
JSON

{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "WRNexus",
"scopeName": "source.wrn",
"patterns": [
{
"include": "#comments"
},
{
"include": "#v060-keywords"
},
{
"include": "#imports"
},
{
"include": "#declaration"
},
{
"include": "#blocks"
}
],
"repository": {
"imports": {
"begin": "^\\s*(import)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.import.ts"
}
},
"end": ";|$",
"name": "meta.import.wrn",
"patterns": [
{
"include": "source.ts"
}
]
},
"comments": {
"patterns": [
{
"name": "comment.line.double-slash.wrn",
"match": "//.*$"
},
{
"name": "comment.block.html.wrn",
"begin": "<!--",
"end": "-->"
}
]
},
"declaration": {
"match": "\\b(?:(global|page)\\s+(store)|(page|component|layout))\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)?",
"captures": {
"1": {
"name": "storage.modifier.wrn"
},
"2": {
"name": "storage.type.wrn keyword.control.wrn"
},
"3": {
"name": "storage.type.wrn keyword.control.wrn"
},
"4": {
"name": "entity.name.type.wrn"
}
}
},
"blocks": {
"patterns": [
{
"include": "#view-block"
},
{
"include": "#style-block"
},
{
"include": "#seo-block"
},
{
"include": "#types-block"
},
{
"include": "#props-block"
},
{
"include": "#outputs-block"
},
{
"include": "#lifecycle-block"
},
{
"include": "#watch-block"
},
{
"include": "#realtime-block"
},
{
"include": "#execution-decl"
},
{
"include": "#computed-block"
},
{
"include": "#effect-block"
},
{
"include": "#security-block"
},
{
"include": "#load-block"
},
{
"include": "#action-block"
},
{
"include": "#mode-block"
},
{
"include": "#api-block"
},
{
"include": "#functions-block"
},
{
"include": "#state-decl"
},
{
"include": "#grouped-state-block"
},
{
"include": "#persist-block"
},
{
"include": "#layout-decl"
},
{
"include": "#strings"
}
]
},
"layout-decl": {
"match": "\\b(layout)\\b\\s*(=)",
"captures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "keyword.operator.assignment.wrn"
}
}
},
"state-decl": {
"begin": "\\b(state)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)(?:\\s*(:)\\s*([^=\\r\\n]+?))?\\s*(=)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "variable.other.wrn"
},
"3": {
"name": "punctuation.separator.type.wrn"
},
"4": {
"name": "storage.type.wrn"
},
"5": {
"name": "keyword.operator.assignment.wrn"
}
},
"end": "$",
"contentName": "meta.embedded.expr.wrn",
"patterns": [
{
"include": "source.ts"
}
]
},
"types-block": {
"begin": "\\b(types)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "source.ts"
},
{
"include": "#ts-braces"
}
],
"applyEndPatternLast": true
},
"props-block": {
"begin": "\\b(props)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "(outputs|@event)\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s*(=)\\s*(function)\\b",
"captures": {
"1": {
"name": "keyword.control.event.wrn"
},
"2": {
"name": "entity.name.function.event.wrn"
},
"3": {
"name": "keyword.operator.assignment.wrn"
},
"4": {
"name": "storage.type.function.wrn"
}
}
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$]*)(?:\\s*(:)\\s*([^=\\r\\n]+?))?\\s*(=|$)",
"captures": {
"1": {
"name": "variable.parameter.wrn"
},
"2": {
"name": "punctuation.separator.type.wrn"
},
"3": {
"name": "storage.type.wrn"
},
"4": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "#strings"
},
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
],
"applyEndPatternLast": true
},
"seo-block": {
"begin": "\\b(seo)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$-]*)\\s*(=)",
"captures": {
"1": {
"name": "support.type.property-name.wrn"
},
"2": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "#strings"
}
]
},
"style-block": {
"begin": "\\b(style)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.css",
"patterns": [
{
"include": "#css-braces"
},
{
"include": "source.css"
}
],
"applyEndPatternLast": true
},
"css-braces": {
"begin": "\\{",
"end": "\\}",
"contentName": "meta.embedded.block.css",
"patterns": [
{
"include": "#css-braces"
},
{
"include": "source.css"
}
]
},
"functions-block": {
"begin": "\\b(functions)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"match": "\\b(?:(client|server|shared)\\s+)?(async\\s+)?(function)\\s+([A-Za-z_$][A-Za-z0-9_$]*)",
"captures": {
"1": {
"name": "storage.modifier.runtime.wrn"
},
"2": {
"name": "storage.modifier.async.ts"
},
"3": {
"name": "storage.type.function.ts"
},
"4": {
"name": "entity.name.function.wrn"
}
}
},
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"lifecycle-block": {
"begin": "\\b(lifecycle)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"begin": "\\b(mount|update|unmount|serverInit|clientInit|hydrate|dispose)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.lifecycle.wrn keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
}
]
},
"watch-block": {
"begin": "\\b(watch)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "variable.other.readwrite.wrn"
},
"3": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"match": "\\b(value|previous)\\b",
"name": "variable.language.wrn"
},
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"ts-braces": {
"begin": "\\{",
"end": "\\}",
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"api-block": {
"begin": "\\b(api)\\b\\s+(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\\b\\s*([^\\s{]*)\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "constant.language.http-method.wrn"
},
"3": {
"name": "string.unquoted.route.wrn"
},
"4": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"mode-block": {
"begin": "\\b(ssr|client)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"begin": "\\b(api)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s+(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\\b\\s*([^\\s{]*)\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "entity.name.function.wrn"
},
"3": {
"name": "constant.language.http-method.wrn"
},
"4": {
"name": "string.unquoted.route.wrn"
},
"5": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
{
"include": "#functions-block"
}
]
},
"realtime-block": {
"begin": "\\b(realtime)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "entity.name.function.wrn"
},
"3": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"begin": "\\b(on)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s*(\\([^)]*\\))\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "entity.name.function.event.wrn"
},
"3": {
"name": "variable.parameter.wrn"
},
"4": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
}
]
},
"view-block": {
"begin": "\\b(view)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.html",
"patterns": [
{
"include": "#interpolation"
},
{
"include": "#wrn-event"
},
{
"include": "#conditional-class"
},
{
"include": "#conditional-class-single"
},
{
"include": "text.html.basic"
}
],
"applyEndPatternLast": true
},
"wrn-event": {
"match": "(@)(?:(window|document)(:))?([A-Za-z][A-Za-z0-9_-]*)(\\s*=)",
"captures": {
"1": {
"name": "punctuation.definition.keyword.wrn"
},
"2": {
"name": "support.type.object.wrn"
},
"3": {
"name": "punctuation.separator.key-value.wrn"
},
"4": {
"name": "entity.other.attribute-name.event.wrn"
},
"5": {
"name": "keyword.operator.assignment.wrn"
}
}
},
"conditional-class": {
"name": "meta.attribute.class-directive.wrn",
"begin": "(?<=\\s)(class)(:)((?:\\[[^\\]\\r\\n]*\\]|[^\\s=])+)(\\s*=\\s*)(\")",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.class.wrn"
},
"2": {
"name": "punctuation.separator.key-value.wrn"
},
"3": {
"name": "string.unquoted.class-name.wrn"
},
"4": {
"name": "keyword.operator.assignment.wrn"
},
"5": {
"name": "punctuation.definition.string.begin.wrn"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.wrn"
}
},
"contentName": "meta.embedded.expression.wrn",
"patterns": [
{
"include": "source.ts"
}
]
},
"conditional-class-single": {
"name": "meta.attribute.class-directive.wrn",
"begin": "(?<=\\s)(class)(:)((?:\\[[^\\]\\r\\n]*\\]|[^\\s=])+)(\\s*=\\s*)(')",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.class.wrn"
},
"2": {
"name": "punctuation.separator.key-value.wrn"
},
"3": {
"name": "string.unquoted.class-name.wrn"
},
"4": {
"name": "keyword.operator.assignment.wrn"
},
"5": {
"name": "punctuation.definition.string.begin.wrn"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.wrn"
}
},
"contentName": "meta.embedded.expression.wrn",
"patterns": [
{
"include": "source.ts"
}
]
},
"interpolation": {
"patterns": [
{
"name": "meta.block.directive.wrn",
"match": "(\\{)(#if|#each|:else(?:\\s+if)?|/if|/each)(?:\\s+([^}]*))?(\\})",
"captures": {
"1": {
"name": "punctuation.definition.keyword.wrn"
},
"2": {
"name": "keyword.control.wrn"
},
"3": {
"name": "meta.embedded.expr.wrn"
},
"4": {
"name": "punctuation.definition.keyword.wrn"
}
}
},
{
"name": "meta.interpolation.i18n.wrn",
"match": "(\\{)(t:)([^}]*)(\\})",
"captures": {
"1": {
"name": "punctuation.section.interpolation.begin.wrn"
},
"2": {
"name": "keyword.control.i18n.wrn"
},
"3": {
"name": "string.other.i18n-key.wrn"
},
"4": {
"name": "punctuation.section.interpolation.end.wrn"
}
}
},
{
"name": "meta.interpolation.wrn",
"begin": "\\{",
"end": "\\}",
"beginCaptures": {
"0": {
"name": "punctuation.section.interpolation.begin.wrn"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.interpolation.end.wrn"
}
},
"contentName": "meta.embedded.expr.wrn",
"patterns": [
{
"include": "#interp-braces"
},
{
"include": "source.ts"
}
]
}
]
},
"interp-braces": {
"begin": "\\{",
"end": "\\}",
"contentName": "meta.embedded.expr.wrn",
"patterns": [
{
"include": "#interp-braces"
},
{
"include": "source.ts"
}
]
},
"strings": {
"patterns": [
{
"name": "string.quoted.double.wrn",
"begin": "\"",
"end": "\"",
"patterns": [
{
"name": "constant.character.escape.wrn",
"match": "\\\\."
}
]
},
{
"name": "string.quoted.single.wrn",
"begin": "'",
"end": "'",
"patterns": [
{
"name": "constant.character.escape.wrn",
"match": "\\\\."
}
]
}
]
},
"execution-decl": {
"begin": "\\b(runtime|hydrate|client)\\b\\s*(=)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "keyword.operator.assignment.wrn"
}
},
"end": "$",
"patterns": [
{
"include": "#strings"
}
]
},
"computed-block": {
"begin": "\\b(computed)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$]*)(?:\\s*(:)\\s*([^=\\r\\n]+?))?\\s*(=)",
"captures": {
"1": {
"name": "variable.other.readwrite.declaration.wrn"
},
"2": {
"name": "punctuation.separator.type.wrn"
},
"3": {
"name": "storage.type.wrn"
},
"4": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "source.ts"
}
]
},
"effect-block": {
"begin": "\\b(effect)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"security-block": {
"begin": "\\b(security)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$-]*)\\s*(=)",
"captures": {
"1": {
"name": "support.type.property-name.wrn"
},
"2": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "#strings"
}
]
},
"load-block": {
"begin": "\\b(load)\\b\\s+(server|client)\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "storage.modifier.wrn"
},
"3": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"action-block": {
"begin": "\\b(action)\\b\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s*(\\([^)]*\\))\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "entity.name.function.wrn"
},
"3": {
"name": "variable.parameter.wrn"
},
"4": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"contentName": "meta.embedded.block.ts",
"patterns": [
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
]
},
"v060-keywords": {
"patterns": [
{
"name": "storage.modifier.runtime.wrn",
"match": "\\b(client|server|shared)\\b(?=\\s+(?:async\\s+)?function|\\s+state\\b)"
},
{
"name": "support.variable.language.wrn",
"match": "\\b(output|server|props|refs|payload)\\b"
},
{
"name": "keyword.control.wrn",
"match": "\\b(outputs|persist)\\b(?=\\s*\\{)"
}
]
},
"outputs-block": {
"begin": "\\b(outputs)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$]*)\\s*(\\()\\s*(?:([A-Za-z_$][A-Za-z0-9_$]*)(\\??)\\s*(:)\\s*([^\\)]+))?\\s*(\\))",
"captures": {
"1": {
"name": "entity.name.function.event.wrn"
},
"2": {
"name": "punctuation.definition.parameters.begin.wrn"
},
"3": {
"name": "variable.parameter.wrn"
},
"4": {
"name": "keyword.operator.optional.wrn"
},
"5": {
"name": "punctuation.separator.type.wrn"
},
"6": {
"name": "storage.type.wrn"
},
"7": {
"name": "punctuation.definition.parameters.end.wrn"
}
}
},
{
"include": "#ts-braces"
},
{
"include": "source.ts"
}
],
"applyEndPatternLast": true
},
"grouped-state-block": {
"begin": "\\b(?:(client|server|shared)\\s+)?(state)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "storage.modifier.runtime.wrn"
},
"2": {
"name": "keyword.control.wrn"
},
"3": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b([A-Za-z_$][A-Za-z0-9_$]*)(?:\\s*(:)\\s*([^=\\r\\n]+?))?\\s*(=)",
"captures": {
"1": {
"name": "variable.other.readwrite.declaration.wrn"
},
"2": {
"name": "punctuation.separator.type.wrn"
},
"3": {
"name": "storage.type.wrn"
},
"4": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "source.ts"
}
]
},
"persist-block": {
"begin": "\\b(persist)\\b\\s*(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.wrn"
},
"2": {
"name": "punctuation.definition.block.begin.wrn"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.block.end.wrn"
}
},
"patterns": [
{
"include": "#comments"
},
{
"match": "\\b(storage|include|version)\\b\\s*(=)",
"captures": {
"1": {
"name": "support.type.property-name.wrn"
},
"2": {
"name": "keyword.operator.assignment.wrn"
}
}
},
{
"include": "source.ts"
}
]
}
}
}