first commit
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
||||
"name": "Wire attributes",
|
||||
"scopeName": "wrn.attributes.injection",
|
||||
"injectionSelector": "L:meta.tag -comment -string",
|
||||
"patterns": [{ "include": "#wire-event" }, { "include": "#wire-directive" }],
|
||||
"repository": {
|
||||
"wire-event": {
|
||||
"match": "(@)([A-Za-z][A-Za-z0-9_-]*)",
|
||||
"captures": {
|
||||
"1": { "name": "punctuation.definition.keyword.wrn" },
|
||||
"2": { "name": "entity.other.attribute-name.wrn.event" }
|
||||
}
|
||||
},
|
||||
"wire-directive": {
|
||||
"match": "\\b(data-(?:component|scope|for|text|show|slot|on-[A-Za-z0-9_-]+|wire-[A-Za-z0-9_-]+|wrnexus-[A-Za-z0-9_-]+))\\b",
|
||||
"name": "entity.other.attribute-name.wrn.directive"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
||||
"name": "Wire",
|
||||
"scopeName": "source.wrn",
|
||||
"patterns": [{ "include": "#comments" }, { "include": "#declaration" }, { "include": "#blocks" }],
|
||||
"repository": {
|
||||
"comments": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "comment.line.double-slash.wrn",
|
||||
"match": "//.*$"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"declaration": {
|
||||
"match": "\\b(page|component)\\b\\s+([A-Za-z_][A-Za-z0-9_]*)?",
|
||||
"captures": {
|
||||
"1": { "name": "storage.type.wrn keyword.control.wrn" },
|
||||
"2": { "name": "entity.name.type.wrn" }
|
||||
}
|
||||
},
|
||||
|
||||
"blocks": {
|
||||
"patterns": [
|
||||
{ "include": "#view-block" },
|
||||
{ "include": "#style-block" },
|
||||
{ "include": "#seo-block" },
|
||||
{ "include": "#props-block" },
|
||||
{ "include": "#realtime-block" },
|
||||
{ "include": "#mode-block" },
|
||||
{ "include": "#api-block" },
|
||||
{ "include": "#functions-block" },
|
||||
{ "include": "#state-decl" },
|
||||
{ "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*(=)",
|
||||
"beginCaptures": {
|
||||
"1": { "name": "keyword.control.wrn" },
|
||||
"2": { "name": "variable.other.wrn" },
|
||||
"3": { "name": "keyword.operator.assignment.wrn" }
|
||||
},
|
||||
"end": "$",
|
||||
"contentName": "meta.embedded.expr.wrn",
|
||||
"patterns": [{ "include": "source.ts" }]
|
||||
},
|
||||
|
||||
"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": "\\b([A-Za-z_][A-Za-z0-9_]*)\\s*(=)",
|
||||
"captures": {
|
||||
"1": { "name": "variable.parameter.wrn" },
|
||||
"2": { "name": "keyword.operator.assignment.wrn" }
|
||||
}
|
||||
},
|
||||
{ "include": "#strings" }
|
||||
]
|
||||
},
|
||||
|
||||
"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" }]
|
||||
},
|
||||
|
||||
"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": [{ "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": "#wire-event" },
|
||||
{ "include": "text.html.basic" }
|
||||
]
|
||||
},
|
||||
|
||||
"wire-event": {
|
||||
"match": "(@)([A-Za-z][A-Za-z0-9_-]*)(=)",
|
||||
"captures": {
|
||||
"1": { "name": "punctuation.definition.keyword.wrn" },
|
||||
"2": { "name": "entity.other.attribute-name.event.wrn" },
|
||||
"3": { "name": "keyword.operator.assignment.wrn" }
|
||||
}
|
||||
},
|
||||
|
||||
"interpolation": {
|
||||
"patterns": [
|
||||
{
|
||||
"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": "\\\\." }]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user