@kerebron/tree-sitter 0.5.5 → 0.6.0

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.
Files changed (133) hide show
  1. package/README.md +1 -2
  2. package/esm/{deno-tree-sitter/main/extended → extended}/base_node.d.ts +9 -12
  3. package/esm/extended/base_node.d.ts.map +1 -0
  4. package/esm/{deno-tree-sitter/main/extended → extended}/base_node.js +14 -14
  5. package/esm/extended/base_node.js.map +1 -0
  6. package/esm/extended/node_extended.d.ts +243 -0
  7. package/esm/extended/node_extended.d.ts.map +1 -0
  8. package/esm/{deno-tree-sitter/main/extended → extended}/node_extended.js +196 -186
  9. package/esm/extended/node_extended.js.map +1 -0
  10. package/esm/{deno-tree-sitter/main/extended → extended}/parser.d.ts +19 -17
  11. package/esm/extended/parser.d.ts.map +1 -0
  12. package/esm/extended/parser.js +61 -0
  13. package/esm/extended/parser.js.map +1 -0
  14. package/esm/{deno-tree-sitter/main/extended → extended}/soft_node.d.ts +4 -3
  15. package/esm/extended/soft_node.d.ts.map +1 -0
  16. package/esm/{deno-tree-sitter/main/extended → extended}/soft_node.js +1 -1
  17. package/esm/extended/soft_node.js.map +1 -0
  18. package/esm/extended/soft_text_node.d.ts +9 -0
  19. package/esm/extended/soft_text_node.d.ts.map +1 -0
  20. package/esm/{deno-tree-sitter/main/extended → extended}/soft_text_node.js +2 -2
  21. package/esm/extended/soft_text_node.js.map +1 -0
  22. package/esm/extended/whitespace_node.d.ts +9 -0
  23. package/esm/extended/whitespace_node.d.ts.map +1 -0
  24. package/esm/{deno-tree-sitter/main/extended → extended}/whitespace_node.js +2 -2
  25. package/esm/extended/whitespace_node.js.map +1 -0
  26. package/esm/extras/misc.d.ts +2 -0
  27. package/esm/extras/misc.d.ts.map +1 -0
  28. package/esm/{deno-tree-sitter/main/extras → extras}/misc.js +2 -2
  29. package/esm/extras/misc.js.map +1 -0
  30. package/esm/mod.d.ts +1 -6
  31. package/esm/mod.d.ts.map +1 -1
  32. package/esm/mod.js +1 -7
  33. package/esm/mod.js.map +1 -1
  34. package/package.json +4 -1
  35. package/src/extended/base_node.ts +175 -0
  36. package/src/extended/node_extended.ts +651 -0
  37. package/src/extended/parser.ts +96 -0
  38. package/src/extended/soft_node.ts +32 -0
  39. package/src/extended/soft_text_node.ts +11 -0
  40. package/src/extended/whitespace_node.ts +11 -0
  41. package/src/extras/misc.ts +15 -0
  42. package/src/mod.ts +1 -8
  43. package/esm/deno-tree-sitter/main/extended/base_node.d.ts.map +0 -1
  44. package/esm/deno-tree-sitter/main/extended/base_node.js.map +0 -1
  45. package/esm/deno-tree-sitter/main/extended/node_extended.d.ts +0 -237
  46. package/esm/deno-tree-sitter/main/extended/node_extended.d.ts.map +0 -1
  47. package/esm/deno-tree-sitter/main/extended/node_extended.js.map +0 -1
  48. package/esm/deno-tree-sitter/main/extended/parser.d.ts.map +0 -1
  49. package/esm/deno-tree-sitter/main/extended/parser.js +0 -87
  50. package/esm/deno-tree-sitter/main/extended/parser.js.map +0 -1
  51. package/esm/deno-tree-sitter/main/extended/soft_node.d.ts.map +0 -1
  52. package/esm/deno-tree-sitter/main/extended/soft_node.js.map +0 -1
  53. package/esm/deno-tree-sitter/main/extended/soft_text_node.d.ts +0 -10
  54. package/esm/deno-tree-sitter/main/extended/soft_text_node.d.ts.map +0 -1
  55. package/esm/deno-tree-sitter/main/extended/soft_text_node.js.map +0 -1
  56. package/esm/deno-tree-sitter/main/extended/whitespace_node.d.ts +0 -10
  57. package/esm/deno-tree-sitter/main/extended/whitespace_node.d.ts.map +0 -1
  58. package/esm/deno-tree-sitter/main/extended/whitespace_node.js.map +0 -1
  59. package/esm/deno-tree-sitter/main/extras/misc.d.ts +0 -2
  60. package/esm/deno-tree-sitter/main/extras/misc.d.ts.map +0 -1
  61. package/esm/deno-tree-sitter/main/extras/misc.js.map +0 -1
  62. package/esm/deno-tree-sitter/main/tree_sitter/bindings.d.ts +0 -14
  63. package/esm/deno-tree-sitter/main/tree_sitter/bindings.d.ts.map +0 -1
  64. package/esm/deno-tree-sitter/main/tree_sitter/bindings.js +0 -22
  65. package/esm/deno-tree-sitter/main/tree_sitter/bindings.js.map +0 -1
  66. package/esm/deno-tree-sitter/main/tree_sitter/constants.d.ts +0 -60
  67. package/esm/deno-tree-sitter/main/tree_sitter/constants.d.ts.map +0 -1
  68. package/esm/deno-tree-sitter/main/tree_sitter/constants.js +0 -67
  69. package/esm/deno-tree-sitter/main/tree_sitter/constants.js.map +0 -1
  70. package/esm/deno-tree-sitter/main/tree_sitter/language.d.ts +0 -137
  71. package/esm/deno-tree-sitter/main/tree_sitter/language.d.ts.map +0 -1
  72. package/esm/deno-tree-sitter/main/tree_sitter/language.js +0 -265
  73. package/esm/deno-tree-sitter/main/tree_sitter/language.js.map +0 -1
  74. package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.d.ts +0 -41
  75. package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.d.ts.map +0 -1
  76. package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js +0 -66
  77. package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js.map +0 -1
  78. package/esm/deno-tree-sitter/main/tree_sitter/marshal.d.ts +0 -85
  79. package/esm/deno-tree-sitter/main/tree_sitter/marshal.d.ts.map +0 -1
  80. package/esm/deno-tree-sitter/main/tree_sitter/marshal.js +0 -174
  81. package/esm/deno-tree-sitter/main/tree_sitter/marshal.js.map +0 -1
  82. package/esm/deno-tree-sitter/main/tree_sitter/node.d.ts +0 -260
  83. package/esm/deno-tree-sitter/main/tree_sitter/node.d.ts.map +0 -1
  84. package/esm/deno-tree-sitter/main/tree_sitter/node.js +0 -558
  85. package/esm/deno-tree-sitter/main/tree_sitter/node.js.map +0 -1
  86. package/esm/deno-tree-sitter/main/tree_sitter/parser.d.ts +0 -124
  87. package/esm/deno-tree-sitter/main/tree_sitter/parser.d.ts.map +0 -1
  88. package/esm/deno-tree-sitter/main/tree_sitter/parser.js +0 -253
  89. package/esm/deno-tree-sitter/main/tree_sitter/parser.js.map +0 -1
  90. package/esm/deno-tree-sitter/main/tree_sitter/query.d.ts +0 -134
  91. package/esm/deno-tree-sitter/main/tree_sitter/query.d.ts.map +0 -1
  92. package/esm/deno-tree-sitter/main/tree_sitter/query.js +0 -621
  93. package/esm/deno-tree-sitter/main/tree_sitter/query.js.map +0 -1
  94. package/esm/deno-tree-sitter/main/tree_sitter/tree.d.ts +0 -49
  95. package/esm/deno-tree-sitter/main/tree_sitter/tree.d.ts.map +0 -1
  96. package/esm/deno-tree-sitter/main/tree_sitter/tree.js +0 -131
  97. package/esm/deno-tree-sitter/main/tree_sitter/tree.js.map +0 -1
  98. package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.d.ts +0 -165
  99. package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.d.ts.map +0 -1
  100. package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.js +0 -281
  101. package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.js.map +0 -1
  102. package/esm/deno-tree-sitter/main/tree_sitter_wasm.d.ts +0 -3
  103. package/esm/deno-tree-sitter/main/tree_sitter_wasm.d.ts.map +0 -1
  104. package/esm/deno-tree-sitter/main/tree_sitter_wasm.js +0 -0
  105. package/esm/deno-tree-sitter/main/tree_sitter_wasm.js.map +0 -1
  106. package/esm/deno-tree-sitter/main/wasm_loader.d.ts +0 -29
  107. package/esm/deno-tree-sitter/main/wasm_loader.d.ts.map +0 -1
  108. package/esm/deno-tree-sitter/main/wasm_loader.js +0 -1703
  109. package/esm/deno-tree-sitter/main/wasm_loader.js.map +0 -1
  110. package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.d.ts +0 -3
  111. package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.d.ts.map +0 -1
  112. package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.js +0 -9
  113. package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.js.map +0 -1
  114. package/src/deno-tree-sitter/main/extended/base_node.js +0 -174
  115. package/src/deno-tree-sitter/main/extended/node_extended.js +0 -588
  116. package/src/deno-tree-sitter/main/extended/parser.js +0 -87
  117. package/src/deno-tree-sitter/main/extended/soft_node.js +0 -32
  118. package/src/deno-tree-sitter/main/extended/soft_text_node.js +0 -11
  119. package/src/deno-tree-sitter/main/extended/whitespace_node.js +0 -11
  120. package/src/deno-tree-sitter/main/extras/misc.js +0 -12
  121. package/src/deno-tree-sitter/main/tree_sitter/bindings.js +0 -26
  122. package/src/deno-tree-sitter/main/tree_sitter/constants.js +0 -79
  123. package/src/deno-tree-sitter/main/tree_sitter/language.js +0 -289
  124. package/src/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js +0 -74
  125. package/src/deno-tree-sitter/main/tree_sitter/marshal.js +0 -186
  126. package/src/deno-tree-sitter/main/tree_sitter/node.js +0 -616
  127. package/src/deno-tree-sitter/main/tree_sitter/parser.js +0 -273
  128. package/src/deno-tree-sitter/main/tree_sitter/query.js +0 -705
  129. package/src/deno-tree-sitter/main/tree_sitter/tree.js +0 -145
  130. package/src/deno-tree-sitter/main/tree_sitter/tree_cursor.js +0 -314
  131. package/src/deno-tree-sitter/main/tree_sitter_wasm.js +0 -0
  132. package/src/deno-tree-sitter/main/wasm_loader.js +0 -1702
  133. package/src/deno-tree-sitter/main/wasm_loader_with_defaults.js +0 -9
