Skip to content

Commit

Permalink
Add Unison support (helix-editor#7724)
Browse files Browse the repository at this point in the history
  • Loading branch information
zetashift authored and Schuyler Mortimer committed Jul 10, 2024
1 parent f03fe7f commit 3486764
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@
| twig || | | |
| typescript |||| `typescript-language-server` |
| ungrammar || | | |
| unison || | | |
| uxntal || | | |
| v |||| `v-analyzer` |
| vala || | | `vala-language-server` |
Expand Down
23 changes: 23 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2713,3 +2713,26 @@ injection-regex = "wren"
file-types = ["wren"]
roots = []
indent = { tab-width = 2, unit = " "}

[[language]]
name = "unison"
scope = "source.unison"
injection-regex = "unison"
file-types = ["u"]
shebangs = []
roots = []
auto-format = false
comment-token = "--"
indent = { tab-width = 4, unit = " " }

[language.auto-pairs]
'(' = ')'
'{' = '}'
'[' = ']'
'"' = '"'
'`' = '`'

[[grammar]]
name = "unison"
source = { git = "https://github.com/kylegoetz/tree-sitter-unison", rev = "98c4e8bc5c9f5989814a720457cf36963cf4043d" }

72 changes: 72 additions & 0 deletions runtime/queries/unison/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
;; Primitives
(comment) @comment
(nat) @constant.numeric
(unit) @constant.builtin
(literal_char) @constant.character
(literal_text) @string
(literal_boolean) @constant.builtin.boolean

;; Keywords
[
(kw_forall)
(unique_kw)
(type_kw)
(kw_equals)
(do)
] @keyword

(kw_let) @keyword.function
(type_kw) @keyword.storage.type
(unique) @keyword.storage.modifier
("use") @keyword.control.import


[
(type_constructor)
] @constructor

[
(operator)
(pipe)
(arrow_symbol)
(">")
(or)
(bang)
] @operator

[
"if"
"else"
"then"
(match)
(with)
(cases)
] @keyword.control.conditional

(blank_pattern) @variable.builtin

;; Types
(record_field name: (wordy_id) @variable.other.member type: (wordy_id) @type)
[
(type_name)
(type_signature)
(effect)
] @type

(term_definition) @variable

;; Punctuation
[
(type_signature_colon)
":"
] @punctuation.delimiter

[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket

1 change: 1 addition & 0 deletions runtime/queries/unison/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
((doc_block) @injection.content (#set! injection.language "markdown"))

0 comments on commit 3486764

Please sign in to comment.