diff --git a/justfile b/justfile index e70a6f4..806a8f3 100644 --- a/justfile +++ b/justfile @@ -23,11 +23,15 @@ ext-build: # Format all code fmt: cargo fmt --all + ts_query_ls format languages # Run clippy on both crates clippy: cargo clippy --all-targets --fix --allow-dirty cd proxy && cargo clippy --all-targets --fix --allow-dirty --target {{ native_target }} -# Build everything: fmt, clippy, extension, proxy install -all: fmt clippy ext-build proxy-install +# Format and lint all code +lint: fmt clippy + +# Build everything: lint, extension, proxy install +all: lint ext-build proxy-install diff --git a/languages/java/brackets.scm b/languages/java/brackets.scm index 72ac07e..a789e27 100644 --- a/languages/java/brackets.scm +++ b/languages/java/brackets.scm @@ -1,6 +1,17 @@ -("{" @open "}" @close) -("[" @open "]" @close) -("(" @open ")" @close) -("<" @open ">" @close) -("\"" @open "\"" @close) -("\"\"\"" @open "\"\"\"" @close) +("{" @open + "}" @close) + +("[" @open + "]" @close) + +("(" @open + ")" @close) + +("<" @open + ">" @close) + +("\"" @open + "\"" @close) + +("\"\"\"" @open + "\"\"\"" @close) diff --git a/languages/java/highlights.scm b/languages/java/highlights.scm index a156246..79be698 100644 --- a/languages/java/highlights.scm +++ b/languages/java/highlights.scm @@ -117,9 +117,8 @@ ; Fields (field_declaration - declarator: - (variable_declarator - name: (identifier) @property)) + declarator: (variable_declarator + name: (identifier) @property)) (field_access field: (identifier) @property) diff --git a/languages/java/indents.scm b/languages/java/indents.scm index acb44a5..c096b82 100644 --- a/languages/java/indents.scm +++ b/languages/java/indents.scm @@ -1,3 +1,11 @@ -(_ "{" "}" @end) @indent -(_ "[" "]" @end) @indent -(_ "(" ")" @end) @indent +(_ + "{" + "}" @end) @indent + +(_ + "[" + "]" @end) @indent + +(_ + "(" + ")" @end) @indent diff --git a/languages/java/injections.scm b/languages/java/injections.scm index 8113bea..2ad7e5f 100644 --- a/languages/java/injections.scm +++ b/languages/java/injections.scm @@ -10,19 +10,17 @@ ((method_invocation name: (identifier) @_method - arguments: - (argument_list + arguments: (argument_list + . + (string_literal . - (string_literal - . - (_) @injection.content))) + (_) @injection.content))) (#any-of? @_method "format" "printf") (#set! injection.language "printf")) ((method_invocation - object: - (string_literal - (string_fragment) @injection.content) + object: (string_literal + (string_fragment) @injection.content) name: (identifier) @_method) (#eq? @_method "formatted") (#set! injection.language "printf")) diff --git a/languages/java/locals.scm b/languages/java/locals.scm index ac0715c..53e9509 100644 --- a/languages/java/locals.scm +++ b/languages/java/locals.scm @@ -67,9 +67,8 @@ name: (identifier) @local.definition.method) (local_variable_declaration - declarator: - (variable_declarator - name: (identifier) @local.definition.var)) + declarator: (variable_declarator + name: (identifier) @local.definition.var)) (enhanced_for_statement ; for (var item : items) { @@ -92,9 +91,8 @@ (#has-ancestor? @local.definition.import import_declaration)) (field_declaration - declarator: - (variable_declarator - name: (identifier) @local.definition.field)) + declarator: (variable_declarator + name: (identifier) @local.definition.field)) ; REFERENCES (identifier) @local.reference diff --git a/languages/java/outline.scm b/languages/java/outline.scm index 59a07e2..f70aeda 100644 --- a/languages/java/outline.scm +++ b/languages/java/outline.scm @@ -1,210 +1,210 @@ (class_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "sealed" - "non-sealed" - "final" - "strictfp" - "static" - ]* @context)? - "class" @context - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "sealed" + "non-sealed" + "final" + "strictfp" + "static" + ]* @context)? + "class" @context + name: (_) @name + body: (_) @item) (record_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "sealed" - "non-sealed" - "final" - "strictfp" - "static" - ]* @context)? - "record" @context - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "sealed" + "non-sealed" + "final" + "strictfp" + "static" + ]* @context)? + "record" @context + name: (_) @name + body: (_) @item) (interface_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "sealed" - "non-sealed" - "strictfp" - "static" - ]* @context)? - "interface" @context - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "sealed" + "non-sealed" + "strictfp" + "static" + ]* @context)? + "interface" @context + name: (_) @name + body: (_) @item) (enum_declaration - (modifiers - [ - "private" - "public" - "protected" - "static" - "final" - "strictfp" - ]* @context)? - "enum" @context - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + "static" + "final" + "strictfp" + ]* @context)? + "enum" @context + name: (_) @name + body: (_) @item) (annotation_type_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "static" - "strictfp" - ]* @context)? - "@interface" @context - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + "strictfp" + ]* @context)? + "@interface" @context + name: (_) @name + body: (_) @item) (enum_constant - name: (identifier) @name) @item + name: (identifier) @name) @item (method_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "static" - "final" - "native" - "strictfp" - "synchronized" - ]* @context)? - type: (_) @context - name: (_) @name - parameters: (formal_parameters - "(" @context + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + "final" + "native" + "strictfp" + "synchronized" + ]* @context)? + type: (_) @context + name: (_) @name + parameters: (formal_parameters + "(" @context + (formal_parameter + type: (_) @context)? + ("," @context (formal_parameter - type: (_) @context)? - ("," @context - (formal_parameter - type: (_) @context)?)* - ")" @context) - body: (_) @item) + type: (_) @context)?)* + ")" @context) + body: (_) @item) (method_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "static" - "final" - "native" - "strictfp" - "synchronized" - ]* @context)? - type: (_) @context - name: (_) @name - parameters: (formal_parameters - "(" @context + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + "final" + "native" + "strictfp" + "synchronized" + ]* @context)? + type: (_) @context + name: (_) @name + parameters: (formal_parameters + "(" @context + (formal_parameter + type: (_) @context)? + ("," @context (formal_parameter - type: (_) @context)? - ("," @context - (formal_parameter - type: (_) @context)?)* - ")" @context) - ";" @item) + type: (_) @context)?)* + ")" @context) + ";" @item) (constructor_declaration - (modifiers - [ - "private" - "public" - "protected" - "static" - "final" - ]* @context)? - name: (_) @name - parameters: (formal_parameters - "(" @context + (modifiers + [ + "private" + "public" + "protected" + "static" + "final" + ]* @context)? + name: (_) @name + parameters: (formal_parameters + "(" @context + (formal_parameter + type: (_) @context)? + ("," @context (formal_parameter - type: (_) @context)? - ("," @context - (formal_parameter - type: (_) @context)?)* - ")" @context) - body: (_) @item) + type: (_) @context)?)* + ")" @context) + body: (_) @item) (compact_constructor_declaration - (modifiers - [ - "private" - "public" - "protected" - ]* @context)? - name: (_) @name - body: (_) @item) + (modifiers + [ + "private" + "public" + "protected" + ]* @context)? + name: (_) @name + body: (_) @item) (annotation_type_element_declaration - (modifiers - [ - "private" - "public" - "protected" - "abstract" - "static" - ]* @context)? - type: (_) @context - name: (_) @name - "(" @context - ")" @context) @item + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + ]* @context)? + type: (_) @context + name: (_) @name + "(" @context + ")" @context) @item (field_declaration - (modifiers - [ - "private" - "public" - "protected" - "static" - "final" - "transient" - "volatile" - ]* @context)? - type: (_) @context - declarator: (variable_declarator - name: (_) @name)) @item + (modifiers + [ + "private" + "public" + "protected" + "static" + "final" + "transient" + "volatile" + ]* @context)? + type: (_) @context + declarator: (variable_declarator + name: (_) @name)) @item (constant_declaration - (modifiers - [ - "public" - "static" - "final" - ]* @context)? - type: (_) @context - declarator: (variable_declarator - name: (_) @name)) @item + (modifiers + [ + "public" + "static" + "final" + ]* @context)? + type: (_) @context + declarator: (variable_declarator + name: (_) @name)) @item (static_initializer - "static" @context - (block) @item) + "static" @context + (block) @item) (record_declaration - parameters: (formal_parameters - (formal_parameter - type: (_) @context - name: (_) @name) @item)) + parameters: (formal_parameters + (formal_parameter + type: (_) @context + name: (_) @name) @item)) diff --git a/languages/java/runnables.scm b/languages/java/runnables.scm index 7ad84dc..e4facbe 100644 --- a/languages/java/runnables.scm +++ b/languages/java/runnables.scm @@ -1,163 +1,115 @@ ; Run the main function -( - (package_declaration - (scoped_identifier) @java_package_name - )? - (class_declaration - (modifiers) @class-modifier - (#match? @class-modifier "public") - name: (identifier) @java_class_name - body: (class_body - (method_declaration - (modifiers) @modifier - name: (identifier) @run - (#eq? @run "main") - (#match? @modifier "public") - (#match? @modifier "static") - ) - ) - ) @_ - (#set! tag java-main) -) +((package_declaration + (scoped_identifier) @java_package_name)? + (class_declaration + (modifiers) @class-modifier + (#match? @class-modifier "public") + name: (identifier) @java_class_name + body: (class_body + (method_declaration + (modifiers) @modifier + name: (identifier) @run + (#eq? @run "main") + (#match? @modifier "public") + (#match? @modifier "static")))) @_ + (#set! tag java-main)) ; Run the main class -( - (package_declaration - (scoped_identifier) @java_package_name - )? - (class_declaration - (modifiers) @class-modifier - (#match? @class-modifier "public") - name: (identifier) @java_class_name @run - body: (class_body - (method_declaration - (modifiers) @modifier - name: (identifier) @method_name - (#eq? @method_name "main") - (#match? @modifier "public") - (#match? @modifier "static") - ) - ) - ) @_ - (#set! tag java-main) -) +((package_declaration + (scoped_identifier) @java_package_name)? + (class_declaration + (modifiers) @class-modifier + (#match? @class-modifier "public") + name: (identifier) @java_class_name @run + body: (class_body + (method_declaration + (modifiers) @modifier + name: (identifier) @method_name + (#eq? @method_name "main") + (#match? @modifier "public") + (#match? @modifier "static")))) @_ + (#set! tag java-main)) ; Run test function (marker annotation, e.g. @Test) -( - (package_declaration - (scoped_identifier) @java_package_name - ) - (class_declaration - name: (identifier) @java_class_name - body: (class_body - (method_declaration - (modifiers - [(marker_annotation - name: (identifier) @annotation_name - ) - (annotation - name: (identifier) @annotation_name - )] - ) - name: (identifier) @run @java_method_name - (#match? @annotation_name "Test$") - ) - ) - ) @_ - (#set! tag java-test-method) -) +((package_declaration + (scoped_identifier) @java_package_name) + (class_declaration + name: (identifier) @java_class_name + body: (class_body + (method_declaration + (modifiers + [ + (marker_annotation + name: (identifier) @annotation_name) + (annotation + name: (identifier) @annotation_name) + ]) + name: (identifier) @run @java_method_name + (#match? @annotation_name "Test$")))) @_ + (#set! tag java-test-method)) ; Run nested test function -( - (package_declaration - (scoped_identifier) @java_package_name - ) - (class_declaration - name: (identifier) @java_outer_class_name +((package_declaration + (scoped_identifier) @java_package_name) + (class_declaration + name: (identifier) @java_outer_class_name + body: (class_body + (class_declaration + (modifiers + (marker_annotation + name: (identifier) @nested_annotation)) + name: (identifier) @java_class_name body: (class_body - (class_declaration - (modifiers - (marker_annotation - name: (identifier) @nested_annotation - ) - ) - name: (identifier) @java_class_name - body: (class_body - (method_declaration - (modifiers - [(marker_annotation - name: (identifier) @annotation_name - ) - (annotation - name: (identifier) @annotation_name - )] - ) - name: (identifier) @run @java_method_name - (#match? @annotation_name "Test$") - ) - ) - (#eq? @nested_annotation "Nested") - ) @_ - ) - ) - (#set! tag java-test-method-nested) -) + (method_declaration + (modifiers + [ + (marker_annotation + name: (identifier) @annotation_name) + (annotation + name: (identifier) @annotation_name) + ]) + name: (identifier) @run @java_method_name + (#match? @annotation_name "Test$"))) + (#eq? @nested_annotation "Nested")) @_)) + (#set! tag java-test-method-nested)) ; Run test class -( - (package_declaration - (scoped_identifier) @java_package_name - ) - (class_declaration - name: (identifier) @java_class_name @run - body: (class_body - (method_declaration - (modifiers - [(marker_annotation - name: (identifier) @annotation_name - ) - (annotation - name: (identifier) @annotation_name - )] - ) - (#match? @annotation_name "Test$") - ) - ) - ) @_ - (#set! tag java-test-class) -) +((package_declaration + (scoped_identifier) @java_package_name) + (class_declaration + name: (identifier) @java_class_name @run + body: (class_body + (method_declaration + (modifiers + [ + (marker_annotation + name: (identifier) @annotation_name) + (annotation + name: (identifier) @annotation_name) + ]) + (#match? @annotation_name "Test$")))) @_ + (#set! tag java-test-class)) ; Run nested test class -( - (package_declaration - (scoped_identifier) @java_package_name - ) - (class_declaration - name: (identifier) @java_outer_class_name +((package_declaration + (scoped_identifier) @java_package_name) + (class_declaration + name: (identifier) @java_outer_class_name + body: (class_body + (class_declaration + (modifiers + (marker_annotation + name: (identifier) @nested_annotation)) + name: (identifier) @run @java_class_name body: (class_body - (class_declaration - (modifiers - (marker_annotation - name: (identifier) @nested_annotation - ) - ) - name: (identifier) @run @java_class_name - body: (class_body - (method_declaration - (modifiers - [(marker_annotation - name: (identifier) @annotation_name - ) - (annotation - name: (identifier) @annotation_name - )] - ) - (#match? @annotation_name "Test$") - ) - ) - (#eq? @nested_annotation "Nested") - ) @_ - ) - ) - (#set! tag java-test-class-nested) -) + (method_declaration + (modifiers + [ + (marker_annotation + name: (identifier) @annotation_name) + (annotation + name: (identifier) @annotation_name) + ]) + (#match? @annotation_name "Test$"))) + (#eq? @nested_annotation "Nested")) @_)) + (#set! tag java-test-class-nested)) diff --git a/languages/java/textobjects.scm b/languages/java/textobjects.scm index c5cd229..023ff62 100644 --- a/languages/java/textobjects.scm +++ b/languages/java/textobjects.scm @@ -1,65 +1,79 @@ ; methods (method_declaration) @function.around + (method_declaration body: (block - "{" (_)* @function.inside "}" - )) + "{" + (_)* @function.inside + "}")) ; constructors (constructor_declaration) @function.around + (constructor_declaration body: (constructor_body - "{" (_)* @function.inside "}" - )) + "{" + (_)* @function.inside + "}")) ; lambdas (lambda_expression) @function.around + (lambda_expression body: (block - "{" (_)* @function.inside "}" - )) + "{" + (_)* @function.inside + "}")) + (lambda_expression body: (_) @function.inside) - ; classes (class_declaration) @class.around + (class_declaration body: (class_body - "{" (_)* @class.inside "}" - )) + "{" + (_)* @class.inside + "}")) ; interfaces (interface_declaration) @class.around + (interface_declaration body: (interface_body - "{" (_)* @class.inside "}" - )) + "{" + (_)* @class.inside + "}")) ; enums (enum_declaration) @class.around + (enum_declaration body: (enum_body "{" _* @class.inside - "}" - )) + "}")) ; records (record_declaration) @class.around + (record_declaration body: (class_body - "{" (_)* @class.inside "}" - )) + "{" + (_)* @class.inside + "}")) ; annotations (annotation_type_declaration) @class.around + (annotation_type_declaration (annotation_type_body - "{" (_)* @class.inside "}" - )) - + "{" + (_)* @class.inside + "}")) ; comments ((line_comment)+) @comment.around + (block_comment) @comment.around diff --git a/languages/properties/highlights.scm b/languages/properties/highlights.scm index 5b71487..9472867 100644 --- a/languages/properties/highlights.scm +++ b/languages/properties/highlights.scm @@ -4,12 +4,14 @@ (value) @string -(value (escape) @string.escape) +(value + (escape) @string.escape) ((index) @number (#match? @number "^[0-9]+$")) -((substitution (key) @constant) +((substitution + (key) @constant) (#match? @constant "^[A-Z0-9_]+")) (substitution @@ -17,12 +19,26 @@ "::" @punctuation.special (secret) @embedded) -(property [ "=" ":" ] @operator) +(property + [ + "=" + ":" + ] @operator) -[ "${" "}" ] @punctuation.special +[ + "${" + "}" +] @punctuation.special -(substitution ":" @punctuation.special) +(substitution + ":" @punctuation.special) -[ "[" "]" ] @punctuation.bracket +[ + "[" + "]" +] @punctuation.bracket -[ "." "\\" ] @punctuation.delimiter +[ + "." + "\\" +] @punctuation.delimiter