From 294aa669a24ce10e5af32d2447f677bf6edd36d0 Mon Sep 17 00:00:00 2001 From: zetashift Date: Tue, 8 Aug 2023 20:50:49 +0200 Subject: Add Unison support (#7724) --- runtime/queries/unison/highlights.scm | 72 +++++++++++++++++++++++++++++++++++ runtime/queries/unison/injections.scm | 1 + 2 files changed, 73 insertions(+) create mode 100644 runtime/queries/unison/highlights.scm create mode 100644 runtime/queries/unison/injections.scm (limited to 'runtime/queries') diff --git a/runtime/queries/unison/highlights.scm b/runtime/queries/unison/highlights.scm new file mode 100644 index 00000000..8ec2b6ff --- /dev/null +++ b/runtime/queries/unison/highlights.scm @@ -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 + diff --git a/runtime/queries/unison/injections.scm b/runtime/queries/unison/injections.scm new file mode 100644 index 00000000..4f0cc44c --- /dev/null +++ b/runtime/queries/unison/injections.scm @@ -0,0 +1 @@ +((doc_block) @injection.content (#set! injection.language "markdown")) -- cgit v1.2.3-70-g09d2