pi-shazam 0.18.2 → 0.19.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.
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../core/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAwB1D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AA0BD;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAKjC;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,GAAE,MAAY,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAGjG;AA8UD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAavF"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../core/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAsD1D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AA0BD;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAOjC;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,GAAE,MAAY,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAGjG;AA8UD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAavF"}
@@ -21,7 +21,33 @@ const MAX_FILES = 20_000;
21
21
  const SOURCE_EXTS = new Set(Object.keys(EXT_TO_LANG));
22
22
  // -- In-memory cache ---------------------------------------------------------
23
23
  let cachedGraph = null;
24
+ /**
25
+ * Cache for existsSync results to avoid repeated syscalls during import resolution.
26
+ * Keyed by absolute path; cleared when scanProject starts fresh.
27
+ */
28
+ let _existsCache = null;
29
+ function existsCached(absPath) {
30
+ if (!_existsCache) {
31
+ _existsCache = new Map();
32
+ }
33
+ const cached = _existsCache.get(absPath);
34
+ if (cached !== undefined)
35
+ return cached;
36
+ const result = existsSync(absPath);
37
+ _existsCache.set(absPath, result);
38
+ return result;
39
+ }
40
+ function clearExistsCache() {
41
+ _existsCache = null;
42
+ }
24
43
  let cachedProjectPath = "";
44
+ let _scannerAdapter = null;
45
+ function getScannerAdapter() {
46
+ if (!_scannerAdapter) {
47
+ _scannerAdapter = new TreeSitterAdapter(() => { });
48
+ }
49
+ return _scannerAdapter;
50
+ }
25
51
  // C3: Module-level project root override. When Pi detects the project in a
26
52
  // subdirectory (ctx.cwd != process.cwd()), index.ts calls setProjectRoot()
27
53
  // so the scanner uses the same root as LSP, not process.cwd().
@@ -62,6 +88,8 @@ export function resetCache() {
62
88
  cachedProjectPath = "";
63
89
  cachedFiles = new Map();
64
90
  _projectRootOverride = null;
91
+ clearExistsCache();
92
+ _scannerAdapter = null;
65
93
  }
66
94
  /**
67
95
  * Get per-file modification times for all source files in the project.
@@ -446,7 +474,7 @@ export function scanProject(projectPath, log) {
446
474
  function _scanProject(projectPath, log) {
447
475
  const root = resolve(projectPath);
448
476
  const logger = log ?? (() => { });
449
- const adapter = new TreeSitterAdapter(logger);
477
+ const adapter = getScannerAdapter();
450
478
  const files = collectSourceFiles(root, MAX_FILES);
451
479
  logger(`Scanned ${files.length} source files`);
452
480
  // Check in-memory cache first (same process, fastest path)
@@ -851,43 +879,181 @@ function addEdge(graph, edge) {
851
879
  }
852
880
  // -- Import resolution ---------------------------------------------------------
853
881
  /**
854
- * Resolve a relative import path to a file path that matches the fileSymbols keys.
855
- * Handles extensionless imports (e.g., "./foo" -> "./foo.ts" or "./foo/index.ts").
856
- * Accepts projectRoot for absolute-path disk validation (fixes #102).
882
+ * Check if any candidate path exists, using graph lookup first then cached disk check.
883
+ */
884
+ function tryCandidate(graph, root, relCandidate) {
885
+ if (graph && graph.fileSymbols.has(relCandidate))
886
+ return relCandidate;
887
+ if (existsCached(join(root, relCandidate)))
888
+ return relCandidate;
889
+ return null;
890
+ }
891
+ /**
892
+ * Resolve a relative or language-specific import path to a file path that matches fileSymbols keys.
893
+ * Handles JS/TS extensionless imports, Python dotted modules, Rust mod declarations,
894
+ * Go relative imports, and Dart package/relative imports.
857
895
  */
