@willbooster/tree-sitter-haskell 4.0.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -83,6 +83,12 @@ parser.setLanguage(await Language.load(haskell));
83
83
 
84
84
  The package also ships `grammar.js` with the files in `grammar/` it loads, the queries in `queries/`, and the node types in `src/node-types.json`.
85
85
 
86
+ For code navigation, use `queries/tags.scm` (or `TAGS_QUERY` in Rust). It indexes module headers, top-level named functions and simple named bindings, named types and classes, class and instance methods, and syntactic variable/operator calls. A signature and each equation have separate definition locations. Call references identify the called name without resolving its binding.
87
+
88
+ Extra parentheses around a function or type declaration's head are not indexed; parenthesized operator identifiers such as `(:+:)` are supported. Call-name matching supports one extra expression-parenthesis wrapper; deeper wrappers are not indexed. Destructuring bindings, local pattern bindings and constructors (including pattern synonyms) are not indexed.
89
+
90
+ In a repository checkout, configure the CLI parser directories to include the grammar, then run `script/tree-sitter tags file.hs` to inspect the tags.
91
+
86
92
  In Rust, depend on the [crate](https://crates.io/crates/willbooster-tree-sitter-haskell) and on
87
93
  [willbooster-tree-sitter](https://crates.io/crates/willbooster-tree-sitter), the runtime this package is tested and
88
94
  fuzzed with:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@willbooster/tree-sitter-haskell",
3
- "version": "4.0.0",
3
+ "version": "4.1.1",
4
4
  "description": "Haskell grammar for tree-sitter",
5
5
  "keywords": [
6
6
  "incremental",
@@ -0,0 +1,140 @@
1
+ (header module: (module) @name) @definition.module
2
+
3
+ (declarations
4
+ [
5
+ (function name: [(variable) @name (prefix_id (operator) @name)])
6
+ (function (infix operator: [(operator) @name (infix_id (variable) @name)]))
7
+ (signature name: [(variable) @name (prefix_id (operator) @name)])
8
+ (signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
9
+ ] @definition.function)
10
+
11
+ (declarations
12
+ (bind name: [(variable) @name (prefix_id (operator) @name)]) @definition.variable)
13
+
14
+ [
15
+ (class_declarations
16
+ [
17
+ (function name: [(variable) @name (prefix_id (operator) @name)])
18
+ (function (infix operator: [(operator) @name (infix_id (variable) @name)]))
19
+ (signature name: [(variable) @name (prefix_id (operator) @name)])
20
+ (signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
21
+ (default_signature signature: (signature name: [(variable) @name (prefix_id (operator) @name)]))
22
+ (default_signature signature: (signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)])))
23
+ (bind name: [(variable) @name (prefix_id (operator) @name)])
24
+ ] @definition.method)
25
+ (instance_declarations
26
+ [
27
+ (function name: [(variable) @name (prefix_id (operator) @name)])
28
+ (function (infix operator: [(operator) @name (infix_id (variable) @name)]))
29
+ (signature name: [(variable) @name (prefix_id (operator) @name)])
30
+ (signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
31
+ (bind name: [(variable) @name (prefix_id (operator) @name)])
32
+ ] @definition.method)
33
+ ]
34
+
35
+ [
36
+ (type_synonym name: [
37
+ (name) @name
38
+ (qualified id: (name) @name)
39
+ (prefix_id [(operator) @name (constructor_operator) @name])
40
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
41
+ ])
42
+ (type_family name: [
43
+ (name) @name
44
+ (qualified id: (name) @name)
45
+ (prefix_id [(operator) @name (constructor_operator) @name])
46
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
47
+ ])
48
+ (data_family name: [
49
+ (name) @name
50
+ (qualified id: (name) @name)
51
+ (prefix_id [(operator) @name (constructor_operator) @name])
52
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
53
+ ])
54
+ ] @definition.class
55
+
56
+ [
57
+ (type_synonym (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]) "=")
58
+ (type_family . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
59
+ (data_family . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
60
+ ] @definition.class
61
+
62
+ (declarations
63
+ [
64
+ (data_type name: [
65
+ (name) @name
66
+ (qualified id: (name) @name)
67
+ (prefix_id [(operator) @name (constructor_operator) @name])
68
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
69
+ ])
70
+ (newtype name: [
71
+ (name) @name
72
+ (qualified id: (name) @name)
73
+ (prefix_id [(operator) @name (constructor_operator) @name])
74
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
75
+ ])
76
+ (data_type . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
77
+ (data_type . [(cpp) (comment) (haddock) (pragma)]* . (context) . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
78
+ (newtype . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
79
+ (newtype . [(cpp) (comment) (haddock) (pragma)]* . (context) . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
80
+ ] @definition.class)
81
+
82
+ (class name: [
83
+ (name) @name
84
+ (qualified id: (name) @name)
85
+ (prefix_id [(operator) @name (constructor_operator) @name])
86
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
87
+ ]) @definition.interface
88
+ (class (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)])) @definition.interface
89
+ (instance name: [
90
+ (name) @name
91
+ (qualified id: (name) @name)
92
+ (prefix_id [(operator) @name (constructor_operator) @name])
93
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
94
+ ]) @reference.implementation
95
+ (instance (infix operator: [
96
+ (constructor_operator) @name
97
+ (operator) @name
98
+ (infix_id (name) @name)
99
+ (qualified id: [(constructor_operator) @name (operator) @name])
100
+ (infix_id (qualified id: (name) @name))
101
+ ])) @reference.implementation
102
+
103
+ (deriving_instance name: [
104
+ (name) @name
105
+ (qualified id: (name) @name)
106
+ (prefix_id [(operator) @name (constructor_operator) @name])
107
+ (prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
108
+ ]) @reference.implementation
109
+ (deriving_instance (infix operator: [
110
+ (constructor_operator) @name
111
+ (operator) @name
112
+ (infix_id (name) @name)
113
+ (qualified id: [(constructor_operator) @name (operator) @name])
114
+ (infix_id (qualified id: (name) @name))
115
+ ])) @reference.implementation
116
+
117
+ (foreign_import
118
+ signature: (signature name: [(variable) @name (prefix_id (operator) @name)])) @definition.function
119
+
120
+ (expression/apply
121
+ function: [
122
+ (variable) @name
123
+ (qualified id: (variable) @name)
124
+ (prefix_id (operator) @name)
125
+ (prefix_id (qualified id: (operator) @name))
126
+ (parens expression: [
127
+ (variable) @name
128
+ (qualified id: (variable) @name)
129
+ (prefix_id (operator) @name)
130
+ (prefix_id (qualified id: (operator) @name))
131
+ ])
132
+ ]) @reference.call
133
+
134
+ (expression/infix
135
+ operator: [
136
+ (operator) @name
137
+ (infix_id (variable) @name)
138
+ (infix_id (qualified id: (variable) @name))
139
+ (qualified id: (operator) @name)
140
+ ]) @reference.call
Binary file
package/tree-sitter.json CHANGED
@@ -11,11 +11,12 @@
11
11
  "hs-boot"
12
12
  ],
13
13
  "highlights": "queries/highlights.scm",
14
+ "tags": "queries/tags.scm",
14
15
  "injection-regex": "^(hs|haskell)$"
15
16
  }
16
17
  ],
17
18
  "metadata": {
18
- "version": "4.0.0",
19
+ "version": "4.1.1",
19
20
  "license": "MIT",
20
21
  "description": "Haskell grammar for tree-sitter",
21
22
  "authors": [