@@ -1,18 +1,17 @@
1
- import { Node } from "../tree_sitter/node.js";
2
- import { Parser } from "../tree_sitter/parser.js";
3
- import { BaseNode, _shadows } from "./base_node.js";
4
- import { WhitespaceNode } from "./whitespace_node.js";
5
- import { SoftTextNode } from "./soft_text_node.js";
6
- import { Query, QueryError } from "../tree_sitter/query.js";
7
- import { _getQueryCaptureTargets } from "../extras/misc.js";
8
- import { Tree } from "../tree_sitter/tree.js";
1
+ import { Node } from 'web-tree-sitter';
2
+ import { Query } from 'web-tree-sitter';
3
+ import { Tree } from 'web-tree-sitter';
4
+ import { _shadows, BaseNode } from './base_node.js';
5
+ import { WhitespaceNode } from './whitespace_node.js';
6
+ import { SoftTextNode } from './soft_text_node.js';
7
+ import { _getQueryCaptureTargets } from '../extras/misc.js';
9
8
  // NOTE: the tree override is in here because it has a circular type dependency on HardNode
10
- const realRootNodeGetter = Object.getOwnPropertyDescriptor(Tree.prototype, "rootNode").get;
11
- //
9
+ const realRootNodeGetter = Object.getOwnPropertyDescriptor(Tree.prototype, 'rootNode').get;
10
+ //
12
11
  // complicated override in order to make the root node pretend to contain soft nodes (ex: leading and trailing whitespace)
