@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.
- package/README.md +1 -2
- package/esm/{deno-tree-sitter/main/extended → extended}/base_node.d.ts +9 -12
- package/esm/extended/base_node.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/base_node.js +14 -14
- package/esm/extended/base_node.js.map +1 -0
- package/esm/extended/node_extended.d.ts +243 -0
- package/esm/extended/node_extended.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/node_extended.js +196 -186
- package/esm/extended/node_extended.js.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/parser.d.ts +19 -17
- package/esm/extended/parser.d.ts.map +1 -0
- package/esm/extended/parser.js +61 -0
- package/esm/extended/parser.js.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/soft_node.d.ts +4 -3
- package/esm/extended/soft_node.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/soft_node.js +1 -1
- package/esm/extended/soft_node.js.map +1 -0
- package/esm/extended/soft_text_node.d.ts +9 -0
- package/esm/extended/soft_text_node.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/soft_text_node.js +2 -2
- package/esm/extended/soft_text_node.js.map +1 -0
- package/esm/extended/whitespace_node.d.ts +9 -0
- package/esm/extended/whitespace_node.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extended → extended}/whitespace_node.js +2 -2
- package/esm/extended/whitespace_node.js.map +1 -0
- package/esm/extras/misc.d.ts +2 -0
- package/esm/extras/misc.d.ts.map +1 -0
- package/esm/{deno-tree-sitter/main/extras → extras}/misc.js +2 -2
- package/esm/extras/misc.js.map +1 -0
- package/esm/mod.d.ts +1 -6
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -7
- package/esm/mod.js.map +1 -1
- package/package.json +4 -1
- package/src/extended/base_node.ts +175 -0
- package/src/extended/node_extended.ts +651 -0
- package/src/extended/parser.ts +96 -0
- package/src/extended/soft_node.ts +32 -0
- package/src/extended/soft_text_node.ts +11 -0
- package/src/extended/whitespace_node.ts +11 -0
- package/src/extras/misc.ts +15 -0
- package/src/mod.ts +1 -8
- package/esm/deno-tree-sitter/main/extended/base_node.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/base_node.js.map +0 -1
- package/esm/deno-tree-sitter/main/extended/node_extended.d.ts +0 -237
- package/esm/deno-tree-sitter/main/extended/node_extended.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/node_extended.js.map +0 -1
- package/esm/deno-tree-sitter/main/extended/parser.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/parser.js +0 -87
- package/esm/deno-tree-sitter/main/extended/parser.js.map +0 -1
- package/esm/deno-tree-sitter/main/extended/soft_node.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/soft_node.js.map +0 -1
- package/esm/deno-tree-sitter/main/extended/soft_text_node.d.ts +0 -10
- package/esm/deno-tree-sitter/main/extended/soft_text_node.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/soft_text_node.js.map +0 -1
- package/esm/deno-tree-sitter/main/extended/whitespace_node.d.ts +0 -10
- package/esm/deno-tree-sitter/main/extended/whitespace_node.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extended/whitespace_node.js.map +0 -1
- package/esm/deno-tree-sitter/main/extras/misc.d.ts +0 -2
- package/esm/deno-tree-sitter/main/extras/misc.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/extras/misc.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/bindings.d.ts +0 -14
- package/esm/deno-tree-sitter/main/tree_sitter/bindings.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/bindings.js +0 -22
- package/esm/deno-tree-sitter/main/tree_sitter/bindings.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/constants.d.ts +0 -60
- package/esm/deno-tree-sitter/main/tree_sitter/constants.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/constants.js +0 -67
- package/esm/deno-tree-sitter/main/tree_sitter/constants.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/language.d.ts +0 -137
- package/esm/deno-tree-sitter/main/tree_sitter/language.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/language.js +0 -265
- package/esm/deno-tree-sitter/main/tree_sitter/language.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.d.ts +0 -41
- package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js +0 -66
- package/esm/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/marshal.d.ts +0 -85
- package/esm/deno-tree-sitter/main/tree_sitter/marshal.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/marshal.js +0 -174
- package/esm/deno-tree-sitter/main/tree_sitter/marshal.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/node.d.ts +0 -260
- package/esm/deno-tree-sitter/main/tree_sitter/node.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/node.js +0 -558
- package/esm/deno-tree-sitter/main/tree_sitter/node.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/parser.d.ts +0 -124
- package/esm/deno-tree-sitter/main/tree_sitter/parser.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/parser.js +0 -253
- package/esm/deno-tree-sitter/main/tree_sitter/parser.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/query.d.ts +0 -134
- package/esm/deno-tree-sitter/main/tree_sitter/query.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/query.js +0 -621
- package/esm/deno-tree-sitter/main/tree_sitter/query.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/tree.d.ts +0 -49
- package/esm/deno-tree-sitter/main/tree_sitter/tree.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/tree.js +0 -131
- package/esm/deno-tree-sitter/main/tree_sitter/tree.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.d.ts +0 -165
- package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.js +0 -281
- package/esm/deno-tree-sitter/main/tree_sitter/tree_cursor.js.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter_wasm.d.ts +0 -3
- package/esm/deno-tree-sitter/main/tree_sitter_wasm.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/tree_sitter_wasm.js +0 -0
- package/esm/deno-tree-sitter/main/tree_sitter_wasm.js.map +0 -1
- package/esm/deno-tree-sitter/main/wasm_loader.d.ts +0 -29
- package/esm/deno-tree-sitter/main/wasm_loader.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/wasm_loader.js +0 -1703
- package/esm/deno-tree-sitter/main/wasm_loader.js.map +0 -1
- package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.d.ts +0 -3
- package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.d.ts.map +0 -1
- package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.js +0 -9
- package/esm/deno-tree-sitter/main/wasm_loader_with_defaults.js.map +0 -1
- package/src/deno-tree-sitter/main/extended/base_node.js +0 -174
- package/src/deno-tree-sitter/main/extended/node_extended.js +0 -588
- package/src/deno-tree-sitter/main/extended/parser.js +0 -87
- package/src/deno-tree-sitter/main/extended/soft_node.js +0 -32
- package/src/deno-tree-sitter/main/extended/soft_text_node.js +0 -11
- package/src/deno-tree-sitter/main/extended/whitespace_node.js +0 -11
- package/src/deno-tree-sitter/main/extras/misc.js +0 -12
- package/src/deno-tree-sitter/main/tree_sitter/bindings.js +0 -26
- package/src/deno-tree-sitter/main/tree_sitter/constants.js +0 -79
- package/src/deno-tree-sitter/main/tree_sitter/language.js +0 -289
- package/src/deno-tree-sitter/main/tree_sitter/lookahead_iterator.js +0 -74
- package/src/deno-tree-sitter/main/tree_sitter/marshal.js +0 -186
- package/src/deno-tree-sitter/main/tree_sitter/node.js +0 -616
- package/src/deno-tree-sitter/main/tree_sitter/parser.js +0 -273
- package/src/deno-tree-sitter/main/tree_sitter/query.js +0 -705
- package/src/deno-tree-sitter/main/tree_sitter/tree.js +0 -145
- package/src/deno-tree-sitter/main/tree_sitter/tree_cursor.js +0 -314
- package/src/deno-tree-sitter/main/tree_sitter_wasm.js +0 -0
- package/src/deno-tree-sitter/main/wasm_loader.js +0 -1702
- package/src/deno-tree-sitter/main/wasm_loader_with_defaults.js +0 -9
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { Node } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { _getQueryCaptureTargets } from
|
|
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,
|
|
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,
|
|
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 ==
|
|
22
|
+
if (key == 'startIndex' || key == 'startPosition') {
|
|
24
23
|
continue;
|
|
25
24
|
}
|
|
26
|
-
else if (key ==
|
|
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 ==
|
|
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, [{
|
|
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
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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 ==
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
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
|
|
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
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
|
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(
|
|
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, () => ({
|
|
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, () => ({
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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"}
|