mcp-codebase-intelligence 0.1.0 → 0.3.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 (40) hide show
  1. package/README.md +97 -16
  2. package/dist/graph/code-graph.d.ts +16 -0
  3. package/dist/graph/code-graph.js +30 -4
  4. package/dist/graph/code-graph.js.map +1 -1
  5. package/dist/graph/schema.js +1 -0
  6. package/dist/graph/schema.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +61 -60
  9. package/dist/index.js.map +1 -1
  10. package/dist/indexer/docstring-extractor.d.ts +7 -0
  11. package/dist/indexer/docstring-extractor.js +118 -0
  12. package/dist/indexer/docstring-extractor.js.map +1 -0
  13. package/dist/indexer/file-watcher.d.ts +2 -2
  14. package/dist/indexer/file-watcher.js +24 -15
  15. package/dist/indexer/file-watcher.js.map +1 -1
  16. package/dist/indexer/lang-cpp.d.ts +3 -0
  17. package/dist/indexer/lang-cpp.js +469 -0
  18. package/dist/indexer/lang-cpp.js.map +1 -0
  19. package/dist/indexer/lang-go.js +4 -0
  20. package/dist/indexer/lang-go.js.map +1 -1
  21. package/dist/indexer/lang-java.js +4 -0
  22. package/dist/indexer/lang-java.js.map +1 -1
  23. package/dist/indexer/lang-python.js +3 -0
  24. package/dist/indexer/lang-python.js.map +1 -1
  25. package/dist/indexer/lang-rust.js +5 -0
  26. package/dist/indexer/lang-rust.js.map +1 -1
  27. package/dist/indexer/tree-sitter-indexer.js +5 -0
  28. package/dist/indexer/tree-sitter-indexer.js.map +1 -1
  29. package/dist/project-manager.d.ts +63 -0
  30. package/dist/project-manager.js +479 -0
  31. package/dist/project-manager.js.map +1 -0
  32. package/dist/tools/find-symbol.js +2 -1
  33. package/dist/tools/find-symbol.js.map +1 -1
  34. package/dist/tools/project-tools.d.ts +38 -0
  35. package/dist/tools/project-tools.js +72 -0
  36. package/dist/tools/project-tools.js.map +1 -0
  37. package/dist/tools/search-codebase.d.ts +39 -0
  38. package/dist/tools/search-codebase.js +59 -0
  39. package/dist/tools/search-codebase.js.map +1 -0
  40. package/package.json +8 -6