858
896
  function resolveImport(importPath, fromFile, root, graph) {
897
+ const fromDir = dirname(fromFile);
898
+ const fromExt = fromFile.slice(fromFile.lastIndexOf(".")).toLowerCase();
899
+ const absRoot = resolve(root);
900
+ // Dart: package: imports map to lib/ directory (standard Dart layout)
901
+ if (importPath.startsWith("package:")) {
902
+ const pkgPath = importPath.slice("package:".length);
903
+ const slashIdx = pkgPath.indexOf("/");
904
+ if (slashIdx > 0) {
905
+ const libRel = `lib/${pkgPath.slice(slashIdx + 1)}`;
906
+ const candidates = [libRel, `${libRel}.dart`];
907
+ for (const c of candidates) {
908
+ const found = tryCandidate(graph, root, c);
909
+ if (found)
910
+ return found;
911
+ }
912
+ }
913
+ return importPath;
914
+ }
915
+ // Relative imports (./ or ../) - cross-language handling
859
916
  if (importPath.startsWith(".")) {
860
- const fromDir = dirname(fromFile);
861
- let resolved = join(fromDir, importPath);
862
- const candidates = [
863
- resolved,
864
- `${resolved}.ts`,
865
- `${resolved}.tsx`,
866
- `${resolved}.js`,
867
- `${resolved}.jsx`,
868
- `${resolved}.mjs`,
869
- `${resolved}.cjs`,
870
- `${resolved}.mts`,
871
- `${resolved}.cts`,
872
- `${resolved}/index.ts`,
873
- `${resolved}/index.tsx`,
874
- `${resolved}/index.js`,
917
+ const resolved = join(fromDir, importPath);
918
+ // JS/TS candidates
919
+ if ([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"].includes(fromExt) || fromExt === "") {
920
+ const jsCandidates = [
921
+ resolved,
922
+ `${resolved}.ts`,
923
+ `${resolved}.tsx`,
924
+ `${resolved}.js`,
925
+ `${resolved}.jsx`,
926
+ `${resolved}.mjs`,
927
+ `${resolved}.cjs`,
928
+ `${resolved}.mts`,
929
+ `${resolved}.cts`,
930
+ `${resolved}/index.ts`,
931
+ `${resolved}/index.tsx`,
932
+ `${resolved}/index.js`,
933
+ ];
934
+ for (const c of jsCandidates) {
935
+ const found = tryCandidate(graph, root, c);
936
+ if (found)
937
+ return found;
938
+ }
939
+ return jsCandidates[0];
940
+ }
941
+ // Python relative import: from .foo import bar or from .. import baz
942
+ if (fromExt === ".py") {
943
+ const pyCandidates = [`${resolved}.py`, join(resolved, "__init__.py")];
944
+ for (const c of pyCandidates) {
945
+ const found = tryCandidate(graph, root, c);
946
+ if (found)
947
+ return found;
948
+ }
949
+ return pyCandidates[0];
950
+ }
951
+ // Rust relative mod/use: typically resolved through module system,
952
+ // but `super::` paths are parent-relative. Try direct file match.
953
+ if (fromExt === ".rs") {
954
+ const rsCandidates = [`${resolved}.rs`, join(resolved, "mod.rs")];
955
+ for (const c of rsCandidates) {
956
+ const found = tryCandidate(graph, root, c);
957
+ if (found)
958
+ return found;
959
+ }
960
+ return rsCandidates[0];
961
+ }
962
+ // Go relative imports
963
+ if (fromExt === ".go") {
964
+ const goFile = `${resolved}.go`;
965
+ const found = tryCandidate(graph, root, goFile);
966
+ if (found)
967
+ return found;
968
+ // Directory-based package (look for .go files in dir)
969
+ if (existsCached(join(absRoot, resolved))) {
970
+ return resolved;
971
+ }
972
+ return goFile;
973
+ }
974
+ // Dart relative imports
975
+ if (fromExt === ".dart") {
976
+ const dartCandidates = [resolved, `${resolved}.dart`];
977
+ for (const c of dartCandidates) {
978
+ const found = tryCandidate(graph, root, c);
979
+ if (found)
980
+ return found;
981
+ }
982
+ return dartCandidates[0];
983
+ }
984
+ return resolved;
985
+ }
986
+ // Python dotted import: foo.bar.baz -> foo/bar/baz.py or foo/bar/baz/__init__.py
987
+ if (fromExt === ".py" && /^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*$/.test(importPath)) {
988
+ const relPath = importPath.replace(/\./g, "/");
989
+ // Check if we're in a src/ layout by looking for src/ or the import from project root
990
+ const pyCandidates = [
991
+ `${relPath}.py`,
992
+ join(relPath, "__init__.py"),
993
+ join("src", `${relPath}.py`),
994
+ join("src", relPath, "__init__.py"),
875
995
  ];
876
- if (graph) {
996
+ for (const c of pyCandidates) {
997
+ const found = tryCandidate(graph, root, c);
998
+ if (found)
999
+ return found;
1000
+ }
1001
+ return pyCandidates[0];
1002
+ }
1003
+ // Rust mod X; -> X.rs or X/mod.rs (sibling to current file's directory)
1004
+ // Rust crate:: paths: crate::foo::bar -> src/foo/bar.rs relative to crate root
1005
+ if (fromExt === ".rs") {
1006
+ if (importPath.startsWith("crate::")) {
1007
+ // Find crate root (directory containing Cargo.toml) by walking up
1008
+ const cratePath = importPath.slice("crate::".length).replace(/::/g, "/");
1009
+ let crateRoot = fromDir;
1010
+ while (crateRoot !== ".") {
1011
+ if (existsCached(join(root, crateRoot, "Cargo.toml")))
1012
+ break;
1013
+ const parent = dirname(crateRoot);
1014
+ if (parent === crateRoot)
1015
+ break;
1016
+ crateRoot = parent;
1017
+ }
1018
+ const candidates = [`${crateRoot}/${cratePath}.rs`, `${crateRoot}/${cratePath}/mod.rs`];
1019
+ for (const c of candidates) {
1020
+ const found = tryCandidate(graph, root, c);
1021
+ if (found)
1022
+ return found;
1023
+ }
1024
+ return candidates[0];
1025
+ }
1026
+ // mod X; or use X::Y without crate:: - try sibling module (X.rs or X/mod.rs)
1027
+ if (!importPath.includes("::") && /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(importPath)) {
1028
+ const candidates = [join(fromDir, `${importPath}.rs`), join(fromDir, importPath, "mod.rs")];
877
1029
  for (const c of candidates) {
878
- if (graph.fileSymbols.has(c))
879
- return c;
1030
+ const found = tryCandidate(graph, root, c);
1031
+ if (found)
1032
+ return found;
880
1033
  }
1034
+ return candidates[0];
881
1035
  }
882
- // Disk validation using absolute paths (root-aware, fixes #102).
883
- for (const c of candidates) {
884
- if (existsSync(join(root, c))) {
885
- return c;
1036
+ // super:: paths
1037
+ if (importPath.startsWith("super::")) {
1038
+ const parentPath = importPath.slice("super::".length).replace(/::/g, "/");
1039
+ const candidates = [join(dirname(fromDir), `${parentPath}.rs`), join(dirname(fromDir), parentPath, "mod.rs")];
1040
+ for (const c of candidates) {
1041
+ const found = tryCandidate(graph, root, c);
1042
+ if (found)
1043
+ return found;
886
1044
  }
1045
+ return candidates[0];
887
1046
  }
888
- // When no candidate exists on disk, return the first candidate.
889
- return candidates[0];
890
1047
  }
1048
+ // Go standard library or external package imports (non-relative) - return as-is
1049
+ if (fromExt === ".go") {
1050
+ return importPath;
1051
+ }
1052
+ // Dart non-relative, non-package imports - return as-is
1053
+ if (fromExt === ".dart") {
1054
+ return importPath;
1055
+ }
1056
+ // Default: return the import path unchanged (JS/TS bare specifiers, external crates, etc.)
891
1057
  return importPath;
892
1058
  }
893
1059
  // -- Symbol lookup helpers ----------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../core/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../core/scanner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"treesitter-queries.d.ts","sourceRoot":"","sources":["../../core/treesitter-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACzB,CAAC,IAAI,EAAE,MAAM,GAAG;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACF;AAED,eAAO,MAAM,OAAO,EAAE,SAuOrB,CAAC"}
1
+ {"version":3,"file":"treesitter-queries.d.ts","sourceRoot":"","sources":["../../core/treesitter-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACzB,CAAC,IAAI,EAAE,MAAM,GAAG;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACF;AAED,eAAO,MAAM,OAAO,EAAE,SA4OrB,CAAC"}
@@ -109,10 +109,10 @@ export const QUERIES = {
109
109
  (mod_item name: (identifier) @name) @definition.module
110
110
  `,
111
111
  import: `\
112
- (use_declaration argument: (scoped_identifier) @full_path)
113
- (use_declaration argument: (scoped_use_list) @full_path)
114
- (extern_crate_declaration name: (identifier) @name)
112
+ (use_declaration argument: (scoped_identifier) @name)
115
113
  (use_declaration argument: (identifier) @name)
114
+ (extern_crate_declaration name: (identifier) @name)
115
+ (mod_item name: (identifier) @name)
116
116
  `,
117
117
  call: `\
118
118
  (call_expression function: (identifier) @name) @reference.call
@@ -209,30 +209,35 @@ export const QUERIES = {
209
209
  html: {},
210
210
  css: {},
211
211
  json: {},
212
- // Dart queries -- based on tree-sitter-dart grammar node types.
213
- // NOTE: tree-sitter-dart grammar currently requires tree-sitter >=0.24.
214
- // With tree-sitter 0.22.4, parser loading fails gracefully (try-catch in
215
- // _loadGrammar). These queries become active when tree-sitter is upgraded.
212
+ // Dart queries -- based on @sengac/tree-sitter-dart grammar node types.
213
+ // NOTE: @sengac/tree-sitter-dart@1.x requires tree-sitter >=0.24 (ABI mismatch
214
+ // with tree-sitter 0.22.4). Parser loading fails gracefully via try-catch in
215
+ // _loadGrammar until tree-sitter is upgraded. Queries are matched against
216
+ // node-types.json in the grammar package and will activate once tree-sitter
217
+ // is upgraded to a compatible version.
216
218
  dart: {
217
219
  function: `\
218
220
  (function_signature name: (identifier) @name) @definition.function
219
- (method_signature name: (identifier) @name) @definition.method
220
221
  (getter_signature name: (identifier) @name) @definition.method
221
222
  (setter_signature name: (identifier) @name) @definition.method
222
223
  (constructor_signature name: (identifier) @name) @definition.method
224
+ (factory_constructor_signature (identifier) @name) @definition.method
225
+ (local_function_declaration (lambda_expression parameters: (function_signature name: (identifier) @name))) @definition.function
223
226
  `,
224
227
  class: `\
225
228
  (class_definition name: (identifier) @name) @definition.class
226
- (mixin_declaration name: (identifier) @name) @definition.class
229
+ (mixin_declaration (identifier) @name) @definition.class
227
230
  (enum_declaration name: (identifier) @name) @definition.class
228
231
  (extension_declaration name: (identifier) @name) @definition.class
229
232
  `,
230
233
  import: `\
231
- (import_specification (uri) @source)
234
+ (import_specification (configurable_uri (uri (string_literal) @source)))
232
235
  `,
233
236
  call: `\
234
- (method_invocation name: (identifier) @name) @reference.call
235
- (method_invocation name: (unconditional_assignable_selector (identifier) @name)) @reference.call
237
+ (constructor_invocation (identifier) @name) @reference.call
238
+ (constructor_invocation (type_identifier) @name) @reference.call
239
+ (new_expression (identifier) @name) @reference.call
240
+ (new_expression (type_identifier) @name) @reference.call
236
241
  `,
237
242
  },
238
243
  };
@@ -1 +1 @@
1
- {"version":3,"file":"treesitter-queries.js","sourceRoot":"","sources":["../../core/treesitter-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,OAAO,GAAc;IACjC,MAAM,EAAE;QACP,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;;;;CAKT;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,UAAU,EAAE;QACX,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;CAER;QACC,MAAM,EAAE;;;;CAIT;QACC,IAAI,EAAE;;;CAGP;QACC,GAAG,EAAE;;;EAGL;KACA;IACD,UAAU,EAAE;QACX,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;;;CAIT;QACC,IAAI,EAAE;;;CAGP;QACC,GAAG,EAAE;;;EAGL;KACA;IACD,EAAE,EAAE;QACH,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;;;;CAOR;QACC,MAAM,EAAE;;;;;CAKT;QACC,IAAI,EAAE;;;;CAIP;KACC;IACD,CAAC,EAAE;QACF,QAAQ,EAAE;;CAEX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;CAEP;KACC;IACD,GAAG,EAAE;QACJ,QAAQ,EAAE;;CAEX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;CAEP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;;CAGT;QACC,IAAI,EAAE;;CAEP;KACC;IACD,OAAO,EAAE;QACR,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;;CAGT;QACC,IAAI,EAAE;;CAEP;KACC;IACD,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,gEAAgE;IAChE,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,EAAE;QACL,QAAQ,EAAE;;;;;;CAMX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;CAGP;KACC;CACD,CAAC;AAEF,0CAA0C;AAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,YAAY,CAAE,CAAC"}
1
+ {"version":3,"file":"treesitter-queries.js","sourceRoot":"","sources":["../../core/treesitter-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,OAAO,GAAc;IACjC,MAAM,EAAE;QACP,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;;;;CAKT;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,UAAU,EAAE;QACX,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;CAER;QACC,MAAM,EAAE;;;;CAIT;QACC,IAAI,EAAE;;;CAGP;QACC,GAAG,EAAE;;;EAGL;KACA;IACD,UAAU,EAAE;QACX,QAAQ,EAAE;;;;;CAKX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;;;CAIT;QACC,IAAI,EAAE;;;CAGP;QACC,GAAG,EAAE;;;EAGL;KACA;IACD,EAAE,EAAE;QACH,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;;;;CAOR;QACC,MAAM,EAAE;;;;;CAKT;QACC,IAAI,EAAE;;;;CAIP;KACC;IACD,CAAC,EAAE;QACF,QAAQ,EAAE;;CAEX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;CAEP;KACC;IACD,GAAG,EAAE;QACJ,QAAQ,EAAE;;CAEX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;CAEP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;CAIR;QACC,MAAM,EAAE;;;CAGT;QACC,IAAI,EAAE;;CAEP;KACC;IACD,OAAO,EAAE;QACR,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;CAGP;KACC;IACD,IAAI,EAAE;QACL,QAAQ,EAAE;;;CAGX;QACC,KAAK,EAAE;;;CAGR;QACC,MAAM,EAAE;;;CAGT;QACC,IAAI,EAAE;;CAEP;KACC;IACD,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,wEAAwE;IACxE,+EAA+E;IAC/E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,uCAAuC;IACvC,IAAI,EAAE;QACL,QAAQ,EAAE;;;;;;;CAOX;QACC,KAAK,EAAE;;;;;CAKR;QACC,MAAM,EAAE;;CAET;QACC,IAAI,EAAE;;;;;CAKP;KACC;CACD,CAAC;AAEF,0CAA0C;AAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,YAAY,CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"treesitter.d.ts","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAW1D,UAAU,IAAI;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,6DAA6D;IAC7D,MAAM,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,UAAU,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CACpD;AAQD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe9C,CAAC;AAOF,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAQ/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAqBlG;AAED,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,GAAG,CAAwB;gBAEvB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAOvC,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,kBAAkB;IA2B1B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IA8BhD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAOhE,OAAO,CAAC,uBAAuB;IAgG/B,OAAO,CAAC,mBAAmB;IAoC3B,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAgC5D,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IA2BlE;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IA6BzD,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAqEtE,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;CAKlB"}
1
+ {"version":3,"file":"treesitter.d.ts","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"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"}
@@ -130,10 +130,13 @@ export class TreeSitterAdapter {
130
130
  }
131
131
  catch (e) {
132
132
  const reason = e instanceof Error ? e.message : String(e);
133
+ const suggestion = lang === "dart"
134
+ ? "LSP support still works (hover, verify, fix). Tree-sitter parsing for Dart requires tree-sitter >=0.24; current version is 0.22.x."
135
+ : "LSP support still works (hover, verify, fix). Tree-sitter parsing unavailable.";
133
136
  _parserStatus.set(lang, {
134
137
  status: "unavailable",
135
138
  reason,
136
- suggestion: `LSP support still works (hover, verify, fix). Tree-sitter parsing unavailable - upgrade tree-sitter to enable.`,
139
+ suggestion,
137
140
  });
138
141
  this.log(`Parser unavailable [${lang}]: ${e}`);
139
142
  }
@@ -165,14 +168,19 @@ export class TreeSitterAdapter {
165
168
  }
166
169
  }
167
170
  catch {
168
- // Fall back to JavaScript parser for TypeScript
171
+ // Fall back to JavaScript parser for TypeScript.
172
+ // Create independent Parser instances for typescript and tsx fallbacks
173
+ // instead of sharing the JavaScript parser reference -- the Parser holds
174
+ // WASM state and concurrent parse() calls on the same instance corrupt it.
169
175
  const jsParser = this.parsers.get("javascript");
170
176
  if (jsParser) {
171
- // L2: Create a separate Parser instance for TypeScript fallback
172
- // instead of sharing the JavaScript parser reference, which would
173
- // cause state pollution if both are used concurrently.
174
- const tsFallback = jsParser;
177
+ const jsLang = jsParser.getLanguage();
178
+ const tsFallback = new Parser();
179
+ tsFallback.setLanguage(jsLang);
180
+ const tsxFallback = new Parser();
181
+ tsxFallback.setLanguage(jsLang);
175
182
  this.parsers.set("typescript", tsFallback);
183
+ this.parsers.set("tsx", tsxFallback);
176
184
  _parserStatus.set("typescript", { status: "loaded", reason: "Fell back to JavaScript parser" });
177
185
  _parserStatus.set("tsx", { status: "loaded", reason: "Fell back to JavaScript parser" });
178
186
  this.log("TypeScript parser unavailable, falling back to JavaScript parser");
@@ -534,21 +542,23 @@ export class TreeSitterAdapter {
534
542
  return null;
535
543
  }
536
544
  _isExported(node) {
537
- // Walk up the parent chain looking for an export node
538
- // (e.g., export_statement in tree-sitter-typescript/tree-sitter-javascript)
539
- let ancestor = node;
545
+ // Check the immediate node for Rust-style visibility_modifier (pub, pub(crate), etc.).
546
+ // In Rust grammar, visibility_modifier is a direct child of the item node
547
+ // (function_item, struct_item, etc.), not an ancestor wrapper.
548
+ // We only check the immediate node's children to avoid false positives from
549
+ // nested items (e.g., a pub field inside a private struct).
550
+ for (const child of node.children) {
551
+ if (child.type === "visibility_modifier" && child.text.startsWith("pub")) {
552
+ return true;
553
+ }
554
+ }
555
+ // Walk up parent chain for JS/TS-style export wrappers
556
+ // (export_statement, export_declaration, etc.)
557
+ let ancestor = node.parent;
540
558
  while (ancestor) {
541
559
  if (ancestor.type.includes("export")) {
542
560
  return true;
543
561
  }
544
- // Rust: check for visibility_modifier (pub, pub(crate), pub(super), etc.)
545
- // The visibility_modifier is a sibling/child of the definition node in
546
- // Rust's tree-sitter grammar, not an ancestor wrapper.
547
- for (const child of ancestor.children) {
548
- if (child.type === "visibility_modifier" && child.text.startsWith("pub")) {
549
- return true;
550
- }
551
- }
552
562
  ancestor = ancestor.parent;
553
563
  }
554
564
  return false;