diff options
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/queries/pkl/folds.scm | 6 | ||||
| -rw-r--r-- | runtime/queries/pkl/highlights.scm | 203 | ||||
| -rw-r--r-- | runtime/queries/pkl/injections.scm | 6 |
3 files changed, 215 insertions, 0 deletions
diff --git a/runtime/queries/pkl/folds.scm b/runtime/queries/pkl/folds.scm new file mode 100644 index 000000000..385c4ceb9 --- /dev/null +++ b/runtime/queries/pkl/folds.scm @@ -0,0 +1,6 @@ +[ + (clazz) + (objectBody) +] @fold + +(importClause)+ @fold diff --git a/runtime/queries/pkl/highlights.scm b/runtime/queries/pkl/highlights.scm new file mode 100644 index 000000000..bc7e72757 --- /dev/null +++ b/runtime/queries/pkl/highlights.scm @@ -0,0 +1,203 @@ +(identifier) @variable + +(qualifiedAccessExpr + (identifier) @function.method.call + . + (argumentList)) + +(qualifiedAccessExpr + (identifier) @variable.member .) + +; Operators +[ + "??" + "@" + "=" + "<" + ">" + "!" + "==" + "!=" + "<=" + ">=" + "&&" + "||" + "+" + "-" + "**" + "*" + "/" + "~/" + "%" + "|>" + "..." + "|" + "->" +] @operator + +[ + "," + ":" + "." + "?." +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +; Types +(clazz + (identifier) @type.definition) + +(typeAlias + (identifier) @type.definition) + +((identifier) @type + (#lua-match? @type "^[A-Z]")) + +(typeArgumentList + [ + "<" + ">" + ] @punctuation.bracket) + +; Method definitions +(classMethod + (methodHeader + (identifier) @function.method)) + +(objectMethod + (methodHeader + (identifier) @function.method)) + +; Identifiers +(classProperty + (identifier) @property) + +(objectProperty + (identifier) @property) + +(parameterList + (typedIdentifier + (identifier) @variable.parameter)) + +(objectBodyParameters + (typedIdentifier + (identifier) @variable.parameter)) + +; Literals +[ + (stringConstant) + (slStringLiteralExpr) + (mlStringLiteralExpr) +] @string + +(escapeSequence) @string.escape + +(intLiteralExpr) @number + +(floatLiteralExpr) @number.float + +(stringInterpolation + [ + "\\(" + "\\#(" + "\\##(" + "\\###(" + "\\####(" + "\\#####(" + "\\######(" + ] @punctuation.special + ")" @punctuation.special) + +(nullableType + "?" @punctuation.special) + +[ + (lineComment) + (blockComment) +] @comment @spell + +(docComment) @comment.documentation @spell + +(shebangComment) @keyword.directive + +; Keywords +[ + "abstract" + "external" + "for" + "is" + "let" + "new" + "out" +] @keyword + +"function" @keyword.function + +[ + "as" + "in" +] @keyword.operator + +[ + "typealias" + "class" + "module" +] @keyword.type + +[ + "import" + "import*" + "amends" + "extends" +] @keyword.import + +[ + "when" + "if" + "else" +] @keyword.conditional + +(modifier) @keyword.modifier + +(importExpr + [ + "import" + "import*" + ] @function.builtin) + +(moduleExpr + "module" @type.builtin) + +[ + (outerExpr) + "super" + (thisExpr) +] @variable.builtin + +[ + "read" + "read?" + "read*" + "throw" + "trace" +] @function.builtin + +(nullLiteralExpr) @constant.builtin + +[ + (falseLiteralExpr) + (trueLiteralExpr) +] @boolean + +(newExpr + (declaredType + (qualifiedIdentifier + (identifier) @constructor .))) diff --git a/runtime/queries/pkl/injections.scm b/runtime/queries/pkl/injections.scm new file mode 100644 index 000000000..9d563b440 --- /dev/null +++ b/runtime/queries/pkl/injections.scm @@ -0,0 +1,6 @@ +([ + (lineComment) + (blockComment) + (docComment) +] @injection.content + (#set! injection.language "comment")) |
