From 2b1cd48820f1d20dd4e32ed74b41ac26add5b299 Mon Sep 17 00:00:00 2001 From: barsoosayque Date: Sat, 23 Nov 2024 12:57:48 +0700 Subject: [PATCH] update runtime for teal language --- languages.toml | 2 - runtime/queries/teal/highlights.scm | 82 +++++++++++++++-------------- runtime/queries/teal/locals.scm | 28 +++++----- 3 files changed, 57 insertions(+), 55 deletions(-) diff --git a/languages.toml b/languages.toml index 615ebdc8a..d57144ae2 100644 --- a/languages.toml +++ b/languages.toml @@ -1283,7 +1283,6 @@ source = { git = "https://github.com/euclidianAce/tree-sitter-teal", rev = "485f [[language]] name = "teal" -auto-format = false scope = "source.tl" injection-regex = "teal" file-types = ["tl"] @@ -1291,7 +1290,6 @@ comment-tokens = "--" block-comment-tokens = { start = "--[[", end = "--]]" } roots = [ "tlconfig.lua" ] language-servers = [ "teal-lsp" ] -grammar = "teal" [[language]] name = "svelte" diff --git a/runtime/queries/teal/highlights.scm b/runtime/queries/teal/highlights.scm index 0a28fa7cd..f8adda572 100644 --- a/runtime/queries/teal/highlights.scm +++ b/runtime/queries/teal/highlights.scm @@ -1,34 +1,38 @@ ;; Primitives -(boolean) @boolean +(boolean) @constant.builtin.boolean (comment) @comment (shebang_comment) @comment (identifier) @variable ((identifier) @variable.builtin (#eq? @variable.builtin "self")) (nil) @constant.builtin -(number) @number +(number) @constant.numeric (string) @string (table_constructor ["{" "}"] @constructor) (varargs "..." @constant.builtin) [ "," "." ":" ";" ] @punctuation.delimiter -(escape_sequence) @string.escape -(format_specifier) @string.escape +(escape_sequence) @constant.character.escape +(format_specifier) @constant.character.escape ;; Basic statements/Keywords -[ "if" "then" "elseif" "else" ] @conditional -[ "for" "while" "repeat" "until" ] @repeat -[ "in" "local" "return" (break) (goto) "do" "end" ] @keyword +[ "if" "then" "elseif" "else" ] @keyword.control.conditional +[ "for" "while" "repeat" "until" "do" ] @keyword.control.repeat +[ "end" ] @keyword +[ "in" ] @keyword.operator +[ "local" ] @keyword.storage.type +[ (break) (goto) ] @keyword.control +[ "return" ] @keyword.control.return (label) @label ;; Global isn't a real keyword, but it gets special treatment in these places -(var_declaration "global" @keyword) -(type_declaration "global" @keyword) -(function_statement "global" @keyword) -(record_declaration "global" @keyword) -(interface_declaration "global" @keyword) -(enum_declaration "global" @keyword) +(var_declaration "global" @keyword.storage.type) +(type_declaration "global" @keyword.storage.type) +(function_statement "global" @keyword.storage.type) +(record_declaration "global" @keyword.storage.type) +(interface_declaration "global" @keyword.storage.type) +(enum_declaration "global" @keyword.storage.type) (macroexp_statement "macroexp" @keyword) @@ -45,7 +49,7 @@ "function" @keyword.function) (function_body "end" @keyword.function) -(arg name: (identifier) @parameter) +(arg name: (identifier) @variable.parameter) (function_signature (arguments @@ -54,8 +58,8 @@ (typeargs "<" @punctuation.bracket - . (_) @parameter - . ("," . (_) @parameter)* + . (_) @type.parameter + . ("," . (_) @type.parameter)* . ">" @punctuation.bracket) (function_call @@ -69,63 +73,63 @@ ; Contextual keywords in record bodies (record_declaration - . [ "record" ] @keyword + . [ "record" ] @keyword.storage.type name: (identifier) @type) -(anon_record . "record" @keyword) +(anon_record . "record" @keyword.storage.type) (record_body (record_declaration - . [ "record" ] @keyword + . [ "record" ] @keyword.storage.type . name: (identifier) @type)) (record_body (enum_declaration - . [ "enum" ] @keyword - . name: (identifier) @type)) + . [ "enum" ] @keyword.storage.type + . name: (identifier) @type.enum)) (record_body (interface_declaration - . [ "interface" ] @keyword + . [ "interface" ] @keyword.storage.type . name: (identifier) @type)) (record_body (typedef - . "type" @keyword + . "type" @keyword.storage.type . name: (identifier) @type . "=")) (record_body (macroexp_declaration - . [ "macroexp" ] @keyword)) -(record_body (metamethod "metamethod" @keyword)) -(record_body (userdata) @keyword) + . [ "macroexp" ] @keyword.storage.type)) +(record_body (metamethod "metamethod" @keyword.storage.modifier)) +(record_body (userdata) @keyword.storage.modifier) ; Contextual keywords in interface bodies (interface_declaration - . [ "interface" ] @keyword + . [ "interface" ] @keyword.storage.type name: (identifier) @type) -(anon_interface . "interface" @keyword) +(anon_interface . "interface" @keyword.storage.type) (interface_body (record_declaration - . [ "record" ] @keyword + . [ "record" ] @keyword.storage.type . name: (identifier) @type)) (interface_body (enum_declaration - . [ "enum" ] @keyword - . name: (identifier) @type)) + . [ "enum" ] @keyword.storage.type + . name: (identifier) @type.enum)) (interface_body (interface_declaration - . [ "interface" ] @keyword + . [ "interface" ] @keyword.storage.type . name: (identifier) @type)) (interface_body (typedef - . "type" @keyword + . "type" @keyword.storage.type . name: (identifier) @type . "=")) (interface_body (macroexp_declaration - . [ "macroexp" ] @keyword)) -(interface_body (metamethod "metamethod" @keyword)) -(interface_body (userdata) @keyword) + . [ "macroexp" ] @keyword.storage.type)) +(interface_body (metamethod "metamethod" @keyword.storage.modifier)) +(interface_body (userdata) @keyword.storage.modifier) (enum_declaration - "enum" @keyword - name: (identifier) @type) + "enum" @keyword.storage.type + name: (identifier) @type.enum) -(type_declaration "type" @keyword) +(type_declaration "type" @keyword.storage.type) (type_declaration (identifier) @type) (simple_type) @type (type_index) @type diff --git a/runtime/queries/teal/locals.scm b/runtime/queries/teal/locals.scm index da67ae52a..bcff15558 100644 --- a/runtime/queries/teal/locals.scm +++ b/runtime/queries/teal/locals.scm @@ -1,26 +1,26 @@ (var_declaration declarators: (var_declarators - (var (identifier)) @definition.var)) + (var (identifier)) @local.definition.var)) (var_assignment variables: (assignment_variables - (var (identifier) @definition.var) @definition.associated)) + (var (identifier) @local.definition.var) @local.definition.associated)) -(arg name: (identifier) @definition.parameter) +(arg name: (identifier) @local.definition.parameter) -(anon_function) @scope +(anon_function) @local.scope ((function_statement - (function_name) @definition.function) @scope - (#set! definition.function.scope "parent")) + (function_name) @local.definition.function) @local.scope + (#set! local.definition.function.local.scope "parent")) -(program) @scope -(if_statement) @scope -(generic_for_statement (for_body) @scope) -(numeric_for_statement (for_body) @scope) -(repeat_statement) @scope -(while_statement (while_body) @scope) -(do_statement) @scope +(program) @local.scope +(if_statement) @local.scope +(generic_for_statement (for_body) @local.scope) +(numeric_for_statement (for_body) @local.scope) +(repeat_statement) @local.scope +(while_statement (while_body) @local.scope) +(do_statement) @local.scope -(identifier) @reference +(identifier) @local.reference