src-mcp 1.0.1

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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +721 -0
  3. package/assets/languages.json +219 -0
  4. package/assets/queries/_javascript/highlights.scm +36 -0
  5. package/assets/queries/_javascript/locals.scm +14 -0
  6. package/assets/queries/_javascript/tags.scm +88 -0
  7. package/assets/queries/_jsx/highlights.scm +43 -0
  8. package/assets/queries/_jsx/indents.scm +6 -0
  9. package/assets/queries/_jsx/textobjects.scm +7 -0
  10. package/assets/queries/_typescript/highlights.scm +148 -0
  11. package/assets/queries/_typescript/indents.scm +5 -0
  12. package/assets/queries/_typescript/locals.scm +34 -0
  13. package/assets/queries/_typescript/tags.scm +23 -0
  14. package/assets/queries/_typescript/textobjects.scm +12 -0
  15. package/assets/queries/c/highlights.scm +167 -0
  16. package/assets/queries/c/indents.scm +51 -0
  17. package/assets/queries/c/injections.scm +2 -0
  18. package/assets/queries/c/locals.scm +38 -0
  19. package/assets/queries/c/rainbows.scm +29 -0
  20. package/assets/queries/c/tags.scm +9 -0
  21. package/assets/queries/c/textobjects.scm +27 -0
  22. package/assets/queries/c_sharp/highlights.scm +208 -0
  23. package/assets/queries/c_sharp/injections.scm +2 -0
  24. package/assets/queries/c_sharp/tags.scm +21 -0
  25. package/assets/queries/c_sharp/textobjects.scm +20 -0
  26. package/assets/queries/cpp/highlights.scm +177 -0
  27. package/assets/queries/cpp/indents.scm +3 -0
  28. package/assets/queries/cpp/injections.scm +4 -0
  29. package/assets/queries/cpp/rainbows.scm +49 -0
  30. package/assets/queries/cpp/tags.scm +12 -0
  31. package/assets/queries/cpp/textobjects.scm +7 -0
  32. package/assets/queries/ecma/highlights.scm +288 -0
  33. package/assets/queries/ecma/indents.scm +28 -0
  34. package/assets/queries/ecma/injections.scm +100 -0
  35. package/assets/queries/ecma/locals.scm +26 -0
  36. package/assets/queries/ecma/rainbows.scm +28 -0
  37. package/assets/queries/ecma/textobjects.scm +45 -0
  38. package/assets/queries/go/highlights.scm +236 -0
  39. package/assets/queries/go/indents.scm +40 -0
  40. package/assets/queries/go/injections.scm +92 -0
  41. package/assets/queries/go/locals.scm +25 -0
  42. package/assets/queries/go/rainbows.scm +33 -0
  43. package/assets/queries/go/tags.scm +30 -0
  44. package/assets/queries/go/textobjects.scm +33 -0
  45. package/assets/queries/html/highlights.scm +47 -0
  46. package/assets/queries/html/injections.scm +10 -0
  47. package/assets/queries/html/rainbows.scm +13 -0
  48. package/assets/queries/html/textobjects.scm +9 -0
  49. package/assets/queries/java/highlights.scm +227 -0
  50. package/assets/queries/java/indents.scm +35 -0
  51. package/assets/queries/java/injections.scm +2 -0
  52. package/assets/queries/java/rainbows.scm +35 -0
  53. package/assets/queries/java/tags.scm +27 -0
  54. package/assets/queries/java/textobjects.scm +44 -0
  55. package/assets/queries/javascript/highlights.scm +3 -0
  56. package/assets/queries/javascript/indents.scm +3 -0
  57. package/assets/queries/javascript/injections.scm +3 -0
  58. package/assets/queries/javascript/locals.scm +3 -0
  59. package/assets/queries/javascript/rainbows.scm +1 -0
  60. package/assets/queries/javascript/tags.scm +3 -0
  61. package/assets/queries/javascript/textobjects.scm +3 -0
  62. package/assets/queries/jsx/highlights.scm +3 -0
  63. package/assets/queries/jsx/indents.scm +3 -0
  64. package/assets/queries/jsx/injections.scm +3 -0
  65. package/assets/queries/jsx/locals.scm +3 -0
  66. package/assets/queries/jsx/rainbows.scm +9 -0
  67. package/assets/queries/jsx/tags.scm +3 -0
  68. package/assets/queries/jsx/textobjects.scm +3 -0
  69. package/assets/queries/kotlin/folds.scm +17 -0
  70. package/assets/queries/kotlin/highlights.scm +330 -0
  71. package/assets/queries/kotlin/indents.scm +44 -0
  72. package/assets/queries/kotlin/injections.scm +42 -0
  73. package/assets/queries/kotlin/locals.scm +23 -0
  74. package/assets/queries/kotlin/tags.scm +12 -0
  75. package/assets/queries/kotlin/textobjects.scm +45 -0
  76. package/assets/queries/ocaml/highlights.scm +151 -0
  77. package/assets/queries/ocaml/indents.scm +12 -0
  78. package/assets/queries/ocaml/injections.scm +2 -0
  79. package/assets/queries/ocaml/locals.scm +24 -0
  80. package/assets/queries/php/highlights.scm +319 -0
  81. package/assets/queries/php/indents.scm +18 -0
  82. package/assets/queries/php/injections.scm +25 -0
  83. package/assets/queries/php/rainbows.scm +15 -0
  84. package/assets/queries/php/tags.scm +26 -0
  85. package/assets/queries/php/textobjects.scm +52 -0
  86. package/assets/queries/python/highlights.scm +308 -0
  87. package/assets/queries/python/indents.scm +84 -0
  88. package/assets/queries/python/injections.scm +14 -0
  89. package/assets/queries/python/locals.scm +50 -0
  90. package/assets/queries/python/rainbows.scm +30 -0
  91. package/assets/queries/python/tags.scm +14 -0
  92. package/assets/queries/python/textobjects.scm +35 -0
  93. package/assets/queries/ruby/highlights.scm +191 -0
  94. package/assets/queries/ruby/indents.scm +24 -0
  95. package/assets/queries/ruby/injections.scm +35 -0
  96. package/assets/queries/ruby/locals.scm +20 -0
  97. package/assets/queries/ruby/rainbows.scm +28 -0
  98. package/assets/queries/ruby/tags.scm +64 -0
  99. package/assets/queries/ruby/textobjects.scm +56 -0
  100. package/assets/queries/rust/highlights.scm +514 -0
  101. package/assets/queries/rust/indents.scm +148 -0
  102. package/assets/queries/rust/injections.scm +170 -0
  103. package/assets/queries/rust/locals.scm +28 -0
  104. package/assets/queries/rust/rainbows.scm +60 -0
  105. package/assets/queries/rust/tags.scm +26 -0
  106. package/assets/queries/rust/textobjects.scm +85 -0
  107. package/assets/queries/scala/highlights.scm +267 -0
  108. package/assets/queries/scala/indents.scm +22 -0
  109. package/assets/queries/scala/injections.scm +16 -0
  110. package/assets/queries/scala/locals.scm +14 -0
  111. package/assets/queries/scala/textobjects.scm +65 -0
  112. package/assets/queries/svelte/folds.scm +13 -0
  113. package/assets/queries/svelte/highlights.scm +38 -0
  114. package/assets/queries/svelte/indents.scm +24 -0
  115. package/assets/queries/svelte/injections.scm +46 -0
  116. package/assets/queries/svelte/locals.scm +1 -0
  117. package/assets/queries/swift/highlights.scm +200 -0
  118. package/assets/queries/swift/indents.scm +100 -0
  119. package/assets/queries/swift/injections.scm +10 -0
  120. package/assets/queries/swift/locals.scm +19 -0
  121. package/assets/queries/swift/rainbows.scm +60 -0
  122. package/assets/queries/swift/textobjects.scm +23 -0
  123. package/assets/queries/tsx/highlights.scm +3 -0
  124. package/assets/queries/tsx/indents.scm +3 -0
  125. package/assets/queries/tsx/injections.scm +3 -0
  126. package/assets/queries/tsx/locals.scm +3 -0
  127. package/assets/queries/tsx/rainbows.scm +2 -0
  128. package/assets/queries/tsx/tags.scm +3 -0
  129. package/assets/queries/tsx/textobjects.scm +3 -0
  130. package/assets/queries/typescript/highlights.scm +3 -0
  131. package/assets/queries/typescript/indents.scm +3 -0
  132. package/assets/queries/typescript/injections.scm +3 -0
  133. package/assets/queries/typescript/locals.scm +3 -0
  134. package/assets/queries/typescript/rainbows.scm +19 -0
  135. package/assets/queries/typescript/tags.scm +3 -0
  136. package/assets/queries/typescript/textobjects.scm +3 -0
  137. package/assets/wasm/tree-sitter-c.wasm +0 -0
  138. package/assets/wasm/tree-sitter-c_sharp.wasm +0 -0
  139. package/assets/wasm/tree-sitter-cpp.wasm +0 -0
  140. package/assets/wasm/tree-sitter-go.wasm +0 -0
  141. package/assets/wasm/tree-sitter-html.wasm +0 -0
  142. package/assets/wasm/tree-sitter-java.wasm +0 -0
  143. package/assets/wasm/tree-sitter-javascript.wasm +0 -0
  144. package/assets/wasm/tree-sitter-kotlin.wasm +0 -0
  145. package/assets/wasm/tree-sitter-ocaml.wasm +0 -0
  146. package/assets/wasm/tree-sitter-php.wasm +0 -0
  147. package/assets/wasm/tree-sitter-python.wasm +0 -0
  148. package/assets/wasm/tree-sitter-ruby.wasm +0 -0
  149. package/assets/wasm/tree-sitter-rust.wasm +0 -0
  150. package/assets/wasm/tree-sitter-scala.wasm +0 -0
  151. package/assets/wasm/tree-sitter-svelte.wasm +0 -0
  152. package/assets/wasm/tree-sitter-swift.wasm +0 -0
  153. package/assets/wasm/tree-sitter-tsx.wasm +0 -0
  154. package/assets/wasm/tree-sitter-typescript.wasm +0 -0
  155. package/dist/bin.d.ts +3 -0
  156. package/dist/bin.d.ts.map +1 -0
  157. package/dist/bin.js +4 -0
  158. package/dist/bin.js.map +1 -0
  159. package/dist/cli/adapter.d.ts +7 -0
  160. package/dist/cli/adapter.d.ts.map +1 -0
  161. package/dist/cli/adapter.js +39 -0
  162. package/dist/cli/adapter.js.map +1 -0
  163. package/dist/cli/commands/index.d.ts +24 -0
  164. package/dist/cli/commands/index.d.ts.map +1 -0
  165. package/dist/cli/commands/index.js +13 -0
  166. package/dist/cli/commands/index.js.map +1 -0
  167. package/dist/cli/commands/serve.command.d.ts +21 -0
  168. package/dist/cli/commands/serve.command.d.ts.map +1 -0
  169. package/dist/cli/commands/serve.command.js +62 -0
  170. package/dist/cli/commands/serve.command.js.map +1 -0
  171. package/dist/cli/commands/version.command.d.ts +2 -0
  172. package/dist/cli/commands/version.command.d.ts.map +1 -0
  173. package/dist/cli/commands/version.command.js +12 -0
  174. package/dist/cli/commands/version.command.js.map +1 -0
  175. package/dist/cli/index.d.ts +2 -0
  176. package/dist/cli/index.d.ts.map +1 -0
  177. package/dist/cli/index.js +15 -0
  178. package/dist/cli/index.js.map +1 -0
  179. package/dist/cli/parser.d.ts +7 -0
  180. package/dist/cli/parser.d.ts.map +1 -0
  181. package/dist/cli/parser.js +99 -0
  182. package/dist/cli/parser.js.map +1 -0
  183. package/dist/config/index.d.ts +24 -0
  184. package/dist/config/index.d.ts.map +1 -0
  185. package/dist/config/index.js +38 -0
  186. package/dist/config/index.js.map +1 -0
  187. package/dist/core/ast/index.d.ts +82 -0
  188. package/dist/core/ast/index.d.ts.map +1 -0
  189. package/dist/core/ast/index.js +204 -0
  190. package/dist/core/ast/index.js.map +1 -0
  191. package/dist/core/ast/types.d.ts +152 -0
  192. package/dist/core/ast/types.d.ts.map +1 -0
  193. package/dist/core/ast/types.js +5 -0
  194. package/dist/core/ast/types.js.map +1 -0
  195. package/dist/core/constants.d.ts +17 -0
  196. package/dist/core/constants.d.ts.map +1 -0
  197. package/dist/core/constants.js +49 -0
  198. package/dist/core/constants.js.map +1 -0
  199. package/dist/core/embeddings/callgraph.d.ts +98 -0
  200. package/dist/core/embeddings/callgraph.d.ts.map +1 -0
  201. package/dist/core/embeddings/callgraph.js +415 -0
  202. package/dist/core/embeddings/callgraph.js.map +1 -0
  203. package/dist/core/embeddings/chunker.d.ts +37 -0
  204. package/dist/core/embeddings/chunker.d.ts.map +1 -0
  205. package/dist/core/embeddings/chunker.js +298 -0
  206. package/dist/core/embeddings/chunker.js.map +1 -0
  207. package/dist/core/embeddings/client.d.ts +30 -0
  208. package/dist/core/embeddings/client.d.ts.map +1 -0
  209. package/dist/core/embeddings/client.js +65 -0
  210. package/dist/core/embeddings/client.js.map +1 -0
  211. package/dist/core/embeddings/crossfile.d.ts +58 -0
  212. package/dist/core/embeddings/crossfile.d.ts.map +1 -0
  213. package/dist/core/embeddings/crossfile.js +202 -0
  214. package/dist/core/embeddings/crossfile.js.map +1 -0
  215. package/dist/core/embeddings/enricher.d.ts +53 -0
  216. package/dist/core/embeddings/enricher.d.ts.map +1 -0
  217. package/dist/core/embeddings/enricher.js +308 -0
  218. package/dist/core/embeddings/enricher.js.map +1 -0
  219. package/dist/core/embeddings/index.d.ts +13 -0
  220. package/dist/core/embeddings/index.d.ts.map +1 -0
  221. package/dist/core/embeddings/index.js +20 -0
  222. package/dist/core/embeddings/index.js.map +1 -0
  223. package/dist/core/embeddings/reranker.d.ts +41 -0
  224. package/dist/core/embeddings/reranker.d.ts.map +1 -0
  225. package/dist/core/embeddings/reranker.js +117 -0
  226. package/dist/core/embeddings/reranker.js.map +1 -0
  227. package/dist/core/embeddings/store.d.ts +93 -0
  228. package/dist/core/embeddings/store.d.ts.map +1 -0
  229. package/dist/core/embeddings/store.js +304 -0
  230. package/dist/core/embeddings/store.js.map +1 -0
  231. package/dist/core/embeddings/types.d.ts +77 -0
  232. package/dist/core/embeddings/types.d.ts.map +1 -0
  233. package/dist/core/embeddings/types.js +5 -0
  234. package/dist/core/embeddings/types.js.map +1 -0
  235. package/dist/core/embeddings/watcher.d.ts +130 -0
  236. package/dist/core/embeddings/watcher.d.ts.map +1 -0
  237. package/dist/core/embeddings/watcher.js +448 -0
  238. package/dist/core/embeddings/watcher.js.map +1 -0
  239. package/dist/core/fallback/index.d.ts +26 -0
  240. package/dist/core/fallback/index.d.ts.map +1 -0
  241. package/dist/core/fallback/index.js +76 -0
  242. package/dist/core/fallback/index.js.map +1 -0
  243. package/dist/core/parser/index.d.ts +64 -0
  244. package/dist/core/parser/index.d.ts.map +1 -0
  245. package/dist/core/parser/index.js +205 -0
  246. package/dist/core/parser/index.js.map +1 -0
  247. package/dist/core/parser/languages.d.ts +26 -0
  248. package/dist/core/parser/languages.d.ts.map +1 -0
  249. package/dist/core/parser/languages.js +101 -0
  250. package/dist/core/parser/languages.js.map +1 -0
  251. package/dist/core/queries/helpers.d.ts +72 -0
  252. package/dist/core/queries/helpers.d.ts.map +1 -0
  253. package/dist/core/queries/helpers.js +101 -0
  254. package/dist/core/queries/helpers.js.map +1 -0
  255. package/dist/core/queries/index.d.ts +144 -0
  256. package/dist/core/queries/index.d.ts.map +1 -0
  257. package/dist/core/queries/index.js +396 -0
  258. package/dist/core/queries/index.js.map +1 -0
  259. package/dist/core/queries/loader.d.ts +46 -0
  260. package/dist/core/queries/loader.d.ts.map +1 -0
  261. package/dist/core/queries/loader.js +216 -0
  262. package/dist/core/queries/loader.js.map +1 -0
  263. package/dist/core/queries/patterns.d.ts +10 -0
  264. package/dist/core/queries/patterns.d.ts.map +1 -0
  265. package/dist/core/queries/patterns.js +112 -0
  266. package/dist/core/queries/patterns.js.map +1 -0
  267. package/dist/core/symbols/index.d.ts +70 -0
  268. package/dist/core/symbols/index.d.ts.map +1 -0
  269. package/dist/core/symbols/index.js +359 -0
  270. package/dist/core/symbols/index.js.map +1 -0
  271. package/dist/core/unified/index.d.ts +118 -0
  272. package/dist/core/unified/index.d.ts.map +1 -0
  273. package/dist/core/unified/index.js +428 -0
  274. package/dist/core/unified/index.js.map +1 -0
  275. package/dist/core/utils/assets.d.ts +34 -0
  276. package/dist/core/utils/assets.d.ts.map +1 -0
  277. package/dist/core/utils/assets.js +85 -0
  278. package/dist/core/utils/assets.js.map +1 -0
  279. package/dist/core/utils/cache.d.ts +43 -0
  280. package/dist/core/utils/cache.d.ts.map +1 -0
  281. package/dist/core/utils/cache.js +60 -0
  282. package/dist/core/utils/cache.js.map +1 -0
  283. package/dist/core/utils/index.d.ts +7 -0
  284. package/dist/core/utils/index.d.ts.map +1 -0
  285. package/dist/core/utils/index.js +10 -0
  286. package/dist/core/utils/index.js.map +1 -0
  287. package/dist/core/utils/tsconfig.d.ts +34 -0
  288. package/dist/core/utils/tsconfig.d.ts.map +1 -0
  289. package/dist/core/utils/tsconfig.js +173 -0
  290. package/dist/core/utils/tsconfig.js.map +1 -0
  291. package/dist/features/analyze-file/index.d.ts +15 -0
  292. package/dist/features/analyze-file/index.d.ts.map +1 -0
  293. package/dist/features/analyze-file/index.js +164 -0
  294. package/dist/features/analyze-file/index.js.map +1 -0
  295. package/dist/features/get-call-graph/index.d.ts +24 -0
  296. package/dist/features/get-call-graph/index.d.ts.map +1 -0
  297. package/dist/features/get-call-graph/index.js +246 -0
  298. package/dist/features/get-call-graph/index.js.map +1 -0
  299. package/dist/features/get-index-status/index.d.ts +20 -0
  300. package/dist/features/get-index-status/index.d.ts.map +1 -0
  301. package/dist/features/get-index-status/index.js +90 -0
  302. package/dist/features/get-index-status/index.js.map +1 -0
  303. package/dist/features/index-codebase/index.d.ts +24 -0
  304. package/dist/features/index-codebase/index.d.ts.map +1 -0
  305. package/dist/features/index-codebase/index.js +283 -0
  306. package/dist/features/index-codebase/index.js.map +1 -0
  307. package/dist/features/index.d.ts +15 -0
  308. package/dist/features/index.d.ts.map +1 -0
  309. package/dist/features/index.js +28 -0
  310. package/dist/features/index.js.map +1 -0
  311. package/dist/features/info/index.d.ts +19 -0
  312. package/dist/features/info/index.d.ts.map +1 -0
  313. package/dist/features/info/index.js +41 -0
  314. package/dist/features/info/index.js.map +1 -0
  315. package/dist/features/list-symbols/index.d.ts +22 -0
  316. package/dist/features/list-symbols/index.d.ts.map +1 -0
  317. package/dist/features/list-symbols/index.js +74 -0
  318. package/dist/features/list-symbols/index.js.map +1 -0
  319. package/dist/features/parse-ast/index.d.ts +12 -0
  320. package/dist/features/parse-ast/index.d.ts.map +1 -0
  321. package/dist/features/parse-ast/index.js +71 -0
  322. package/dist/features/parse-ast/index.js.map +1 -0
  323. package/dist/features/query-code/index.d.ts +23 -0
  324. package/dist/features/query-code/index.d.ts.map +1 -0
  325. package/dist/features/query-code/index.js +96 -0
  326. package/dist/features/query-code/index.js.map +1 -0
  327. package/dist/features/search-code/index.d.ts +39 -0
  328. package/dist/features/search-code/index.d.ts.map +1 -0
  329. package/dist/features/search-code/index.js +258 -0
  330. package/dist/features/search-code/index.js.map +1 -0
  331. package/dist/features/types.d.ts +14 -0
  332. package/dist/features/types.d.ts.map +1 -0
  333. package/dist/features/types.js +2 -0
  334. package/dist/features/types.js.map +1 -0
  335. package/dist/features/update-index/index.d.ts +24 -0
  336. package/dist/features/update-index/index.d.ts.map +1 -0
  337. package/dist/features/update-index/index.js +358 -0
  338. package/dist/features/update-index/index.js.map +1 -0
  339. package/dist/features/utils/content.d.ts +30 -0
  340. package/dist/features/utils/content.d.ts.map +1 -0
  341. package/dist/features/utils/content.js +49 -0
  342. package/dist/features/utils/content.js.map +1 -0
  343. package/dist/features/utils/index.d.ts +6 -0
  344. package/dist/features/utils/index.d.ts.map +1 -0
  345. package/dist/features/utils/index.js +8 -0
  346. package/dist/features/utils/index.js.map +1 -0
  347. package/dist/features/utils/result.d.ts +37 -0
  348. package/dist/features/utils/result.d.ts.map +1 -0
  349. package/dist/features/utils/result.js +53 -0
  350. package/dist/features/utils/result.js.map +1 -0
  351. package/dist/index.d.ts +2 -0
  352. package/dist/index.d.ts.map +1 -0
  353. package/dist/index.js +4 -0
  354. package/dist/index.js.map +1 -0
  355. package/dist/prompts/index.d.ts +9 -0
  356. package/dist/prompts/index.d.ts.map +1 -0
  357. package/dist/prompts/index.js +188 -0
  358. package/dist/prompts/index.js.map +1 -0
  359. package/dist/resources/index.d.ts +3 -0
  360. package/dist/resources/index.d.ts.map +1 -0
  361. package/dist/resources/index.js +17 -0
  362. package/dist/resources/index.js.map +1 -0
  363. package/dist/server.d.ts +4 -0
  364. package/dist/server.d.ts.map +1 -0
  365. package/dist/server.js +24 -0
  366. package/dist/server.js.map +1 -0
  367. package/dist/tools/adapter.d.ts +4 -0
  368. package/dist/tools/adapter.d.ts.map +1 -0
  369. package/dist/tools/adapter.js +28 -0
  370. package/dist/tools/adapter.js.map +1 -0
  371. package/dist/tools/index.d.ts +5 -0
  372. package/dist/tools/index.d.ts.map +1 -0
  373. package/dist/tools/index.js +9 -0
  374. package/dist/tools/index.js.map +1 -0
  375. package/dist/types/index.d.ts +20 -0
  376. package/dist/types/index.d.ts.map +1 -0
  377. package/dist/types/index.js +2 -0
  378. package/dist/types/index.js.map +1 -0
  379. package/dist/utils/colors.d.ts +24 -0
  380. package/dist/utils/colors.d.ts.map +1 -0
  381. package/dist/utils/colors.js +30 -0
  382. package/dist/utils/colors.js.map +1 -0
  383. package/dist/utils/index.d.ts +4 -0
  384. package/dist/utils/index.d.ts.map +1 -0
  385. package/dist/utils/index.js +4 -0
  386. package/dist/utils/index.js.map +1 -0
  387. package/dist/utils/logger.d.ts +8 -0
  388. package/dist/utils/logger.d.ts.map +1 -0
  389. package/dist/utils/logger.js +57 -0
  390. package/dist/utils/logger.js.map +1 -0
  391. package/dist/utils/spinner.d.ts +11 -0
  392. package/dist/utils/spinner.d.ts.map +1 -0
  393. package/dist/utils/spinner.js +36 -0
  394. package/dist/utils/spinner.js.map +1 -0
  395. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/queries/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Fallback SCM query patterns for languages without official tags.scm
