Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/unison/highlights.scm')
-rw-r--r--runtime/queries/unison/highlights.scm81
1 files changed, 57 insertions, 24 deletions
diff --git a/runtime/queries/unison/highlights.scm b/runtime/queries/unison/highlights.scm
index 71177929..4c8f0c23 100644
--- a/runtime/queries/unison/highlights.scm
+++ b/runtime/queries/unison/highlights.scm
@@ -9,32 +9,25 @@
;; Keywords
[
(kw_forall)
- (type_kw)
(kw_equals)
(do)
+ (kw_let)
(ability)
(where)
] @keyword
(kw_let) @keyword.function
-(type_kw) @keyword.storage.type
-(unique) @keyword.storage.modifier
+(type_kw) @keyword.storage.modifier
(structural) @keyword.storage.modifier
("use") @keyword.control.import
-
-
-[
- (type_constructor)
-] @constructor
+(unique) @keyword.storage.modifier
[
(operator)
(pipe)
(arrow_symbol)
- (">")
(or)
(and)
- (bang)
] @operator
[
@@ -48,24 +41,62 @@
(blank_pattern) @variable.builtin
+(pattern) @variable
+
+(use_clause) @keyword.import
+
;; Types
-(record_field name: (wordy_id) @variable.other.member type: (_) @type)
-(type_constructor (type_name (wordy_id) @constructor))
-(ability_declaration type_name: (wordy_id) @type type_arg: (wordy_id) @variable.parameter)
-(effect (wordy_id) @special) ;; NOTE: an effect is just like a type, but in signature we special case it
+(record_field
+ (field_name) @variable.other.member
+ type: (regular_identifier) @type)
+
+(type_name) @type
+
+(type_declaration
+ (regular_identifier) @type.enum.variant)
+
+(ability_name
+ (path)? @namespace
+ (regular_identifier) @type)
-;; Namespaces
-(path) @namespace
-(namespace) @namespace
+(ability_declaration
+ (ability_name) @type
+ (type_argument) @variable.parameter)
-;; Terms
-(type_signature term_name: (path)? @variable term_name: (wordy_id) @variable)
-(type_signature (wordy_id) @type)
-(type_signature (term_type(delayed(wordy_id))) @type)
+(type_constructor) @constructor
-(term_definition param: (wordy_id) @variable.parameter)
+(constructor
+ (constructor_name) @constructor)
-(function_application function_name: (path)? function_name: (wordy_id) @function)
+(constructor
+ type: (regular_identifier) @type)
+
+(effect
+ (regular_identifier) @special) ; NOTE: an effect is a special type
+
+; Namespaces
+(path) @module
+
+(namespace) @module
+
+; Terms
+(type_signature
+ term_name: (path) @module
+ term_name: (regular_identifier) @variable)
+
+(type_signature
+ term_name: (regular_identifier) @variable)
+
+(term_type) @type
+
+(term_definition
+ name: (path) @namespace)
+
+(term_definition
+ name: (regular_identifier) @variable)
+
+(term_definition
+ param: (regular_identifier) @variable.parameter)
;; Punctuation
[
@@ -82,4 +113,6 @@
"]"
] @punctuation.bracket
-(test_watch_expression (wordy_id) @keyword.directive)
+(watch_expression) @keyword.directive
+
+(test_watch_expression) @keyword.directive