Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/purescript/highlights.scm')
| -rw-r--r-- | runtime/queries/purescript/highlights.scm | 161 |
1 files changed, 1 insertions, 160 deletions
diff --git a/runtime/queries/purescript/highlights.scm b/runtime/queries/purescript/highlights.scm index cdb6baab..ef073eb2 100644 --- a/runtime/queries/purescript/highlights.scm +++ b/runtime/queries/purescript/highlights.scm @@ -1,160 +1 @@ -; ---------------------------------------------------------------------------- -; Literals and comments - - (integer) @constant.numeric.integer - (exp_negation) @constant.numeric.integer - (exp_literal (number)) @constant.numeric.float - (char) @constant.character - - [ - (string) - (triple_quote_string) - ] @string - - (comment) @comment - -; ---------------------------------------------------------------------------- -; Punctuation - - [ - "(" - ")" - "{" - "}" - "[" - "]" - ] @punctuation.bracket - - (comma) @punctuation.delimiter - -; ---------------------------------------------------------------------------- -; Types - - (type) @type - - (constructor) @constructor - -; ---------------------------------------------------------------------------- -; Keywords, operators, includes - - (module) @namespace - - [ - "if" - "then" - "else" - "case" - "of" - ] @keyword.control.conditional - - [ - "import" - "module" - ] @keyword.control.import - - [ - (operator) - (type_operator) - (qualified_module) ; grabs the `.` (dot), ex: import System.IO - (all_names) - - ; `_` wildcards in if-then-else and case-of expressions, - ; as well as record updates and operator sections - (wildcard) - "=" - "|" - "::" - "∷" - "=>" - "⇒" - "<=" - "⇐" - "->" - "→" - "<-" - "←" - "\\" - "`" - "@" - ] @operator - - (qualified_module (module) @constructor) - (qualified_type (module) @namespace) - (qualified_variable (module) @namespace) - (import (module) @namespace) - - [ - (where) - "let" - "in" - "class" - "instance" - "derive" - "foreign" - "data" - "newtype" - "type" - "as" - "hiding" - "do" - "ado" - "forall" - "∀" - "infix" - "infixl" - "infixr" - ] @keyword - - ; NOTE - ; Needs to come after the other `else` in - ; order to be highlighted correctly - (class_instance "else" @keyword) - - (type_role_declaration - "role" @keyword - role: (type_role) @keyword) - - (hole) @label - -; ---------------------------------------------------------------------------- -; Functions and variables - - (variable) @variable - - (row_field (field_name) @variable.other.member) - (record_field (field_name) @variable.other.member) - (record_field (field_pun) @variable.other.member) - - ; NOTE - ; Record fields must come after literal strings and - ; plain variables in order to be highlighted correctly - (record_accessor - field: [ (variable) - (string) - (triple_quote_string) - ] @variable.other.member) - - (exp_record_access - field: [ (variable) - (string) - (triple_quote_string) - ] @variable.other.member) - - (signature name: (variable) @type) - (function name: (variable) @function) - (class_instance (instance_name) @function) - (derive_declaration (instance_name) @function) - - ; true or false - ((variable) @constant.builtin.boolean - (#match? @constant.builtin.boolean "^(true|false)$")) - - ; The former one works for `tree-sitter highlight` but not in Helix/Kakoune. - ; The latter two work in Helix (but not Kakoune) and are a good compromise between not highlighting anything at all - ; as an operator and leaving it to the child nodes, and highlighting everything as an operator. - (exp_ticked (_) @operator) - (exp_ticked (exp_name (variable) @operator)) - (exp_ticked (exp_name (qualified_variable (variable) @operator))) - - (patterns (pat_as "@" @namespace)) - +; inherits: haskell |