summaryrefslogtreecommitdiff
path: root/queries/elvish/highlights.scm
blob: ab0ce8c1be6d797e28d0c422fd6c1b42c3b2285c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
(comment) @comment

["if" "elif"] @conditional
(if (else "else" @conditional))

["while" "for"] @repeat
(while (else "else" @repeat))
(for (else "else" @repeat))

["try" "catch" "finally"] @exception
(try (else "else" @exception))

"use" @include
(import (bareword) @string.special)

["*" "**" "?"] @string.special

(command argument: (bareword) @parameter)
(command head: (identifier) @function.call)
((command head: (identifier) @keyword.return)
 (#eq? @keyword.return "return"))
((command (identifier) @keyword.operator)
 (#any-of? @keyword.operator "and" "or" "coalesce"))
[
 "+" "-" "*" "/" "%" "<" "<=""==" "!=" ">"
 ">=" "<s" "<=s" "==s" "!=s" ">s" ">=s"
] @function.builtin

[">" "<" ">>" "<>" "|"] @operator

(io_port) @number

(function_definition
  "fn" @keyword.function
  (identifier) @function)

(parameter_list) @parameter
(parameter_list "|" @punctuation.bracket)

["var" "set" "tmp" "del"] @keyword
(variable_declaration
  (lhs (identifier) @variable))

(variable_assignment
  (lhs (identifier) @variable))

(temporary_assignment
  (lhs (identifier) @variable))

(variable_deletion
  (identifier) @variable)


(number) @number
(string) @string

(variable (identifier) @variable)
((variable (identifier) @function)
  (#match? @function ".+\\~$"))
((variable (identifier) @boolean)
 (#any-of? @boolean "true" "false"))
((variable (identifier) @constant.builtin)
 (#any-of? @constant.builtin
  "_" "after-chdir" "args" "before-chdir" "buildinfo" "nil"
  "notify-bg-job-success" "num-bg-jobs" "ok" "paths" "pid"
  "pwd" "value-out-indicator" "version"))

["$" "@"] @punctuation.special
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
";" @punctuation.delimiter