summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--queries/haskell/highlights.scm23
1 files changed, 14 insertions, 9 deletions
diff --git a/queries/haskell/highlights.scm b/queries/haskell/highlights.scm
index a0eecf97..4785b0de 100644
--- a/queries/haskell/highlights.scm
+++ b/queries/haskell/highlights.scm
@@ -11,6 +11,7 @@
(comment) @comment
+
;; ----------------------------------------------------------------------------
;; Punctuation
@@ -72,10 +73,7 @@
"@"
] @operator
-(qualified_module (module) @constructor)
-(qualified_type (module) @namespace)
-(qualified_variable (module) @namespace)
-(import (module) @namespace)
+(module) @namespace
[
(where)
@@ -96,27 +94,34 @@
"do"
"mdo"
"rec"
+ "infix"
+ "infixl"
+ "infixr"
] @keyword
;; ----------------------------------------------------------------------------
;; Functions and variables
-(signature name: (variable) @type)
-(function name: (variable) @function)
-
(variable) @variable
-"_" @punctuation.special
+(pat_wildcard) @variable
+
+(signature name: (variable) @type)
+(function
+ name: (variable) @function
+ patterns: (patterns))
(exp_infix (variable) @operator) ; consider infix functions as operators
-("@" @namespace) ; "as" pattern operator, e.g. x@Constructor
+(exp_apply . (exp_name (variable) @function))
+(exp_apply . (exp_name (qualified_variable (variable) @function)))
;; ----------------------------------------------------------------------------
;; Types
(type) @type
+(type_variable) @type
(constructor) @constructor