Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/gleam/highlights.scm')
| -rw-r--r-- | runtime/queries/gleam/highlights.scm | 97 |
1 files changed, 14 insertions, 83 deletions
diff --git a/runtime/queries/gleam/highlights.scm b/runtime/queries/gleam/highlights.scm index 51c01f38..961afc34 100644 --- a/runtime/queries/gleam/highlights.scm +++ b/runtime/queries/gleam/highlights.scm @@ -1,12 +1,11 @@ ; Variables (identifier) @variable -(discard) @comment.unused ; `_` pattern -(hole) @comment.unused ; `_`, `_foo` unused variable +(discard) @comment.unused ; Comments -(module_comment) @comment.line.documentation -(statement_comment) @comment.line.documentation -(comment) @comment.line +(module_comment) @comment +(statement_comment) @comment +(comment) @comment ; Constants (constant @@ -24,10 +23,7 @@ field: (label) @function) (#is-not? local)) -; ========= ; Functions -; ========= - (unqualified_import (identifier) @function) (unqualified_import "type" (type_identifier) @type) (unqualified_import (type_identifier) @constructor) @@ -40,16 +36,11 @@ ((function_call function: (identifier) @function) (#is-not? local)) -; highlights `a` in `|> a` as function ((binary_expression operator: "|>" right: (identifier) @function) (#is-not? local)) -; ========= -; Misc -; ========= - ; "Properties" ; Assumed to be intended to refer to a name for a field; something that comes ; before ":" or after "." @@ -65,55 +56,27 @@ (attribute_value (identifier) @constant) -; ========= -; Types -; ========= - -(type_hole) @comment.unused - ; Type names (remote_type_identifier) @type (type_identifier) @type -; Generic types -[ - ; in `pub type Dict(key, value)` this is `key` and `value` - (type_parameter) - ; in `pub fn size(dict: Dict(key, value)) -> Int` this is `key` and `value` - (type_var) -] @type - ; Data constructors (constructor_name) @constructor -; built-ins -((constructor_name) @constant.builtin - (#any-of? @constant.builtin "False" "True")) -((constructor_name) @constant.builtin - (#any-of? @constant.builtin "Nil")) -((constructor_name) @type.enum.variant.builtin - (#any-of? @type.enum.variant.builtin "Ok" "Error" "Some" "None")) - -; ========= ; Literals -; ========= - (string) @string -(escape_sequence) @constant.character.escape ((escape_sequence) @warning (#eq? @warning "\\e")) ; deprecated escape sequence +(escape_sequence) @constant.character.escape (bit_string_segment_option) @function.builtin (integer) @constant.numeric.integer (float) @constant.numeric.float ; Reserved identifiers ((identifier) @error - (#any-of? @error "auto" "delegate" "derive" "else" "implement" "macro" "test")) + (#any-of? @error "auto" "delegate" "derive" "else" "implement" "macro" "test" "echo")) -; ========= ; Keywords -; ========= - [ (visibility_modifier) ; "pub" (opacity_modifier) ; "opaque" @@ -131,32 +94,15 @@ "todo" "type" "use" - "echo" ] @keyword -; ========= ; Operators -; ========= - (binary_expression operator: _ @operator) (boolean_negation "!" @operator) (integer_negation "-" @operator) -[ - "->" - "-" - "=" - ".." - "<-" - ; OR clause in patterns - "|" -] @operator - -; ========== ; Punctuation -; ========== - [ "(" ")" @@ -167,30 +113,15 @@ "<<" ">>" ] @punctuation.bracket - -(tuple_type "#" @punctuation.bracket) -(tuple "#" @punctuation.bracket) -(tuple_pattern "#" @punctuation.bracket) - [ + "." "," + ;; Controversial -- maybe some are operators? ":" + "#" + "=" + "->" + ".." + "-" + "<-" ] @punctuation.delimiter - -; the `/` in `import gleam/list` -(import (module "/" @punctuation.delimiter)) - -[ - "." -] @punctuation - -; affects e.g. `replace` in `string.replace("+", "-")` -; without this, it would be highlighted as a field instead of function -(function_call (field_access (label) @function)) - -; highlights `floor` in `|> float.floor` as function -(binary_expression - left: (_) "|>" - right: (field_access - record: (identifier) "." - field: (label) @function)) |