Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/gitlab-ci/highlights.scm')
| -rw-r--r-- | runtime/queries/gitlab-ci/highlights.scm | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/runtime/queries/gitlab-ci/highlights.scm b/runtime/queries/gitlab-ci/highlights.scm new file mode 100644 index 00000000..1891c000 --- /dev/null +++ b/runtime/queries/gitlab-ci/highlights.scm @@ -0,0 +1,89 @@ +(boolean_scalar) @constant.builtin.boolean +(null_scalar) @constant.builtin +(double_quote_scalar) @string +(single_quote_scalar) @string +(block_scalar) @string +(string_scalar) @string +(escape_sequence) @constant.character.escape +(integer_scalar) @constant.numeric.integer +(float_scalar) @constant.numeric.float +(comment) @comment +(anchor_name) @type +(alias_name) @type +(tag) @type +(yaml_directive) @keyword + +(block_mapping_pair + key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member)) +(block_mapping_pair + key: (flow_node (plain_scalar (string_scalar) @variable.other.member))) + +(flow_mapping + (_ key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member))) +(flow_mapping + (_ key: (flow_node (plain_scalar (string_scalar) @variable.other.member)))) + +[ +"," +"-" +":" +">" +"?" +"|" +] @punctuation.delimiter + +[ +"[" +"]" +"{" +"}" +] @punctuation.bracket + +["*" "&" "---" "..."] @punctuation.special + + +; Highlight the toplevel keys differently as keywords +(block_mapping_pair + key: (flow_node (plain_scalar (string_scalar) @keyword (#any-of? @keyword "variables" "stages" "default" "include" "workflow"))) ) + +; Highlight the builtin stages differently +; <https://docs.gitlab.com/ci/yaml/#stages> +(block_mapping_pair + key: (flow_node + (plain_scalar + (string_scalar) @variable.other.member (#eq? @variable.other.member "stage"))) + value: (flow_node + (plain_scalar + (string_scalar) @constant.builtin (#any-of? @constant.builtin ".pre" "build" "test" "deploy" ".post")))) +; e.g. +; ``` +; stages: +; - build +; - test +; ``` +(block_mapping_pair + key: (flow_node + (plain_scalar + (string_scalar) @keyword (#eq? @keyword "stages"))) + value: (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar) @constant.builtin (#any-of? @constant.builtin ".pre" "build" "test" "deploy" ".post"))))))) + + +; Highlight defined variable names as @variable +; Matches on: +; ``` +; variables: +; <variable>: ... +; ``` +(block_mapping_pair + key: (flow_node + (plain_scalar + (string_scalar) @keyword (#eq? @keyword "variables"))) + value: (block_node + (block_mapping + (block_mapping_pair + key: (flow_node) @variable)+))) |