forked from Mirrors/helix
dhall: additional highlight queries (#5959)
parent
c71b4c5579
commit
87518db1d1
@ -1,52 +1,110 @@
|
||||
;; Literals
|
||||
|
||||
(integer_literal) @constant.numeric.integer
|
||||
(natural_literal) @constant.numeric.integer
|
||||
(double_literal) @constant.numeric.float
|
||||
(boolean_literal) @constant.builtin.boolean
|
||||
(builtin "None") @constant.builtin
|
||||
|
||||
;; Text
|
||||
(text_literal) @string
|
||||
(interpolation "}" @string)
|
||||
(double_quote_escaped) @constant.character.escape
|
||||
(single_quote_escaped) @constant.character.escape
|
||||
|
||||
;; Imports
|
||||
(local_import) @string.special.path
|
||||
(http_import) @string.special.url
|
||||
(import_hash) @string
|
||||
(env_import) @keyword
|
||||
(env_variable) @string.special
|
||||
(import_hash) @string.special
|
||||
(missing_import) @keyword.control.import
|
||||
[ (import_as_location) (import_as_text) ] @type
|
||||
|
||||
;; Comments
|
||||
[
|
||||
(line_comment)
|
||||
(block_comment)
|
||||
] @comment
|
||||
(block_comment) @comment.block
|
||||
(line_comment) @comment.line
|
||||
|
||||
;; Types
|
||||
([
|
||||
(let_binding (label) @type)
|
||||
(union_type_entry (label) @type)
|
||||
] (#match? @type "^[A-Z]"))
|
||||
((primitive_expression
|
||||
(identifier (label) @type)
|
||||
(selector (label) @type)?) @whole_identifier
|
||||
(#match? @whole_identifier "(?:^|\\.)[A-Z][^.]*$"))
|
||||
|
||||
;; Variables
|
||||
(identifier [
|
||||
(label) @variable
|
||||
(de_bruijn_index) @operator
|
||||
])
|
||||
(let_binding label: (label) @variable)
|
||||
(lambda_expression label: (label) @variable.parameter)
|
||||
(record_literal_entry (label) @variable.other.member)
|
||||
(record_type_entry (label) @variable.other.member)
|
||||
(selector) @variable.other.member
|
||||
|
||||
;; Keywords
|
||||
[
|
||||
("let")
|
||||
("in")
|
||||
(assign_operator)
|
||||
"let"
|
||||
"in"
|
||||
"assert"
|
||||
] @keyword
|
||||
[
|
||||
"using"
|
||||
"as"
|
||||
"with"
|
||||
] @keyword.operator
|
||||
|
||||
;; Operators
|
||||
[
|
||||
(type_operator)
|
||||
(assign_operator)
|
||||
(lambda_operator)
|
||||
(arrow_operator)
|
||||
(infix_operator)
|
||||
(completion_operator)
|
||||
("using")
|
||||
("assert")
|
||||
(assert_operator)
|
||||
("as")
|
||||
(forall_operator)
|
||||
("with")
|
||||
] @keyword
|
||||
(empty_record_literal)
|
||||
] @operator
|
||||
|
||||
;; Builtins
|
||||
[
|
||||
(builtin_function)
|
||||
(missing_import)
|
||||
] @function.builtin
|
||||
(builtin_function) @function.builtin
|
||||
(builtin [
|
||||
"Bool"
|
||||
"Optional"
|
||||
"Natural"
|
||||
"Integer"
|
||||
"Double"
|
||||
"Text"
|
||||
"Date"
|
||||
"Time"
|
||||
"TimeZone"
|
||||
"List"
|
||||
"Type"
|
||||
"Kind"
|
||||
"Sort"
|
||||
] @type.builtin)
|
||||
|
||||
[
|
||||
(builtin)
|
||||
(import_as_text)
|
||||
] @type.builtin
|
||||
;; Punctuation
|
||||
[ "," "|" ] @punctuation.delimiter
|
||||
(selector_dot) @punctuation.delimiter
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"{"
|
||||
"}"
|
||||
"["
|
||||
"]"
|
||||
"<"
|
||||
">"
|
||||
] @punctuation.bracket
|
||||
|
||||
;; Conditionals
|
||||
[
|
||||
("if")
|
||||
("then")
|
||||
("else")
|
||||
"if"
|
||||
"then"
|
||||
"else"
|
||||
] @keyword.control.conditional
|
||||
|
@ -0,0 +1,2 @@
|
||||
([(block_comment) (line_comment)] @injection.content
|
||||
(#set! injection.language "comment"))
|
Loading…
Reference in New Issue