From f09d2bc56bfb8f5865ed364de371dad571e6a92f Mon Sep 17 00:00:00 2001 From: Erasin Date: Mon, 8 Aug 2022 18:04:18 +0800 Subject: Add slint-ui support lsp: tree-sitter-slint: --- runtime/queries/slint/highlights.scm | 125 +++++++++++++++++++++++++++++++++++ runtime/queries/slint/indents.scm | 29 ++++++++ runtime/queries/slint/locals.scm | 3 + 3 files changed, 157 insertions(+) create mode 100644 runtime/queries/slint/highlights.scm create mode 100644 runtime/queries/slint/indents.scm create mode 100644 runtime/queries/slint/locals.scm (limited to 'runtime/queries') diff --git a/runtime/queries/slint/highlights.scm b/runtime/queries/slint/highlights.scm new file mode 100644 index 00000000..c7773913 --- /dev/null +++ b/runtime/queries/slint/highlights.scm @@ -0,0 +1,125 @@ + +(user_type_identifier) @type + +(var_identifier) @variable + +(state_identifier) @variable.other.member + +(var_identifier + (post_identifier) @variable) + +(function_identifier) @function + +(reference_identifier) @keyword.storage.modifier.ref +(visibility_modifier) @keyword.storage.modifier + +(comment) @comment + +(string) @string +(int_number) @constant.numeric +(unit_type) @type.builtin + +[ +"struct" +"property" +"callback" +"import" +"from" +"root" +"parent" +"this" +"for" +"in" +"if" +"else if" +"else" +"animate" +"states" +"when" +"in" +"out" +"transitions" +"global" +] @keyword + +[ + "black" + "transparent" + "blue" + "ease" + "ease_in" + "ease-in" + "ease_in_out" + "ease-in-out" + "ease_out" + "ease-out" + "end" + "green" + "red" + "red" + "start" + "yellow" + "true" + "false" + ] @constant.builtin + +"@" @keyword + +; ; Punctuation +[ + "," + "." +] @punctuation.delimiter + +; ; Brackets +[ +"(" +")" +"[" +"]" +"{" +"}" +] @punctuation.bracket + +[ +"angle" +"bool" +"brush" +; "color" // This causes problems +"duration" +"easing" +"float" +"image" +"int" +"length" +"percent" +"physical-length" +"physical_length" +"string" +] @type.builtin + +[ + ":=" + "!" + "-" + "+" + "*" + "/" + "&&" + "||" + ">" + "<" + ">=" + "<=" + "=" + ":" + "+=" + "-=" + "*=" + "/=" + "?" + + "=>" + ] @operator + +(ternary_expression [":" "?"] @keyword.control.conditional) \ No newline at end of file diff --git a/runtime/queries/slint/indents.scm b/runtime/queries/slint/indents.scm new file mode 100644 index 00000000..253b9c48 --- /dev/null +++ b/runtime/queries/slint/indents.scm @@ -0,0 +1,29 @@ + +; [ +; (struct_definition) +; (component_definition) +; ] @indent + +[ +(field_declaration_list_body) +(list_definition_body) +(struct_field_declaration_list_body) +] @indent + +; [ +; "{" +; "}" +; "(" +; ")" +; (if_statement) +; "else if" +; "else" +; ] @branch + +; "{" @indent +"}" @indent_end + +(comment) @auto + +(string) @auto + diff --git a/runtime/queries/slint/locals.scm b/runtime/queries/slint/locals.scm new file mode 100644 index 00000000..feba5ebb --- /dev/null +++ b/runtime/queries/slint/locals.scm @@ -0,0 +1,3 @@ +; locals.scm + +(component_definition) @local.scope -- cgit v1.2.3-70-g09d2