Skip to content

Commit a6d122f

Browse files
committed
Start Haskell support
1 parent 5448c2e commit a6d122f

File tree

4 files changed

+467
-0
lines changed

4 files changed

+467
-0
lines changed

packages/common/src/extensionDependencies.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const extensionDependencies = [
77
"mrob95.vscode-talonscript", // talon
88
"jrieken.vscode-tree-sitter-query", // scm
99
"mathiasfrohlich.kotlin", // kotlin
10+
"justusadam.language-haskell", // haskell
1011

1112
// Necessary for the `drink cell` and `pour cell` tests
1213
"ms-toolsai.jupyter",

queries/haskell.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Main where
2+
3+
-- This is a comment.
4+
main :: IO ()
5+
main = putStrLn "Hello, World!"
6+

queries/haskell.md

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
# Haskell Support
2+
3+
## Node Types
4+
5+
- `adt`
6+
- `all_names`
7+
- `alt`
8+
- `alts`
9+
- `annotated_type_variable`
10+
- `bind_pattern`
11+
- `calling_convention`
12+
- `char`
13+
- `class`
14+
- `class_body`
15+
- `class_head`
16+
- `class_name`
17+
- `comma`
18+
- `comment`
19+
- `con_list`
20+
- `con_tuple`
21+
- `con_unit`
22+
- `constraint`
23+
- `constructor`
24+
- `constructor_operator`
25+
- `constructors`
26+
- `context`
27+
- `cpp`
28+
- `data_constructor`
29+
- `data_constructor_infix`
30+
- `data_constructor_record`
31+
- `data_family`
32+
- `data_instance`
33+
- `decl_tyfam_sig`
34+
- `decl_type`
35+
- `decls`
36+
- `default_declaration`
37+
- `default_signature`
38+
- `deriving`
39+
- `deriving_declaration`
40+
- `deriving_strategy`
41+
- `do_module`
42+
- `empty_file`
43+
- `equation`
44+
- `exp_apply`
45+
- `exp_arithmetic_sequence`
46+
- `exp_case`
47+
- `exp_cond`
48+
- `exp_do`
49+
- `exp_field`
50+
- `exp_if_guard`
51+
- `exp_in`
52+
- `exp_infix`
53+
- `exp_lambda`
54+
- `exp_lambda_case`
55+
- `exp_let`
56+
- `exp_let_in`
57+
- `exp_list`
58+
- `exp_list_comprehension`
59+
- `exp_literal`
60+
- `exp_name`
61+
- `exp_negation`
62+
- `exp_parens`
63+
- `exp_record`
64+
- `exp_section_left`
65+
- `exp_section_right`
66+
- `exp_sum_empty`
67+
- `exp_th_quoted_name`
68+
- `exp_tuple`
69+
- `exp_type_application`
70+
- `exp_unboxed_sum`
71+
- `exp_unboxed_tuple`
72+
- `expent`
73+
- `export`
74+
- `export_names`
75+
- `exports`
76+
- `field`
77+
- `fixity`
78+
- `float`
79+
- `forall`
80+
- `foreign_export`
81+
- `foreign_import`
82+
- `fun`
83+
- `function`
84+
- `fundep`
85+
- `fundeps`
86+
- `gadt_constructor`
87+
- `gdpat`
88+
- `guard`
89+
- `guard_equation`
90+
- `guards`
91+
- `haskell`
92+
- `head`
93+
- `impent`
94+
- `implicit_param`
95+
- `implicit_parid`
96+
- `import`
97+
- `import_con_names`
98+
- `import_item`
99+
- `import_list`
100+
- `import_package`
101+
- `infix`
102+
- `inst_datainst`
103+
- `inst_tyinst`
104+
- `instance`
105+
- `instance_head`
106+
- `integer`
107+
- `label`
108+
- `let`
109+
- `modifier`
110+
- `module`
111+
- `namespace`
112+
- `newtype`
113+
- `newtype_constructor`
114+
- `operator`
115+
- `pat_apply`
116+
- `pat_as`
117+
- `pat_field`
118+
- `pat_fields`
119+
- `pat_infix`
120+
- `pat_irrefutable`
121+
- `pat_list`
122+
- `pat_literal`
123+
- `pat_name`
124+
- `pat_negation`
125+
- `pat_parens`
126+
- `pat_record`
127+
- `pat_strict`
128+
- `pat_tuple`
129+
- `pat_typed`
130+
- `pat_unboxed_tuple`
131+
- `pat_view`
132+
- `pat_wildcard`
133+
- `pattern`
134+
- `pattern_guard`
135+
- `pattern_synonym`
136+
- `patterns`
137+
- `pragma`
138+
- `promoted`
139+
- `qual`
140+
- `qualified_constructor`
141+
- `qualified_constructor_operator`
142+
- `qualified_module`
143+
- `qualified_operator`
144+
- `qualified_type`
145+
- `qualified_type_operator`
146+
- `qualified_variable`
147+
- `quantifiers`
148+
- `quasiquote`
149+
- `quasiquote_bar`
150+
- `quasiquote_body`
151+
- `quasiquote_start`
152+
- `quoter`
153+
- `rec`
154+
- `record_fields`
155+
- `role_annotation`
156+
- `safety`
157+
- `signature`
158+
- `splice`
159+
- `stmt`
160+
- `strict_type`
161+
- `string`
162+
- `ticked`
163+
- `top_splice`
164+
- `transform`
165+
- `tycon_arrow`
166+
- `type`
167+
- `type_alias`
168+
- `type_apply`
169+
- `type_family`
170+
- `type_infix`
171+
- `type_instance`
172+
- `type_list`
173+
- `type_literal`
174+
- `type_name`
175+
- `type_operator`
176+
- `type_parens`
177+
- `type_role`
178+
- `type_star`
179+
- `type_tuple`
180+
- `type_unboxed_sum`
181+
- `type_unboxed_tuple`
182+
- `type_variable`
183+
- `variable`
184+
- `varop`
185+
- `via`
186+
- `where`
187+
- `wildcard`
188+
189+
## Simple Scope Types
190+
191+
```js
192+
export const simpleScopeTypeTypes = [
193+
"argumentOrParameter",
194+
"anonymousFunction",
195+
"attribute",
196+
"branch",
197+
"class",
198+
"className",
199+
"collectionItem",
200+
"collectionKey",
201+
"comment",
202+
"functionCall",
203+
"functionCallee",
204+
"functionName",
205+
"ifStatement",
206+
"instance",
207+
"list",
208+
"map",
209+
"name",
210+
"namedFunction",
211+
"regularExpression",
212+
"statement",
213+
"string",
214+
"type",
215+
"value",
216+
"condition",
217+
"selector",
218+
"unit",
219+
] as const;
220+
```

0 commit comments

Comments
 (0)