@@ -0,0 +1,469 @@
1
+ import Parser from "tree-sitter";
2
+ import C from "tree-sitter-c";
3
+ import Cpp from "tree-sitter-cpp";
4
+ import { registerLanguage } from "./language-plugin.js";
5
+ import { bareName } from "./tree-sitter-indexer.js";
6
+ import { getPrecedingComment } from "./docstring-extractor.js";
7
+ const cParser = new Parser();
8
+ cParser.setLanguage(C);
9
+ const cppParser = new Parser();
10
+ cppParser.setLanguage(Cpp);
11
+ function getCppParser(filePath) {
12
+ // C files use .c and .h extensions
13
+ // C++ files use .cpp, .cc, .cxx, .hpp, .hxx, .hh extensions
14
+ return filePath.endsWith(".c") || (filePath.endsWith(".h") && !filePath.endsWith(".hh"))
15
+ ? cParser
16
+ : cppParser;
17
+ }
18
+ function isPublicCpp(node) {
19
+ // Check if node has public: access specifier
20
+ // In C++, class members are private by default, struct members are public by default
21
+ let parent = node.parent;
22
+ while (parent) {
23
+ if (parent.type === "field_declaration_list") {
24
+ // Check for access specifier before this node
25
+ for (let i = 0; i < parent.childCount; i++) {
26
+ const child = parent.child(i);
27
+ if (child === node)
28
+ break;
29
+ if (child?.type === "access_specifier") {
30
+ const text = child.text;
31
+ if (text === "public:" || text === "public")
32
+ return true;
33
+ if (text === "private:" || text === "private")
34
+ return false;
35
+ if (text === "protected:" || text === "protected")
36
+ return false;
37
+ }
38
+ }
39
+ // If in struct, default is public; if in class, default is private
40
+ const grandParent = parent.parent;
41
+ if (grandParent?.type === "struct_specifier")
42
+ return true;
43
+ if (grandParent?.type === "class_specifier")
44
+ return false;
45
+ break;
46
+ }
47
+ parent = parent.parent;
48
+ }
49
+ return true; // Default for top-level declarations
50
+ }
51
+ function isExportedC(node) {
52
+ // In C, everything non-static is exported
53
+ // Check for "static" storage class specifier
54
+ for (let i = 0; i < node.childCount; i++) {
55
+ const child = node.child(i);
56
+ if (child?.type === "storage_class_specifier" && child.text === "static") {
57
+ return false;
58
+ }
59
+ }
60
+ return true;
61
+ }
62
+ function extractFunctionSignature(node, isCpp) {
63
+ const declarator = node.childForFieldName("declarator");
64
+ if (!declarator)
65
+ return undefined;
66
+ // Extract function name from declarator
67
+ const funcDeclarator = findFunctionDeclarator(declarator);
68
+ if (!funcDeclarator)
69
+ return undefined;
70
+ const nameNode = funcDeclarator.childForFieldName("declarator");
71
+ const name = nameNode ? extractIdentifierName(nameNode) : "";
72
+ const params = funcDeclarator.childForFieldName("parameters")?.text ?? "()";
73
+ // Extract return type
74
+ const typeNode = node.childForFieldName("type");
75
+ const returnType = typeNode?.text ?? "";
76
+ return `${returnType} ${name}${params}`.trim();
77
+ }
78
+ function findFunctionDeclarator(node) {
79
+ if (node.type === "function_declarator")
80
+ return node;
81
+ for (let i = 0; i < node.childCount; i++) {
82
+ const child = node.child(i);
83
+ if (child) {
84
+ const result = findFunctionDeclarator(child);
85
+ if (result)
86
+ return result;
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ function extractIdentifierName(node) {
92
+ if (node.type === "identifier" || node.type === "field_identifier")
93
+ return node.text;
94
+ if (node.type === "qualified_identifier") {
95
+ const name = node.childForFieldName("name");
96
+ return name?.text ?? node.text;
97
+ }
98
+ if (node.type === "destructor_name") {
99
+ return node.text;
100
+ }
101
+ if (node.type === "operator_name") {
102
+ return node.text;
103
+ }
104
+ // Recurse to find identifier
105
+ for (let i = 0; i < node.childCount; i++) {
106
+ const child = node.child(i);
107
+ if (child?.type === "identifier" || child?.type === "field_identifier") {
108
+ return child.text;
109
+ }
110
+ }
111
+ return node.text;
112
+ }
113
+ function walkCpp(node, filePath, symbols, references, imports, parentIndex) {
114
+ const isCpp = !filePath.endsWith(".c") && !filePath.endsWith(".h");
115
+ switch (node.type) {
116
+ case "function_definition": {
117
+ const declarator = node.childForFieldName("declarator");
118
+ if (declarator) {
119
+ const funcDeclarator = findFunctionDeclarator(declarator);
120
+ const nameNode = funcDeclarator?.childForFieldName("declarator");
121
+ if (nameNode) {
122
+ const name = extractIdentifierName(nameNode);
123
+ const sym = {
124
+ name,
125
+ kind: "function",
126
+ filePath,
127
+ lineStart: node.startPosition.row + 1,
128
+ lineEnd: node.endPosition.row + 1,
129
+ colStart: node.startPosition.column,
130
+ colEnd: node.endPosition.column,
131
+ parentSymbolId: parentIndex,
132
+ isExported: isCpp ? isPublicCpp(node) : isExportedC(node),
133
+ signature: extractFunctionSignature(node, isCpp),
134
+ docstring: getPrecedingComment(node),
135
+ };
136
+ const idx = symbols.length;
137
+ symbols.push(sym);
138
+ walkCppChildren(node, filePath, symbols, references, imports, idx);
139
+ return;
140
+ }
141
+ }
142
+ break;
143
+ }
144
+ case "declaration": {
145
+ // Handle function declarations (prototypes)
146
+ const declarator = node.childForFieldName("declarator");
147
+ if (declarator) {
148
+ const funcDeclarator = findFunctionDeclarator(declarator);
149
+ if (funcDeclarator) {
150
+ const nameNode = funcDeclarator.childForFieldName("declarator");
151
+ if (nameNode) {
152
+ const name = extractIdentifierName(nameNode);
153
+ symbols.push({
154
+ name,
155
+ kind: "function",
156
+ filePath,
157
+ lineStart: node.startPosition.row + 1,
158
+ lineEnd: node.endPosition.row + 1,
159
+ colStart: node.startPosition.column,
160
+ colEnd: node.endPosition.column,
161
+ parentSymbolId: parentIndex,
162
+ isExported: isCpp ? isPublicCpp(node) : isExportedC(node),
163
+ signature: extractFunctionSignature(node, isCpp),
164
+ });
165
+ return;
166
+ }
167
+ }
168
+ }
169
+ break;
170
+ }
171
+ case "struct_specifier":
172
+ case "union_specifier": {
173
+ const nameNode = node.childForFieldName("name");
174
+ if (nameNode) {
175
+ const sym = {
176
+ name: nameNode.text,
177
+ kind: "class",
178
+ filePath,
179
+ lineStart: node.startPosition.row + 1,
180
+ lineEnd: node.endPosition.row + 1,
181
+ colStart: node.startPosition.column,
182
+ colEnd: node.endPosition.column,
183
+ parentSymbolId: parentIndex,
184
+ isExported: isCpp ? isPublicCpp(node) : isExportedC(node),
185
+ signature: `${node.type === "struct_specifier" ? "struct" : "union"} ${nameNode.text}`,
186
+ docstring: getPrecedingComment(node),
187
+ };
188
+ const idx = symbols.length;
189
+ symbols.push(sym);
190
+ walkCppChildren(node, filePath, symbols, references, imports, idx);
191
+ return;
192
+ }
193
+ break;
194
+ }
195
+ case "class_specifier": {
196
+ const nameNode = node.childForFieldName("name");
197
+ if (nameNode) {
198
+ const sym = {
199
+ name: nameNode.text,
200
+ kind: "class",
201
+ filePath,
202
+ lineStart: node.startPosition.row + 1,
203
+ lineEnd: node.endPosition.row + 1,
204
+ colStart: node.startPosition.column,
205
+ colEnd: node.endPosition.column,
206
+ parentSymbolId: parentIndex,
207
+ isExported: isExportedC(node),
208
+ signature: `class ${nameNode.text}`,
209
+ docstring: getPrecedingComment(node),
210
+ };
211
+ const idx = symbols.length;
212
+ symbols.push(sym);
213
+ // Extract base classes (inheritance)
214
+ // base_class_clause is a direct child of class_specifier, not a field
215
+ for (let i = 0; i < node.namedChildCount; i++) {
216
+ const child = node.namedChild(i);
217
+ if (child?.type === "base_class_clause") {
218
+ // base_class_clause contains access_specifier + type_identifier children
219
+ for (let j = 0; j < child.namedChildCount; j++) {
220
+ const baseChild = child.namedChild(j);
221
+ if (baseChild?.type === "type_identifier" || baseChild?.type === "qualified_identifier") {
222
+ const baseName = baseChild.text;
223
+ references.push({
224
+ fromSymbolId: idx,
225
+ toSymbolName: baseName,
226
+ toSymbolBareName: bareName(baseName),
227
+ kind: "extends",
228
+ line: baseChild.startPosition.row + 1,
229
+ col: baseChild.startPosition.column,
230
+ });
231
+ }
232
+ }
233
+ }
234
+ }
235
+ walkCppChildren(node, filePath, symbols, references, imports, idx);
236
+ return;
237
+ }
238
+ break;
239
+ }
240
+ case "enum_specifier": {
241
+ const nameNode = node.childForFieldName("name");
242
+ // Only extract enum definitions (with body), not enum type references in parameters
243
+ const hasBody = node.childForFieldName("body") !== null ||
244
+ node.namedChildren.some(c => c.type === "enumerator_list");
245
+ if (nameNode && hasBody) {
246
+ symbols.push({
247
+ name: nameNode.text,
248
+ kind: "enum",
249
+ filePath,
250
+ lineStart: node.startPosition.row + 1,
251
+ lineEnd: node.endPosition.row + 1,
252
+ colStart: node.startPosition.column,
253
+ colEnd: node.endPosition.column,
254
+ parentSymbolId: parentIndex,
255
+ isExported: isCpp ? isPublicCpp(node) : isExportedC(node),
256
+ signature: `enum ${nameNode.text}`,
257
+ });
258
+ }
259
+ return; // don't walk children — avoids double-counting from parent declaration
260
+ }
261
+ case "namespace_definition": {
262
+ const nameNode = node.childForFieldName("name");
263
+ if (nameNode && isCpp) {
264
+ const sym = {
265
+ name: nameNode.text,
266
+ kind: "variable",
267
+ filePath,
268
+ lineStart: node.startPosition.row + 1,
269
+ lineEnd: node.endPosition.row + 1,
270
+ colStart: node.startPosition.column,
271
+ colEnd: node.endPosition.column,
272
+ parentSymbolId: parentIndex,
273
+ isExported: true,
274
+ signature: `namespace ${nameNode.text}`,
275
+ };
276
+ const idx = symbols.length;
277
+ symbols.push(sym);
278
+ walkCppChildren(node, filePath, symbols, references, imports, idx);
279
+ return;
280
+ }
281
+ break;
282
+ }
283
+ case "type_definition": {
284
+ // typedef or using alias
285
+ const declarator = node.childForFieldName("declarator");
286
+ if (declarator) {
287
+ const name = extractIdentifierName(declarator);
288
+ if (name) {
289
+ symbols.push({
290
+ name,
291
+ kind: "type",
292
+ filePath,
293
+ lineStart: node.startPosition.row + 1,
294
+ lineEnd: node.endPosition.row + 1,
295
+ colStart: node.startPosition.column,
296
+ colEnd: node.endPosition.column,
297
+ parentSymbolId: parentIndex,
298
+ isExported: isCpp ? isPublicCpp(node) : isExportedC(node),
299
+ });
300
+ }
301
+ }
302
+ break;
303
+ }
304
+ case "alias_declaration": {
305
+ // C++ using alias
306
+ const nameNode = node.childForFieldName("name");
307
+ if (nameNode && isCpp) {
308
+ symbols.push({
309
+ name: nameNode.text,
310
+ kind: "type",
311
+ filePath,
312
+ lineStart: node.startPosition.row + 1,
313
+ lineEnd: node.endPosition.row + 1,
314
+ colStart: node.startPosition.column,
315
+ colEnd: node.endPosition.column,
316
+ parentSymbolId: parentIndex,
317
+ isExported: true,
318
+ });
319
+ }
320
+ break;
321
+ }
322
+ case "field_declaration": {
323
+ // Struct/class member (method or field)
324
+ const declarator = node.childForFieldName("declarator");
325
+ if (declarator && parentIndex !== undefined) {
326
+ const funcDeclarator = findFunctionDeclarator(declarator);
327
+ if (funcDeclarator) {
328
+ // Method declaration
329
+ const nameNode = funcDeclarator.childForFieldName("declarator");
330
+ if (nameNode) {
331
+ const name = extractIdentifierName(nameNode);
332
+ symbols.push({
333
+ name,
334
+ kind: "method",
335
+ filePath,
336
+ lineStart: node.startPosition.row + 1,
337
+ lineEnd: node.endPosition.row + 1,
338
+ colStart: node.startPosition.column,
339
+ colEnd: node.endPosition.column,
340
+ parentSymbolId: parentIndex,
341
+ isExported: false,
342
+ signature: extractFunctionSignature(node, isCpp),
343
+ });
344
+ }
345
+ }
346
+ else {
347
+ // Field
348
+ const name = extractIdentifierName(declarator);
349
+ if (name) {
350
+ symbols.push({
351
+ name,
352
+ kind: "property",
353
+ filePath,
354
+ lineStart: node.startPosition.row + 1,
355
+ lineEnd: node.endPosition.row + 1,
356
+ colStart: node.startPosition.column,
357
+ colEnd: node.endPosition.column,
358
+ parentSymbolId: parentIndex,
359
+ isExported: false,
360
+ });
361
+ }
362
+ }
363
+ }
364
+ break;
365
+ }
366
+ case "preproc_include": {
367
+ // #include <stdio.h> or #include "myfile.h"
368
+ const pathNode = node.childForFieldName("path");
369
+ if (pathNode) {
370
+ const includePath = pathNode.text.replace(/[<>"]/g, "");
371
+ imports.push({
372
+ sourcePath: includePath,
373
+ importedName: bareName(includePath),
374
+ localName: bareName(includePath),
375
+ isDefault: false,
376
+ isNamespace: true,
377
+ line: node.startPosition.row + 1,
378
+ });
379
+ }
380
+ return;
381
+ }
382
+ case "call_expression": {
383
+ const func = node.childForFieldName("function");
384
+ if (func && parentIndex !== undefined) {
385
+ const name = extractIdentifierName(func);
386
+ references.push({
387
+ fromSymbolId: parentIndex,
388
+ toSymbolName: name,
389
+ toSymbolBareName: bareName(name),
390
+ kind: "call",
391
+ line: node.startPosition.row + 1,
392
+ col: node.startPosition.column,
393
+ });
394
+ }
395
+ break;
396
+ }
397
+ case "new_expression": {
398
+ // C++ new operator: new Foo()
399
+ const typeNode = node.childForFieldName("type");
400
+ if (typeNode && parentIndex !== undefined && isCpp) {
401
+ const typeName = extractIdentifierName(typeNode);
402
+ references.push({
403
+ fromSymbolId: parentIndex,
404
+ toSymbolName: typeName,
405
+ toSymbolBareName: bareName(typeName),
406
+ kind: "instantiation",
407
+ line: node.startPosition.row + 1,
408
+ col: node.startPosition.column,
409
+ });
410
+ }
411
+ break;
412
+ }
413
+ case "declaration": {
414
+ // Variable declarations that might be struct/class instantiations
415
+ // Example: MyClass obj; or MyClass* ptr = new MyClass();
416
+ const typeNode = node.childForFieldName("type");
417
+ if (typeNode && parentIndex !== undefined) {
418
+ const typeName = extractIdentifierName(typeNode);
419
+ // Only track user-defined types (not primitives like int, char, etc.)
420
+ if (!isPrimitiveType(typeName)) {
421
+ references.push({
422
+ fromSymbolId: parentIndex,
423
+ toSymbolName: typeName,
424
+ toSymbolBareName: bareName(typeName),
425
+ kind: "instantiation",
426
+ line: node.startPosition.row + 1,
427
+ col: node.startPosition.column,
428
+ });
429
+ }
430
+ }
431
+ break;
432
+ }
433
+ }
434
+ walkCppChildren(node, filePath, symbols, references, imports, parentIndex);
435
+ }
436
+ function isPrimitiveType(typeName) {
437
+ const primitives = new Set([
438
+ "void", "char", "short", "int", "long", "float", "double",
439
+ "bool", "signed", "unsigned", "auto", "const", "volatile",
440
+ "static", "extern", "register", "inline", "typedef",
441
+ "size_t", "ptrdiff_t", "wchar_t", "nullptr_t",
442
+ ]);
443
+ return primitives.has(typeName);
444
+ }
445
+ function walkCppChildren(node, filePath, symbols, references, imports, parentIndex) {
446
+ for (let i = 0; i < node.namedChildCount; i++) {
447
+ const child = node.namedChild(i);
448
+ if (child) {
449
+ walkCpp(child, filePath, symbols, references, imports, parentIndex);
450
+ }
451
+ }
452
+ }
453
+ // Register C language plugin
454
+ export const cPlugin = {
455
+ id: "c",
456
+ extensions: [".c", ".h"],
457
+ getParser: () => cParser,
458
+ walk: walkCpp,
459
+ };
460
+ // Register C++ language plugin
461
+ export const cppPlugin = {
462
+ id: "cpp",
463
+ extensions: [".cpp", ".cc", ".cxx", ".hpp", ".hxx", ".hh"],
464
+ getParser: () => cppParser,
465
+ walk: walkCpp,
466
+ };
467
+ registerLanguage(cPlugin);
468
+ registerLanguage(cppPlugin);
469
+ //# sourceMappingURL=lang-cpp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lang-cpp.js","sourceRoot":"","sources":["../../src/indexer/lang-cpp.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import Parser from "tree-sitter";
2
2
  import Go from "tree-sitter-go";
3
3
  import { registerLanguage } from "./language-plugin.js";
4
4
  import { bareName } from "./tree-sitter-indexer.js";
5
+ import { getPrecedingComment } from "./docstring-extractor.js";
5
6
  const goParser = new Parser();
6
7
  goParser.setLanguage(Go);
7
8
  function extractGoFuncSignature(node) {
@@ -31,6 +32,7 @@ function walkGo(node, filePath, symbols, references, imports, parentIndex) {
31
32
  parentSymbolId: parentIndex,
32
33
  isExported: isExportedGo(nameNode.text),
33
34
  signature: extractGoFuncSignature(node),
35
+ docstring: getPrecedingComment(node),
34
36
  };
35
37
  const idx = symbols.length;
36
38
  symbols.push(sym);
@@ -68,6 +70,7 @@ function walkGo(node, filePath, symbols, references, imports, parentIndex) {
68
70
  parentSymbolId: parentIndex,
69
71
  isExported: isExportedGo(nameNode.text),
70
72
  signature: receiverType ? `(${receiverType}) ${sig}` : sig,
73
+ docstring: getPrecedingComment(node),
71
74
  };
72
75
  const idx = symbols.length;
73
76
  symbols.push(sym);
@@ -98,6 +101,7 @@ function walkGo(node, filePath, symbols, references, imports, parentIndex) {
98
101
  parentSymbolId: parentIndex,
99
102
  isExported: isExportedGo(nameNode.text),
100
103
  signature: `type ${nameNode.text} ${typeNode?.type === "interface_type" ? "interface" : typeNode?.type === "struct_type" ? "struct" : typeNode?.text ?? ""}`,
104
+ docstring: getPrecedingComment(node),
101
105
  };
102
106
  const idx = symbols.length;
103
107
  symbols.push(sym);
@@ -1 +1 @@
1
- {"version":3,"file":"lang-go.js","sourceRoot":"","sources":["../../src/indexer/lang-go.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang-go.js","sourceRoot":"","sources":["../../src/indexer/lang-go.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import Parser from "tree-sitter";
2
2
  import Java from "tree-sitter-java";
3
3
  import { registerLanguage } from "./language-plugin.js";
4
4
  import { bareName } from "./tree-sitter-indexer.js";
5
+ import { getPrecedingComment } from "./docstring-extractor.js";
5
6
  const javaParser = new Parser();
6
7
  javaParser.setLanguage(Java);
7
8
  function hasModifier(node, modifier) {
@@ -46,6 +47,7 @@ function walkJava(node, filePath, symbols, references, imports, parentIndex) {
46
47
  parentSymbolId: parentIndex,
47
48
  isExported: isPublicJava(node),
48
49
  signature: buildClassSignature(node, nameNode.text),
50
+ docstring: getPrecedingComment(node),
49
51
  };
50
52
  const idx = symbols.length;
51
53
  symbols.push(sym);
@@ -105,6 +107,7 @@ function walkJava(node, filePath, symbols, references, imports, parentIndex) {
105
107
  parentSymbolId: parentIndex,
106
108
  isExported: isPublicJava(node),
107
109
  signature: `interface ${nameNode.text}`,
110
+ docstring: getPrecedingComment(node),
108
111
  };
109
112
  const idx = symbols.length;
110
113
  symbols.push(sym);
@@ -156,6 +159,7 @@ function walkJava(node, filePath, symbols, references, imports, parentIndex) {
156
159
  parentSymbolId: parentIndex,
157
160
  isExported: isPublicJava(node),
158
161
  signature: extractJavaMethodSig(node),
162
+ docstring: getPrecedingComment(node),
159
163
  };
160
164
  const idx = symbols.length;
161
165
  symbols.push(sym);