aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
Diffstat (limited to 'queries')
-rw-r--r--queries/haskell/highlights.scm91
1 files changed, 91 insertions, 0 deletions
diff --git a/queries/haskell/highlights.scm b/queries/haskell/highlights.scm
new file mode 100644
index 000000000..d999cb8ec
--- /dev/null
+++ b/queries/haskell/highlights.scm
@@ -0,0 +1,91 @@
+(integer) @number
+(exp_literal (float)) @float
+
+(char) @character
+
+(string) @string
+
+(variable) @variable
+
+(con_unit) @symbol
+
+(comment) @comment
+
+(function name: (variable) @function)
+
+[
+ "forall"
+ "∀"
+] @repeat
+
+(pragma) @constant.macro
+
+[
+ "if"
+ "then"
+ "else"
+] @conditional
+
+[
+ (constructor)
+ (module)
+] @constructor
+
+;; True or False
+((constructor) @_bool (#match? @_bool "(True|False)")) @boolean
+
+(signature name: (variable) @type)
+(constraint class: (class_name (type)) @type)
+(class (class_head class: (class_name (type)) @type))
+(instance (instance_head class: (class_name (type)) @type))
+
+[
+ (type)
+] @type
+
+[
+ (qualified_module) ;; grabs the `.` (dot), ex: import System.IO
+ (tycon_arrow)
+ (operator)
+ (constructor_operator)
+ "::"
+] @operator
+
+[
+ "import"
+ "module"
+] @include
+
+[
+ (where)
+ "let"
+ "in"
+ "class"
+ "instance"
+ "data"
+ "newtype"
+ "family"
+ "type"
+ "qualified"
+ "as"
+ "deriving"
+ "via"
+ "stock"
+ "anyclass"
+ "do"
+ "mdo"
+ "rec"
+] @keyword
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
+] @punctuation.bracket
+
+; [
+; ","
+; ] @punctuation.delimiter