13
- //
12
+ //
14
13
  // hard because a normal change to .startIndex/.endIndex breaks internal methods, so we have to selectively choose who sees the real/faked .startIndex/.endIndex
15
- Object.defineProperty(Tree.prototype, "rootNode", {
14
+ Object.defineProperty(Tree.prototype, 'rootNode', {
16
15
  get() {
17
16
  const rootNode = realRootNodeGetter.call(this);
18
17
  const rootShadow = {};
@@ -20,10 +19,10 @@ Object.defineProperty(Tree.prototype, "rootNode", {
20
19
  const descriptors = Object.assign(Object.getOwnPropertyDescriptors(Node.prototype), Object.getOwnPropertyDescriptors(rootNode));
21
20
  const newDescriptors = {};
22
21
  for (const [key, setting] of Object.entries(descriptors)) {
23
- if (key == "startIndex" || key == "startPosition") {
22
+ if (key == 'startIndex' || key == 'startPosition') {
24
23
  continue;
25
24
  }
26
- else if (key == "text" || key == "replaceInnards") {
25
+ else if (key == 'text' || key == 'replaceInnards') {
27
26
  // use the faked .startIndex for these methods/getters
28
27
  newDescriptors[key] = setting;
29
28
  }
@@ -33,7 +32,7 @@ Object.defineProperty(Tree.prototype, "rootNode", {
33
32
  newDescriptors[key] = {
34
33
  get: () => {
35
34
  const output = rootNode[key];
36
- if (typeof output == "function") {
35
+ if (typeof output == 'function') {
37
36
  return (...args) => output.apply(rootNode, args);
38
37
  }
39
38
  return output;
@@ -50,11 +49,15 @@ Object.defineProperty(Tree.prototype, "rootNode", {
50
49
  rootShadow.startPosition = { row: 0, column: 0 };
51
50
  // if the original file is just whitespace or non-matched text, then fill it with soft nodes even though it'd normally have no children
52
51
  if (rootShadow.children.length == 0 && rootShadow.endIndex != 0) {
53
- rootShadow._children = _childrenWithSoftNodes(rootShadow, [{ startIndex: rootShadow.endIndex, endIndex: rootShadow.endIndex, endPosition: rootShadow.endPosition }], rootNode.tree.codeString).slice(0, -1);
52
+ rootShadow._children = _childrenWithSoftNodes(rootShadow, [{
53
+ startIndex: rootShadow.endIndex,
54
+ endIndex: rootShadow.endIndex,
55
+ endPosition: rootShadow.endPosition,
56
+ }], rootNode.tree.codeString).slice(0, -1);
54
57
  }
55
58
  _shadows[rootNode.id] = rootShadow;
56
59
  return rootShadow;
57
- }
60
+ },
58
61
  });
59
62
  // this only exists to help with type hints
60
63
  export class ExtendedTree extends Tree {
@@ -149,19 +152,19 @@ export class HardNode extends BaseNode {
149
152
  this._children = value;
150
153
  }
151
154
  /**
152
- * Yields each child
153
- *
154
- * @generator
155
- * @yields {HardNode} The current child or grandchild in the structure.
156
- */
155
+ * Yields each child
156
+ *
157
+ * @generator
158
+ * @yields {HardNode} The current child or grandchild in the structure.
159
+ */
157
160
  *traverse(arg = { _parentNodes: [] }) {
158
161
  const { _parentNodes } = arg;
159
162
  const parentNodes = [this, ..._parentNodes];
160
163
  if (this.children?.length == 0) {
161
- yield [_parentNodes, this, "-"];
164
+ yield [_parentNodes, this, '-'];
162
165
  }
163
166
  else {
164
- yield [_parentNodes, this, "->"];
167
+ yield [_parentNodes, this, '->'];
165
168
  for (const each of this.children || []) {
166
169
  if (each instanceof Node) {
167
170
  for (const eachInner of each.traverse({ _parentNodes: parentNodes })) {
@@ -169,26 +172,26 @@ export class HardNode extends BaseNode {
169
172
  }
170
173
  }
171
174
  else {
172
- yield [parentNodes, each, "-"];
175
+ yield [parentNodes, each, '-'];
173
176
  }
174
177
  }
175
- yield [_parentNodes, this, "<-"];
178
+ yield [_parentNodes, this, '<-'];
176
179
  }
177
180
  }
178
181
  /**
179
- * A generator function that flattens the hierarchical structure of `children` and their descendants.
180
- * It yields each child and their flattened descendants recursively.
181
- *
182
- * @param {Function} opts.filter - A function to filter the flattened elements.
183
- * @param {Boolean} opts.includeSelf -
184
- * @generator
185
- * @yields {HardNode} The current child or grandchild in the structure.
186
- */
182
+ * A generator function that flattens the hierarchical structure of `children` and their descendants.
183
+ * It yields each child and their flattened descendants recursively.
184
+ *
185
+ * @param {Function} opts.filter - A function to filter the flattened elements.
186
+ * @param {Boolean} opts.includeSelf -
187
+ * @generator
188
+ * @yields {HardNode} The current child or grandchild in the structure.
189
+ */
187
190
  *iterFlattened({ filter, includeSelf = false } = {}) {
188
191
  if (includeSelf) {
189
192
  yield this;
190
193
  }
191
- if (typeof filter == "function") {
194
+ if (typeof filter == 'function') {
192
195
  for (const each of this.children || []) {
193
196
  if (filter(each)) {
194
197
  yield each;
@@ -212,13 +215,13 @@ export class HardNode extends BaseNode {
212
215
  throw Error(`did you mean iterFlattened instead of iterFlatten?`);
213
216
  }
214
217
  /**
215
- * Flattens the structure of `children` using the provided filter function.
216
- * This method returns an array containing the flattened elements.
217
- *
218
- * @param {Function} opts.filter - A function to filter the flattened elements.
219
- * @param {Boolean} opts.includeSelf -
220
- * @returns {Array} An array containing the flattened elements that pass the filter.
221
- */
218
+ * Flattens the structure of `children` using the provided filter function.
219
+ * This method returns an array containing the flattened elements.
220
+ *
221
+ * @param {Function} opts.filter - A function to filter the flattened elements.
222
+ * @param {Boolean} opts.includeSelf -
223
+ * @returns {Array} An array containing the flattened elements that pass the filter.
224
+ */
222
225
  flattened({ filter, includeSelf = false } = {}) {
223
226
  return [...this.iterFlattened({ filter, includeSelf })];
224
227
  }
@@ -227,89 +230,90 @@ export class HardNode extends BaseNode {
227
230
  throw Error(`did you mean flattened instead of flatten?`);
228
231
  }
229
232
  /**
230
- * Query
231
- *
232
- * @example
233
- * ```js
234
- * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
235
- * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/4d8a6d34d7f6263ff570f333cdcf5ded6be89e3d/main/javascript.js"
236
- * const parser = await createParser(javascript) // path or Uint8Array
237
- * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
238
- *
239
- * tree.rootNode.query(`(identifier) @blahBlahBlah`, {matchLimit: 2})
240
- * // returns:
241
- * [
242
- * {
243
- * pattern: 0,
244
- * captures: [
245
- * {
246
- * name: "blahBlahBlah",
247
- * node: {
248
- * type: "identifier",
249
- * typeId: 1,
250
- * startPosition: { row: 0, column: 4 },
251
- * startIndex: 4,
252
- * endPosition: { row: 0, column: 5 },
253
- * endIndex: 5,
254
- * indent: undefined,
255
- * hasChildren: false,
256
- * children: []
257
- * }
258
- * }
259
- * ]
260
- * },
261
- * {
262
- * pattern: 0,
263
- * captures: [
264
- * {
265
- * name: "blahBlahBlah",
266
- * node: {
267
- * type: "identifier",
268
- * typeId: 1,
269
- * startPosition: { row: 0, column: 14 },
270
- * startIndex: 14,
271
- * endPosition: { row: 0, column: 15 },
272
- * endIndex: 15,
273
- * indent: undefined,
274
- * hasChildren: false,
275
- * children: []
276
- * }
277
- * }
278
- * ]
279
- * },
280
- * {
281
- * pattern: 0,
282
- * captures: [
283
- * {
284
- * name: "blahBlahBlah",
285
- * node: {
286
- * type: "identifier",
287
- * typeId: 1,
288
- * startPosition: { row: 0, column: 24 },
289
- * startIndex: 24,
290
- * endPosition: { row: 0, column: 25 },
291
- * endIndex: 25,
292
- * indent: undefined,
293
- * hasChildren: false,
294
- * children: []
295
- * }
296
- * }
297
- * ]
298
- * }
299
- * ]
300
- * ```
301
- *
302
- * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
303
- * @param options.matchLimit - max number of results
304
- * @param options.startPosition - {row: Number, column: number}
305
- * @param options.endPosition - {row: Number, column: number}
306
- * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
307
- * @returns {[Object]} output
308
- *
309
- */
233
+ * Query
234
+ *
235
+ * @example
236
+ * ```js
237
+ * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
238
+ * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/4d8a6d34d7f6263ff570f333cdcf5ded6be89e3d/main/javascript.js"
239
+ * const parser = await createParser(javascript) // path or Uint8Array
240
+ * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
241
+ *
242
+ * tree.rootNode.query(`(identifier) @blahBlahBlah`, {matchLimit: 2})
243
+ * // returns:
244
+ * [
245
+ * {
246
+ * pattern: 0,
247
+ * captures: [
248
+ * {
249
+ * name: "blahBlahBlah",
250
+ * node: {
251
+ * type: "identifier",
252
+ * typeId: 1,
253
+ * startPosition: { row: 0, column: 4 },
254
+ * startIndex: 4,
255
+ * endPosition: { row: 0, column: 5 },
256
+ * endIndex: 5,
257
+ * indent: undefined,
258
+ * hasChildren: false,
259
+ * children: []
260
+ * }
261
+ * }
262
+ * ]
263
+ * },
264
+ * {
265
+ * pattern: 0,
266
+ * captures: [
267
+ * {
268
+ * name: "blahBlahBlah",
269
+ * node: {
270
+ * type: "identifier",
271
+ * typeId: 1,
272
+ * startPosition: { row: 0, column: 14 },
273
+ * startIndex: 14,
274
+ * endPosition: { row: 0, column: 15 },
275
+ * endIndex: 15,
276
+ * indent: undefined,
277
+ * hasChildren: false,
278
+ * children: []
279
+ * }
280
+ * }
281
+ * ]
282
+ * },
283
+ * {
284
+ * pattern: 0,
285
+ * captures: [
286
+ * {
287
+ * name: "blahBlahBlah",
288
+ * node: {
289
+ * type: "identifier",
290
+ * typeId: 1,
291
+ * startPosition: { row: 0, column: 24 },
292
+ * startIndex: 24,
293
+ * endPosition: { row: 0, column: 25 },
294
+ * endIndex: 25,
295
+ * indent: undefined,
296
+ * hasChildren: false,
297
+ * children: []
298
+ * }
299
+ * }
300
+ * ]
301
+ * }
302
+ * ]
303
+ * ```
304
+ *
305
+ * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
306
+ * @param options.matchLimit - max number of results
307
+ * @param options.startPosition - {row: Number, column: number}
308
+ * @param options.endPosition - {row: Number, column: number}
309
+ * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
310
+ * @returns {[Object]} output
311
+ */
310
312
  query(queryString, options) {
311
313
  const { matchLimit, startPosition, endPosition, maxResultDepth } = options || {};
312
- const realMaxResultDepth = maxResultDepth == null ? Infinity : maxResultDepth;
314
+ const realMaxResultDepth = maxResultDepth == null
315
+ ? Infinity
316
+ : maxResultDepth;
313
317
  let query;
314
318
  try {
315
319
  query = new Query(this.tree.language, queryString);
@@ -332,41 +336,41 @@ export class HardNode extends BaseNode {
332
336
  return result.filter((each) => each.captures.every((each) => each.node.depth - this.depth <= realMaxResultDepth));
333
337
  }
334
338
  /**
335
- * quickQuery
336
- *
337
- * @example
338
- * ```js
339
- * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
340
- * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/676ffa3b93768b8ac628fd5c61656f7dc41ba413/main/javascript.js"
341
- * const parser = await createParser(javascript) // path or Uint8Array
342
- * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
343
- * // ex1: no capture names
344
- * const nodes = tree.rootNode.quickQuery(
345
- * `(identifier)`, {matchLimit: 2}
346
- * )
347
- * // ex2: with capture names
348
- * const groups = tree.rootNode.quickQuery(
349
- * `'(binding (attrpath) @myKey (list_expression) @myList ("\\"")? @optionalThing )`
350
- * )
351
- * groups[0].myKey // node
352
- * groups[0].myList // node
353
- * groups[0].optionalThing // node or null
354
- * groups[0][0] // node (the whole match)
355
- * ```
356
- *
357
- * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
358
- * @param options.matchLimit - max number of results
359
- * @param options.startPosition - {row: Number, column: number}
360
- * @param options.endPosition - {row: Number, column: number}
361
- * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
362
- * @returns {Array<HardNode|Record<any, HardNode>>} nodesOrObjsOfNodes
363
- */
339
+ * quickQuery
340
+ *
341
+ * @example
342
+ * ```js
343
+ * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
344
+ * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/676ffa3b93768b8ac628fd5c61656f7dc41ba413/main/javascript.js"
345
+ * const parser = await createParser(javascript) // path or Uint8Array
346
+ * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
347
+ * // ex1: no capture names
348
+ * const nodes = tree.rootNode.quickQuery(
349
+ * `(identifier)`, {matchLimit: 2}
350
+ * )
351
+ * // ex2: with capture names
352
+ * const groups = tree.rootNode.quickQuery(
353
+ * `'(binding (attrpath) @myKey (list_expression) @myList ("\\"")? @optionalThing )`
354
+ * )
355
+ * groups[0].myKey // node
356
+ * groups[0].myList // node
357
+ * groups[0].optionalThing // node or null
358
+ * groups[0][0] // node (the whole match)
359
+ * ```
360
+ *
361
+ * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
362
+ * @param options.matchLimit - max number of results
363
+ * @param options.startPosition - {row: Number, column: number}
364
+ * @param options.endPosition - {row: Number, column: number}
365
+ * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
366
+ * @returns {Array<HardNode|Record<any, HardNode>>} nodesOrObjsOfNodes
367
+ */
364
368
  quickQuery(queryString, options) {
365
369
  const possibleCaptureTargets = _getQueryCaptureTargets(queryString);
366
- //
370
+ //
367
371
  // get a base capture name
368
- //
369
- let baseCaptureName = "_";
372
+ //
373
+ let baseCaptureName = '_';
370
374
  while (possibleCaptureTargets.includes(baseCaptureName)) {
371
375
  // append until it doesn't conflict
372
376
  baseCaptureName = `${baseCaptureName}_`;
@@ -390,33 +394,33 @@ export class HardNode extends BaseNode {
390
394
  return output;
391
395
  }
392
396
  /**
393
- * quickQueryFirst
394
- *
395
- * @example
396
- * ```js
397
- * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
398
- * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/4d8a6d34d7f6263ff570f333cdcf5ded6be89e3d/main/javascript.js"
399
- * const parser = await createParser(javascript) // path or Uint8Array
400
- * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
401
- *
402
- * // ex1: no capture names
403
- * const node = tree.rootNode.quickQueryFirst(`(identifier)`)
404
- *
405
- * // ex2: with capture names
406
- * const { myKey, myList, optionalThing } = tree.rootNode.quickQueryFirst(
407
- * `'(binding (attrpath) @myKey (list_expression) @myList ("\\"")? @optionalThing )`
408
- * )
409
- * myKey // node
410
- * myList // node
411
- * optionalThing // node or null
412
- * ```
413
- *
414
- * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
415
- * @param options.startPosition - {row: Number, column: number}
416
- * @param options.endPosition - {row: Number, column: number}
417
- * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
418
- * @returns {HardNode|Record<any,HardNode>|null} nodeOrObjOfNodes
419
- */
397
+ * quickQueryFirst
398
+ *
399
+ * @example
400
+ * ```js
401
+ * import { createParser } from "https://deno.land/x/deno_tree_sitter/main/main.js"
402
+ * import javascript from "https://github.com/jeff-hykin/common_tree_sitter_languages/raw/4d8a6d34d7f6263ff570f333cdcf5ded6be89e3d/main/javascript.js"
403
+ * const parser = await createParser(javascript) // path or Uint8Array
404
+ * const tree = parser.parse('let a = 1;let b = 1;let c = 1;')
405
+ *
406
+ * // ex1: no capture names
407
+ * const node = tree.rootNode.quickQueryFirst(`(identifier)`)
408
+ *
409
+ * // ex2: with capture names
410
+ * const { myKey, myList, optionalThing } = tree.rootNode.quickQueryFirst(
411
+ * `'(binding (attrpath) @myKey (list_expression) @myList ("\\"")? @optionalThing )`
412
+ * )
413
+ * myKey // node
414
+ * myList // node
415
+ * optionalThing // node or null
416
+ * ```
417
+ *
418
+ * @param {String} queryString - see https://tree-sitter.github.io/tree-sitter/using-parsers#query-syntax
419
+ * @param options.startPosition - {row: Number, column: number}
420
+ * @param options.endPosition - {row: Number, column: number}
421
+ * @param options.maxResultDepth - depth relative to the current node (1 = direct children, 2 = grandchildren, etc)
422
+ * @returns {HardNode|Record<any,HardNode>|null} nodeOrObjOfNodes
423
+ */
420
424
  quickQueryFirst(queryString, options) {
421
425
  return this.quickQuery(queryString, { ...options, matchLimit: 1 })[0];
422
426
  }
@@ -461,7 +465,7 @@ export class HardNode extends BaseNode {
461
465
  }
462
466
  current = current.parent;
463
467
  }
464
- return "(" + chunks.reverse().join(" (") + ")".repeat(chunks.length);
468
+ return '(' + chunks.reverse().join(' (') + ')'.repeat(chunks.length);
465
469
  }
466
470
  /** @returns {string} */
467
471
  asLispString() {
@@ -500,7 +504,7 @@ export const _childrenWithSoftNodes = (node, children, string) => {
500
504
  rowOffset += (eachGap.match(/\n/g) || []).length;
501
505
  // reset column offset on new row
502
506
  if (rowOffsetBefore != rowOffset) {
503
- colOffset = eachGap.split("\n").slice(-1)[0].length;
507
+ colOffset = eachGap.split('\n').slice(-1)[0].length;
504
508
  }
505
509
  else {
506
510
  colOffset += eachGap.length;
@@ -545,7 +549,10 @@ export const _childrenWithSoftNodes = (node, children, string) => {
545
549
  const gapText = string.slice(node.startIndex, firstChild.startIndex);
546
550
  const thisNode = node;
547
551
  // whitespace and non-whitespace chunks
548
- handleGaps(gapText, () => ({ index: thisNode.startIndex, position: thisNode.startPosition }), node);
552
+ handleGaps(gapText, () => ({
553
+ index: thisNode.startIndex,
554
+ position: thisNode.startPosition,
555
+ }), node);
549
556
  }
550
557
  // firstChild.indent = indent
551
558
  newChildren.push(firstChild);
@@ -555,7 +562,10 @@ export const _childrenWithSoftNodes = (node, children, string) => {
555
562
  if (prevChild.endIndex != eachSecondaryNode.startIndex) {
556
563
  const gapText = string.slice(prevChild.endIndex, eachSecondaryNode.startIndex);
557
564
  const thisChild = prevChild;
558
- handleGaps(gapText, () => ({ index: thisChild.endIndex, position: thisChild.endPosition }), node);
565
+ handleGaps(gapText, () => ({
566
+ index: thisChild.endIndex,
567
+ position: thisChild.endPosition,
568
+ }), node);
559
569
  }
560
570
  // eachSecondaryNode.indent = indent
561
571
  newChildren.push(eachSecondaryNode);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_extended.js","sourceRoot":"","sources":["../../src/extended/node_extended.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,7 @@
1
- /**
2
- * Creates and returns a new parser instance, loading a language from a WebAssembly binary or file path.
3
- * Optionally, the parser can be configured to disable soft nodes.
4
- *
5
- * @async
6
- * @param {Uint8Array|string} wasmUint8ArrayOrFilePath - The WebAssembly binary as a `Uint8Array` or a file path to load the language.
7
- * @param {Object} [options] - Optional configuration options.
8
- * @param {boolean} [options.disableSoftNodes=false] - Whether to disable soft nodes in the parser (default is `false`).
9
- * @returns {Promise<ExtendedParser>} A promise that resolves to the created parser instance.
10
- */
11
- export function createParser(wasmUint8ArrayOrFilePath: Uint8Array | string, { disableSoftNodes, moduleOptions }?: {
12
- disableSoftNodes?: boolean | undefined;
13
- }): Promise<ExtendedParser>;
1
+ import './node_extended.js';
2
+ import { ParseCallback, ParseOptions, Parser, Tree } from 'web-tree-sitter';
14
3
  declare class ExtendedParser extends Parser {
4
+ disableSoftNodes: boolean;
15
5
  /**
16
6
  * Parse a slice of UTF8 text.
17
7
  *
@@ -28,10 +18,22 @@ declare class ExtendedParser extends Parser {
28
18
  * - The parser has not yet had a language assigned with {@link Parser#setLanguage}.
29
19
  * - The progress callback returned true.
30
20
  */
31
- parse(inputString: any, oldTree?: Tree | null, options?: ParseOptions): ExtendedTree | null;
21
+ parse(code: string | ParseCallback, oldTree: Tree | null, options: ParseOptions): Tree | null;
22
+ }
23
+ /**
24
+ * Creates and returns a new parser instance, loading a language from a WebAssembly binary or file path.
25
+ * Optionally, the parser can be configured to disable soft nodes.
26
+ *
27
+ * @async
28
+ * @param {Uint8Array|string} wasmUint8ArrayOrFilePath - The WebAssembly binary as a `Uint8Array` or a file path to load the language.
29
+ * @param {Object} [options] - Optional configuration options.
30
+ * @param {boolean} [options.disableSoftNodes=false] - Whether to disable soft nodes in the parser (default is `false`).
31
+ * @returns {Promise<ExtendedParser>} A promise that resolves to the created parser instance.
32
+ */
33
+ interface Options {
34
+ disableSoftNodes?: boolean;
35
+ moduleOptions?: Object;
32
36
  }
33
- import { Parser } from "../tree_sitter/parser.js";
34
- import { Tree } from "../tree_sitter/tree.js";
35
- import { ExtendedTree } from "./node_extended.js";
37
+ export declare function createParser(wasmUint8Array: Uint8Array, { disableSoftNodes, moduleOptions }?: Options): Promise<ExtendedParser>;
36
38
  export {};
37
39
  //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/extended/parser.ts"],"names":[],"mappings":"AAMA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,MAAM,EACN,IAAI,EACL,MAAM,iBAAiB,CAAC;AAGzB,cAAM,cAAe,SAAQ,MAAM;IACjC,gBAAgB,UAAS;IAEzB;;;;;;;;;;;;;;;OAeG;IACM,KAAK,CACZ,IAAI,EAAE,MAAM,GAAG,aAAa,EAC5B,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,OAAO,EAAE,YAAY;CAuBxB;AAID;;;;;;;;;GASG;AACH,UAAU,OAAO;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,UAAU,EAC1B,EAAE,gBAAwB,EAAE,aAAa,EAAE,GAAE,OAAY,2BAa1D"}