mirror of https://github.com/helix-editor/helix
feat: Add `Ohm` language support (#9991)
* feat: Add `Ohm` language support Hope this commit makes it into release :) * Update runtime/queries/ohm/highlights.scm Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * chore: final newline --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>pull/10000/head
parent
47995bfb0c
commit
2d9e336f64
@ -0,0 +1,122 @@
|
|||||||
|
; See: https://docs.helix-editor.com/master/themes.html#syntax-highlighting
|
||||||
|
|
||||||
|
; attribute
|
||||||
|
; ---------
|
||||||
|
|
||||||
|
(case_name) @attribute
|
||||||
|
|
||||||
|
; comment.line
|
||||||
|
; ------------
|
||||||
|
|
||||||
|
[
|
||||||
|
(singleline_comment)
|
||||||
|
(rule_descr)
|
||||||
|
] @comment.line
|
||||||
|
|
||||||
|
; comment.block
|
||||||
|
; -------------
|
||||||
|
|
||||||
|
(multiline_comment) @comment.block
|
||||||
|
|
||||||
|
; function.method
|
||||||
|
; ---------------
|
||||||
|
|
||||||
|
(rule
|
||||||
|
name: (identifier) @function.method)
|
||||||
|
|
||||||
|
; function.builtin
|
||||||
|
; ----------------
|
||||||
|
|
||||||
|
; Lexical
|
||||||
|
((identifier) @function.builtin
|
||||||
|
(#any-of? @function.builtin
|
||||||
|
"any"
|
||||||
|
"alnum"
|
||||||
|
"end"
|
||||||
|
"digit" "hexDigit"
|
||||||
|
"letter"
|
||||||
|
"space"
|
||||||
|
"lower" "upper" "caseInsensitive"
|
||||||
|
"listOf" "nonemptyListOf" "emptyListOf"
|
||||||
|
"applySyntactic")
|
||||||
|
(#is-not? local))
|
||||||
|
|
||||||
|
; Syntactic
|
||||||
|
((identifier) @function.builtin
|
||||||
|
(#any-of? @function.builtin "ListOf" "NonemptyListOf" "EmptyListOf")
|
||||||
|
(#is-not? local))
|
||||||
|
|
||||||
|
; function.method (continuing)
|
||||||
|
; ---------------
|
||||||
|
|
||||||
|
(term
|
||||||
|
base: (identifier) @function.method)
|
||||||
|
|
||||||
|
; string.special
|
||||||
|
; --------------
|
||||||
|
|
||||||
|
(escape_char) @constant.character.escape
|
||||||
|
|
||||||
|
; string
|
||||||
|
; ------
|
||||||
|
|
||||||
|
[
|
||||||
|
(terminal_string)
|
||||||
|
(one_char_terminal)
|
||||||
|
] @string
|
||||||
|
|
||||||
|
; type
|
||||||
|
; ----
|
||||||
|
|
||||||
|
(super_grammar
|
||||||
|
name: (identifier) @type)
|
||||||
|
|
||||||
|
(grammar
|
||||||
|
name: (identifier) @type)
|
||||||
|
|
||||||
|
; operator
|
||||||
|
; --------
|
||||||
|
|
||||||
|
[
|
||||||
|
; "=" ":=" "+="
|
||||||
|
(define) (override) (extend)
|
||||||
|
|
||||||
|
; "&" "~"
|
||||||
|
(lookahead) (negative_lookahead)
|
||||||
|
|
||||||
|
; "#"
|
||||||
|
(lexification)
|
||||||
|
|
||||||
|
; "*" "+" "?"
|
||||||
|
(zero_or_more) (one_or_more) (zero_or_one)
|
||||||
|
|
||||||
|
; "..."
|
||||||
|
(super_splice)
|
||||||
|
|
||||||
|
"<:" ".." "|"
|
||||||
|
] @operator
|
||||||
|
|
||||||
|
; punctuation.bracket
|
||||||
|
; -------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
"<"
|
||||||
|
">"
|
||||||
|
"{"
|
||||||
|
"}"
|
||||||
|
] @punctuation.bracket
|
||||||
|
|
||||||
|
(alt
|
||||||
|
"(" @punctuation.bracket
|
||||||
|
")" @punctuation.bracket)
|
||||||
|
|
||||||
|
; punctuation.delimiter
|
||||||
|
; ---------------------
|
||||||
|
|
||||||
|
"," @punctuation.delimiter
|
||||||
|
|
||||||
|
; variable.parameter
|
||||||
|
; ------------------
|
||||||
|
|
||||||
|
(formals
|
||||||
|
(identifier) @variable.parameter)
|
@ -0,0 +1,37 @@
|
|||||||
|
; See: https://docs.helix-editor.com/guides/indent.html
|
||||||
|
|
||||||
|
; indent
|
||||||
|
; ------
|
||||||
|
|
||||||
|
[
|
||||||
|
; <..., ...>
|
||||||
|
(formals)
|
||||||
|
(params)
|
||||||
|
|
||||||
|
; (...| ...)
|
||||||
|
(alt)
|
||||||
|
] @indent
|
||||||
|
|
||||||
|
; outdent
|
||||||
|
; -------
|
||||||
|
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
")"
|
||||||
|
">"
|
||||||
|
] @outdent
|
||||||
|
|
||||||
|
; align
|
||||||
|
; -----
|
||||||
|
|
||||||
|
; | ... | ...
|
||||||
|
(rule_body
|
||||||
|
. (top_level_term) @anchor
|
||||||
|
(#set! "scope" "tail")) @align
|
||||||
|
|
||||||
|
; N/A or unused:
|
||||||
|
; --------------
|
||||||
|
; indent.always
|
||||||
|
; outdent.always
|
||||||
|
; extend
|
||||||
|
; extend.prevent-once
|
@ -0,0 +1,7 @@
|
|||||||
|
; See: https://docs.helix-editor.com/guides/injection.html
|
||||||
|
|
||||||
|
((singleline_comment) @injection.content
|
||||||
|
(#set! injection.language "comment"))
|
||||||
|
|
||||||
|
((multiline_comment) @injection.content
|
||||||
|
(#set! injection.language "comment"))
|
@ -0,0 +1,40 @@
|
|||||||
|
; See: https://docs.helix-editor.com/guides/textobject.html
|
||||||
|
|
||||||
|
; function.inside & around
|
||||||
|
; ------------------------
|
||||||
|
|
||||||
|
(rule
|
||||||
|
body: (_) @function.inside) @function.around
|
||||||
|
|
||||||
|
; class.inside & around
|
||||||
|
; ---------------------
|
||||||
|
|
||||||
|
(grammar
|
||||||
|
body: (_) @class.inside) @class.around
|
||||||
|
|
||||||
|
; parameter.inside & around
|
||||||
|
; -------------------------
|
||||||
|
|
||||||
|
(formals
|
||||||
|
((_) @parameter.inside . ","? @parameter.around) @parameter.around)
|
||||||
|
|
||||||
|
(rule_body
|
||||||
|
((_) @parameter.inside . "|"? @parameter.around) @parameter.around)
|
||||||
|
|
||||||
|
(params
|
||||||
|
((_) @parameter.inside . ","? @parameter.around) @parameter.around)
|
||||||
|
|
||||||
|
(alt
|
||||||
|
((_) @parameter.inside . "|"? @parameter.around) @parameter.around)
|
||||||
|
|
||||||
|
; comment.inside
|
||||||
|
; --------------
|
||||||
|
|
||||||
|
(multiline_comment)+ @comment.inside
|
||||||
|
(singleline_comment)+ @comment.inside
|
||||||
|
|
||||||
|
; comment.around
|
||||||
|
; --------------
|
||||||
|
|
||||||
|
(multiline_comment)+ @comment.around
|
||||||
|
(singleline_comment)+ @comment.around
|
Loading…
Reference in New Issue