3
+ */
4
+ export type QueryPreset = "functions" | "classes" | "imports" | "exports" | "comments" | "strings" | "variables" | "types";
5
+ export declare const FALLBACK_PATTERNS: Record<string, Partial<Record<QueryPreset, string>>>;
6
+ export declare function getQueryPattern(language: string, preset: QueryPreset): string | undefined;
7
+ export declare function isPresetAvailable(language: string, preset: QueryPreset): boolean;
8
+ export declare function getAvailablePresets(language: string, hasOfficialTagsFile?: boolean): QueryPreset[];
9
+ export declare function getQuerySupportedLanguages(): string[];
10
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/core/queries/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,OAAO,CAAC;AAiBZ,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,MAAM,EACN,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAgErC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,mBAAmB,UAAQ,GAC1B,WAAW,EAAE,CAqBf;AAED,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Fallback SCM query patterns for languages without official tags.scm
3
+ */
4
+ const GENERIC_PATTERNS = {
5
+ comments: `[(comment) @comment]`,
6
+ strings: `[(string) @string (template_string) @string]`,
7
+ imports: `(import_statement) @import.statement`,
8
+ exports: `(export_statement) @export.statement`,
9
+ variables: `[
10
+ (variable_declaration (variable_declarator name: (identifier) @variable.name) @variable.declaration)
11
+ (lexical_declaration (variable_declarator name: (identifier) @variable.name) @variable.declaration)
12
+ ]`,
13
+ types: `[
14
+ (type_alias_declaration name: (type_identifier) @type.alias) @type.definition
15
+ (enum_declaration name: (identifier) @enum.name) @enum.definition
16
+ ]`,
17
+ };
18
+ export const FALLBACK_PATTERNS = {
19
+ typescript: {
20
+ functions: `[
21
+ (function_declaration name: (identifier) @function.name) @function.definition
22
+ (method_definition name: (property_identifier) @function.name) @function.definition
23
+ (lexical_declaration (variable_declarator name: (identifier) @function.name value: [(arrow_function) (function_expression)]) @function.definition)
24
+ ]`,
25
+ },
26
+ json: { strings: `[(string) @string]` },
27
+ yaml: {
28
+ strings: `[(string_scalar) @string (double_quote_scalar) @string (single_quote_scalar) @string]`,
29
+ comments: `[(comment) @comment]`,
30
+ },
31
+ toml: { strings: `[(string) @string]`, comments: `[(comment) @comment]` },
32
+ bash: {
33
+ functions: `(function_definition name: (word) @function.name) @function.definition`,
34
+ comments: `[(comment) @comment]`,
35
+ strings: `[(string) @string (raw_string) @string]`,
36
+ variables: `(variable_assignment name: (variable_name) @variable.name) @variable.declaration`,
37
+ },
38
+ html: {
39
+ strings: `[(attribute_value) @string (quoted_attribute_value) @string]`,
40
+ comments: `[(comment) @comment]`,
41
+ },
42
+ css: {
43
+ comments: `[(comment) @comment]`,
44
+ strings: `[(string_value) @string]`,
45
+ },
46
+ scala: {
47
+ functions: `(function_definition (identifier) @function.name) @function.definition`,
48
+ classes: `[
49
+ (class_definition (identifier) @class.name) @class.definition
50
+ (object_definition (identifier) @class.name) @class.definition
51
+ (trait_definition (identifier) @class.name) @class.definition
52
+ ]`,
53
+ comments: `[(comment) @comment]`,
54
+ strings: `[(string) @string]`,
55
+ },
56
+ swift: {
57
+ functions: `[
58
+ (function_declaration (simple_identifier) @function.name) @function.definition
59
+ (init_declaration) @function.definition
60
+ ]`,
61
+ classes: `[
62
+ (class_declaration (type_identifier) @class.name) @class.definition
63
+ (protocol_declaration (type_identifier) @class.name) @class.definition
64
+ ]`,
65
+ comments: `[(comment) @comment (multiline_comment) @comment]`,
66
+ strings: `[(line_string_literal) @string]`,
67
+ },
68
+ ocaml: {
69
+ functions: `(value_definition (let_binding (value_name) @function.name)) @function.definition`,
70
+ classes: `[
71
+ (type_definition (type_binding (type_constructor) @class.name)) @class.definition
72
+ (module_definition (module_binding (module_name) @class.name)) @class.definition
73
+ ]`,
74
+ comments: `[(comment) @comment]`,
75
+ strings: `[(string) @string]`,
76
+ },
77
+ svelte: {
78
+ comments: `[(comment) @comment]`,
79
+ strings: `[(attribute_value) @string (quoted_attribute_value) @string]`,
80
+ },
81
+ };
82
+ export function getQueryPattern(language, preset) {
83
+ return FALLBACK_PATTERNS[language]?.[preset] ?? GENERIC_PATTERNS[preset];
84
+ }
85
+ export function isPresetAvailable(language, preset) {
86
+ return getQueryPattern(language, preset) !== undefined;
87
+ }
88
+ export function getAvailablePresets(language, hasOfficialTagsFile = false) {
89
+ const presets = hasOfficialTagsFile
90
+ ? ["functions", "classes"]
91
+ : [];
92
+ const allPresets = [
93
+ "functions",
94
+ "classes",
95
+ "imports",
96
+ "exports",
97
+ "comments",
98
+ "strings",
99
+ "variables",
100
+ "types",
101
+ ];
102
+ for (const preset of allPresets) {
103
+ if (!presets.includes(preset) && isPresetAvailable(language, preset)) {
104
+ presets.push(preset);
105
+ }
106
+ }
107
+ return presets;
108
+ }
109
+ export function getQuerySupportedLanguages() {
110
+ return Object.keys(FALLBACK_PATTERNS);
111
+ }
112
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/core/queries/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,gBAAgB,GAAyC;IAC7D,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,8CAA8C;IACvD,OAAO,EAAE,sCAAsC;IAC/C,OAAO,EAAE,sCAAsC;IAC/C,SAAS,EAAE;;;IAGT;IACF,KAAK,EAAE;;;IAGL;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,UAAU,EAAE;QACV,SAAS,EAAE;;;;MAIT;KACH;IACD,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACvC,IAAI,EAAE;QACJ,OAAO,EAAE,uFAAuF;QAChG,QAAQ,EAAE,sBAAsB;KACjC;IACD,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE;IACzE,IAAI,EAAE;QACJ,SAAS,EAAE,wEAAwE;QACnF,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,kFAAkF;KAC9F;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,8DAA8D;QACvE,QAAQ,EAAE,sBAAsB;KACjC;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,0BAA0B;KACpC;IACD,KAAK,EAAE;QACL,SAAS,EAAE,wEAAwE;QACnF,OAAO,EAAE;;;;MAIP;QACF,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,oBAAoB;KAC9B;IACD,KAAK,EAAE;QACL,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;MAGP;QACF,QAAQ,EAAE,mDAAmD;QAC7D,OAAO,EAAE,iCAAiC;KAC3C;IACD,KAAK,EAAE;QACL,SAAS,EAAE,mFAAmF;QAC9F,OAAO,EAAE;;;MAGP;QACF,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,oBAAoB;KAC9B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,8DAA8D;KACxE;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAmB;IAEnB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,MAAmB;IAEnB,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,mBAAmB,GAAG,KAAK;IAE3B,MAAM,OAAO,GAAkB,mBAAmB;QAChD,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAkB;QAChC,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,OAAO;KACR,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Symbol extraction from parsed code
3
+ */
4
+ import type { Language, Tree } from "web-tree-sitter";
5
+ import type { Export, Import, Symbol, SymbolType } from "@core/ast/types";
6
+ /**
7
+ * Symbol filter options
8
+ */
9
+ export interface SymbolFilter {
10
+ /** Include only specific types */
11
+ types?: SymbolType[];
12
+ /** Exclude specific types */
13
+ excludeTypes?: SymbolType[];
14
+ /** Include only exported symbols */
15
+ exportedOnly?: boolean;
16
+ }
17
+ /**
18
+ * Symbol extraction result
19
+ */
20
+ export interface SymbolsResult {
21
+ /** Extracted symbols */
22
+ symbols: Symbol[];
23
+ /** Summary counts */
24
+ summary: {
25
+ functions: number;
26
+ classes: number;
27
+ variables: number;
28
+ constants: number;
29
+ interfaces: number;
30
+ types: number;
31
+ enums: number;
32
+ methods: number;
33
+ properties: number;
34
+ total: number;
35
+ };
36
+ }
37
+ /**
38
+ * Extract symbols from parsed code
39
+ */
40
+ export declare function extractSymbols(tree: Tree, languageInstance: Language, language: string, filter?: SymbolFilter): SymbolsResult;
41
+ /**
42
+ * Extract imports from parsed code
43
+ */
44
+ export declare function extractImports(tree: Tree, languageInstance: Language, language: string): Import[];
45
+ /**
46
+ * Extract exports from parsed code
47
+ */
48
+ export declare function extractExports(tree: Tree, languageInstance: Language, language: string): Export[];
49
+ /**
50
+ * Get symbols by type
51
+ */
52
+ export declare function getSymbolsByType(symbols: Symbol[], type: SymbolType): Symbol[];
53
+ /**
54
+ * Find symbol by name
55
+ */
56
+ export declare function findSymbolByName(symbols: Symbol[], name: string): Symbol | undefined;
57
+ /**
58
+ * Get symbol at position
59
+ */
60
+ export declare function getSymbolAtPosition(symbols: Symbol[], line: number, column: number): Symbol | undefined;
61
+ /**
62
+ * Extract all code information
63
+ */
64
+ export interface CodeInfo {
65
+ symbols: SymbolsResult;
66
+ imports: Import[];
67
+ exports: Export[];
68
+ }
69
+ export declare function extractCodeInfo(tree: Tree, languageInstance: Language, language: string, filter?: SymbolFilter): CodeInfo;
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/symbols/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EAEN,MAAM,EACN,UAAU,EACX,MAAM,iBAAiB,CAAC;AAUzB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qBAAqB;IACrB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,YAAiB,GACxB,aAAa,CAkNf;AAkFD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CA6DV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAwDV;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,UAAU,GACf,MAAM,EAAE,CAEV;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAEpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CASpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,YAAiB,GACxB,QAAQ,CAMV"}
@@ -0,0 +1,359 @@
1
+ import { createOffsetTracker, executePresetQuery, findCapture, findCaptureByNames, getClassName, getFunctionName, } from "@core/queries";
2
+ /**
3
+ * Extract symbols from parsed code
4
+ */
5
+ export function extractSymbols(tree, languageInstance, language, filter = {}) {
6
+ const symbols = [];
7
+ const { types, excludeTypes } = filter;
8
+ const shouldInclude = (type) => {
9
+ if (types && !types.includes(type)) {
10
+ return false;
11
+ }
12
+ if (excludeTypes?.includes(type)) {
13
+ return false;
14
+ }
15
+ return true;
16
+ };
17
+ // Extract functions and classes using official tags.scm when available
18
+ if (shouldInclude("function") ||
19
+ shouldInclude("method") ||
20
+ shouldInclude("class") ||
21
+ shouldInclude("interface")) {
22
+ const tagsResult = executePresetQuery(tree, languageInstance, language, "functions");
23
+ // Process function definitions
24
+ if (shouldInclude("function") || shouldInclude("method")) {
25
+ for (const match of tagsResult.matches) {
26
+ const defCapture = findCapture(match.captures, "function.definition");
27
+ const nameCapture = findCapture(match.captures, "function.name");
28
+ if (defCapture) {
29
+ const name = nameCapture?.node.text ?? getFunctionName(defCapture.node);
30
+ if (name) {
31
+ const isMethod = defCapture.node.type.includes("method") ||
32
+ defCapture.node.type === "method_definition";
33
+ const type = isMethod ? "method" : "function";
34
+ if (shouldInclude(type)) {
35
+ symbols.push({
36
+ name,
37
+ type,
38
+ start: defCapture.node.start,
39
+ end: defCapture.node.end,
40
+ signature: extractFunctionSignature(defCapture.node),
41
+ modifiers: extractModifiers(defCapture.node),
42
+ });
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ // Extract classes
50
+ if (shouldInclude("class") || shouldInclude("interface")) {
51
+ const classResult = executePresetQuery(tree, languageInstance, language, "classes");
52
+ for (const match of classResult.matches) {
53
+ const defCapture = findCapture(match.captures, "class.definition");
54
+ const nameCapture = findCapture(match.captures, "class.name");
55
+ if (defCapture) {
56
+ const name = nameCapture?.node.text ?? getClassName(defCapture.node);
57
+ if (name) {
58
+ // Determine type based on AST node type
59
+ const nodeType = defCapture.node.type;
60
+ let symbolType = "class";
61
+ if (nodeType.includes("interface") ||
62
+ nodeType === "interface_declaration") {
63
+ symbolType = "interface";
64
+ }
65
+ else if (nodeType.includes("struct")) {
66
+ symbolType = "interface";
67
+ }
68
+ if (shouldInclude(symbolType)) {
69
+ symbols.push({
70
+ name,
71
+ type: symbolType,
72
+ start: defCapture.node.start,
73
+ end: defCapture.node.end,
74
+ modifiers: extractModifiers(defCapture.node),
75
+ });
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ // Extract variables and constants
82
+ if (shouldInclude("variable") || shouldInclude("constant")) {
83
+ try {
84
+ const varResult = executePresetQuery(tree, languageInstance, language, "variables");
85
+ for (const match of varResult.matches) {
86
+ const nameCapture = findCaptureByNames(match.captures, [
87
+ "variable.name",
88
+ "constant.name",
89
+ "field.name",
90
+ ]);
91
+ const declCapture = findCaptureByNames(match.captures, [
92
+ "variable.declaration",
93
+ "constant.declaration",
94
+ "field.declaration",
95
+ ]);
96
+ if (nameCapture && declCapture) {
97
+ const isConstant = declCapture.node.text.startsWith("const ") ||
98
+ findCapture(match.captures, "constant.name") !== undefined;
99
+ const type = isConstant ? "constant" : "variable";
100
+ if (shouldInclude(type)) {
101
+ symbols.push({
102
+ name: nameCapture.node.text,
103
+ type,
104
+ start: declCapture.node.start,
105
+ end: declCapture.node.end,
106
+ modifiers: extractModifiers(declCapture.node),
107
+ });
108
+ }
109
+ }
110
+ }
111
+ }
112
+ catch {
113
+ // Query not available for this language
114
+ }
115
+ }
116
+ // Extract types (interfaces, type aliases, enums)
117
+ if (shouldInclude("interface") ||
118
+ shouldInclude("type") ||
119
+ shouldInclude("enum")) {
120
+ try {
121
+ const typeResult = executePresetQuery(tree, languageInstance, language, "types");
122
+ for (const match of typeResult.matches) {
123
+ const nameCapture = findCaptureByNames(match.captures, [
124
+ "type.name",
125
+ "interface.name",
126
+ "enum.name",
127
+ "type.alias",
128
+ ]);
129
+ const defCapture = findCaptureByNames(match.captures, [
130
+ "type.definition",
131
+ "interface.definition",
132
+ "enum.definition",
133
+ ]);
134
+ if (nameCapture && defCapture) {
135
+ let type = "type";
136
+ if (nameCapture.name === "interface.name") {
137
+ type = "interface";
138
+ }
139
+ else if (nameCapture.name === "enum.name") {
140
+ type = "enum";
141
+ }
142
+ if (shouldInclude(type)) {
143
+ symbols.push({
144
+ name: nameCapture.node.text,
145
+ type,
146
+ start: defCapture.node.start,
147
+ end: defCapture.node.end,
148
+ modifiers: extractModifiers(defCapture.node),
149
+ });
150
+ }
151
+ }
152
+ }
153
+ }
154
+ catch {
155
+ // Query not available for this language
156
+ }
157
+ }
158
+ // Calculate summary
159
+ const summary = {
160
+ functions: symbols.filter((s) => s.type === "function").length,
161
+ classes: symbols.filter((s) => s.type === "class").length,
162
+ variables: symbols.filter((s) => s.type === "variable").length,
163
+ constants: symbols.filter((s) => s.type === "constant").length,
164
+ interfaces: symbols.filter((s) => s.type === "interface").length,
165
+ types: symbols.filter((s) => s.type === "type").length,
166
+ enums: symbols.filter((s) => s.type === "enum").length,
167
+ methods: symbols.filter((s) => s.type === "method").length,
168
+ properties: symbols.filter((s) => s.type === "property").length,
169
+ total: symbols.length,
170
+ };
171
+ return { symbols, summary };
172
+ }
173
+ /**
174
+ * Extract function signature from AST node
175
+ */
176
+ function extractFunctionSignature(node) {
177
+ // Try to extract just the signature (function name + params)
178
+ const text = node.text;
179
+ // For JavaScript/TypeScript-like syntax
180
+ const jsMatch = /^(async\s+)?function\s*\*?\s*(\w*)\s*(<[^>]*>)?\s*\([^)]*\)(\s*:\s*[^{]+)?/.exec(text);
181
+ if (jsMatch) {
182
+ return jsMatch[0].trim();
183
+ }
184
+ // For arrow functions
185
+ const arrowMatch = /^\([^)]*\)\s*(:\s*[^=]+)?\s*=>/.exec(text);
186
+ if (arrowMatch) {
187
+ return arrowMatch[0].trim();
188
+ }
189
+ // For Python
190
+ const pyMatch = /^def\s+(\w+)\s*\([^)]*\)(\s*->\s*[^:]+)?:/.exec(text);
191
+ if (pyMatch) {
192
+ return pyMatch[0].replace(/:$/, "").trim();
193
+ }
194
+ // For Go
195
+ const goMatch = /^func\s*(\([^)]*\)\s*)?(\w+)\s*\([^)]*\)/.exec(text);
196
+ if (goMatch) {
197
+ return goMatch[0].trim();
198
+ }
199
+ // Fallback: return first line up to opening brace
200
+ const firstLine = text.split(/[{:]/)[0];
201
+ return firstLine ? firstLine.trim() : undefined;
202
+ }
203
+ /**
204
+ * Extract modifiers from AST node
205
+ */
206
+ function extractModifiers(node) {
207
+ const modifiers = [];
208
+ const text = node.text;
209
+ // Common modifiers
210
+ const modifierPatterns = [
211
+ "export",
212
+ "default",
213
+ "async",
214
+ "static",
215
+ "public",
216
+ "private",
217
+ "protected",
218
+ "readonly",
219
+ "abstract",
220
+ "const",
221
+ "let",
222
+ "var",
223
+ "final",
224
+ "override",
225
+ "pub",
226
+ "mut",
227
+ ];
228
+ for (const mod of modifierPatterns) {
229
+ const pattern = new RegExp(`\\b${mod}\\b`);
230
+ if (pattern.test(text.slice(0, 100))) {
231
+ // Only check start of node
232
+ modifiers.push(mod);
233
+ }
234
+ }
235
+ return modifiers.length > 0 ? modifiers : undefined;
236
+ }
237
+ /**
238
+ * Extract imports from parsed code
239
+ */
240
+ export function extractImports(tree, languageInstance, language) {
241
+ const imports = [];
242
+ try {
243
+ const result = executePresetQuery(tree, languageInstance, language, "imports");
244
+ const tracker = createOffsetTracker();
245
+ for (const match of result.matches) {
246
+ const stmtCapture = findCaptureByNames(match.captures, [
247
+ "import.statement",
248
+ "include.statement",
249
+ ]);
250
+ if (!stmtCapture || tracker.has(stmtCapture.node)) {
251
+ continue;
252
+ }
253
+ tracker.add(stmtCapture.node);
254
+ const sourceCapture = findCaptureByNames(match.captures, [
255
+ "import.source",
256
+ "import.path",
257
+ "include.path",
258
+ ]);
259
+ const defaultCapture = findCapture(match.captures, "import.default");
260
+ const nameCaptures = match.captures.filter((c) => c.name === "import.name");
261
+ const source = sourceCapture
262
+ ? sourceCapture.node.text.replace(/['"]/g, "")
263
+ : "";
264
+ const names = [];
265
+ if (defaultCapture) {
266
+ names.push({ name: defaultCapture.node.text });
267
+ }
268
+ for (const nameCapture of nameCaptures) {
269
+ names.push({ name: nameCapture.node.text });
270
+ }
271
+ imports.push({
272
+ source,
273
+ names,
274
+ isDefault: !!defaultCapture && nameCaptures.length === 0,
275
+ start: stmtCapture.node.start,
276
+ end: stmtCapture.node.end,
277
+ });
278
+ }
279
+ }
280
+ catch {
281
+ // Query not available
282
+ }
283
+ return imports;
284
+ }
285
+ /**
286
+ * Extract exports from parsed code
287
+ */
288
+ export function extractExports(tree, languageInstance, language) {
289
+ const exportList = [];
290
+ try {
291
+ const result = executePresetQuery(tree, languageInstance, language, "exports");
292
+ const tracker = createOffsetTracker();
293
+ for (const match of result.matches) {
294
+ const stmtCapture = findCaptureByNames(match.captures, [
295
+ "export.statement",
296
+ "export.function",
297
+ "export.class",
298
+ "export.type",
299
+ ]);
300
+ if (!stmtCapture || tracker.has(stmtCapture.node)) {
301
+ continue;
302
+ }
303
+ tracker.add(stmtCapture.node);
304
+ const nameCapture = findCapture(match.captures, "export.name");
305
+ const text = stmtCapture.node.text;
306
+ const isDefault = text.includes("export default");
307
+ // Try to extract name from declaration if not captured
308
+ let name = nameCapture?.node.text;
309
+ if (!name) {
310
+ // Try to extract from export statement
311
+ const nameMatch = /export\s+(?:default\s+)?(?:function|class|const|let|var|interface|type|enum)\s+(\w+)/.exec(text);
312
+ if (nameMatch?.[1]) {
313
+ name = nameMatch[1];
314
+ }
315
+ }
316
+ exportList.push({
317
+ name: name ?? "default",
318
+ isDefault,
319
+ start: stmtCapture.node.start,
320
+ end: stmtCapture.node.end,
321
+ });
322
+ }
323
+ }
324
+ catch {
325
+ // Query not available
326
+ }
327
+ return exportList;
328
+ }
329
+ /**
330
+ * Get symbols by type
331
+ */
332
+ export function getSymbolsByType(symbols, type) {
333
+ return symbols.filter((s) => s.type === type);
334
+ }
335
+ /**
336
+ * Find symbol by name
337
+ */
338
+ export function findSymbolByName(symbols, name) {
339
+ return symbols.find((s) => s.name === name);
340
+ }
341
+ /**
342
+ * Get symbol at position
343
+ */
344
+ export function getSymbolAtPosition(symbols, line, column) {
345
+ return symbols.find((s) => {
346
+ const afterStart = line > s.start.line ||
347
+ (line === s.start.line && column >= s.start.column);
348
+ const beforeEnd = line < s.end.line || (line === s.end.line && column <= s.end.column);
349
+ return afterStart && beforeEnd;
350
+ });
351
+ }
352
+ export function extractCodeInfo(tree, languageInstance, language, filter = {}) {
353
+ return {
354
+ symbols: extractSymbols(tree, languageInstance, language, filter),
355
+ imports: extractImports(tree, languageInstance, language),
356
+ exports: extractExports(tree, languageInstance, language),
357
+ };
358
+ }
359
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/symbols/index.ts"],"names":[],"mappings":"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"}