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,177 @@
1
+ ; inherits: c
2
+
3
+ ; Constants
4
+
5
+ (this) @variable.builtin
6
+ (null) @constant.builtin
7
+
8
+ ; Types
9
+
10
+ (using_declaration ("using" "namespace" (identifier) @namespace))
11
+ (using_declaration ("using" "namespace" (qualified_identifier name: (identifier) @namespace)))
12
+ (namespace_definition name: (namespace_identifier) @namespace)
13
+ (namespace_identifier) @namespace
14
+
15
+ (auto) @type
16
+ "decltype" @type
17
+
18
+ (ref_qualifier ["&" "&&"] @type.builtin)
19
+ (reference_declarator ["&" "&&"] @type.builtin)
20
+ (abstract_reference_declarator ["&" "&&"] @type.builtin)
21
+
22
+ ; -------
23
+ ; Functions
24
+ ; -------
25
+ ; Support up to 4 levels of nesting of qualifiers
26
+ ; i.e. a::b::c::d::func();
27
+ (call_expression
28
+ function: (qualified_identifier
29
+ name: (identifier) @function))
30
+ (call_expression
31
+ function: (qualified_identifier
32
+ name: (qualified_identifier
33
+ name: (identifier) @function)))
34
+ (call_expression
35
+ function: (qualified_identifier
36
+ name: (qualified_identifier
37
+ name: (qualified_identifier
38
+ name: (identifier) @function))))
39
+ (call_expression
40
+ function: (qualified_identifier
41
+ name: (qualified_identifier
42
+ name: (qualified_identifier
43
+ name: (qualified_identifier
44
+ name: (identifier) @function)))))
45
+
46
+ (template_function
47
+ name: (identifier) @function)
48
+
49
+ (template_method
50
+ name: (field_identifier) @function)
51
+
52
+ ; Support up to 4 levels of nesting of qualifiers
53
+ ; i.e. a::b::c::d::func();
54
+ (function_declarator
55
+ declarator: (qualified_identifier
56
+ name: (identifier) @function))
57
+ (function_declarator
58
+ declarator: (qualified_identifier
59
+ name: (qualified_identifier
60
+ name: (identifier) @function)))
61
+ (function_declarator
62
+ declarator: (qualified_identifier
63
+ name: (qualified_identifier
64
+ name: (qualified_identifier
65
+ name: (identifier) @function))))
66
+ (function_declarator
67
+ declarator: (qualified_identifier
68
+ name: (qualified_identifier
69
+ name: (qualified_identifier
70
+ name: (qualified_identifier
71
+ name: (identifier) @function)))))
72
+
73
+ (function_declarator
74
+ declarator: (field_identifier) @function)
75
+
76
+ ; Constructors
77
+
78
+ (class_specifier
79
+ (type_identifier) @type
80
+ (field_declaration_list
81
+ (function_definition
82
+ (function_declarator
83
+ (identifier) @constructor)))
84
+ (#eq? @type @constructor))
85
+ (destructor_name "~" @constructor
86
+ (identifier) @constructor)
87
+
88
+ ; Parameters
89
+
90
+ (parameter_declaration
91
+ declarator: (reference_declarator (identifier) @variable.parameter))
92
+ (optional_parameter_declaration
93
+ declarator: (identifier) @variable.parameter)
94
+
95
+ ; Keywords
96
+
97
+ (template_argument_list (["<" ">"] @punctuation.bracket))
98
+ (template_parameter_list (["<" ">"] @punctuation.bracket))
99
+ (default_method_clause "default" @keyword)
100
+
101
+ "static_assert" @function.special
102
+
103
+ [
104
+ "<=>"
105
+ "[]"
106
+ "()"
107
+ ] @operator
108
+
109
+
110
+ ; These casts are parsed as function calls, but are not.
111
+ ((identifier) @keyword (#eq? @keyword "static_cast"))
112
+ ((identifier) @keyword (#eq? @keyword "dynamic_cast"))
113
+ ((identifier) @keyword (#eq? @keyword "reinterpret_cast"))
114
+ ((identifier) @keyword (#eq? @keyword "const_cast"))
115
+
116
+ [
117
+ "co_await"
118
+ "co_return"
119
+ "co_yield"
120
+ "concept"
121
+ "delete"
122
+ "new"
123
+ "operator"
124
+ "requires"
125
+ "using"
126
+ ] @keyword
127
+
128
+ [
129
+ "catch"
130
+ "noexcept"
131
+ "throw"
132
+ "try"
133
+ ] @keyword.control.exception
134
+
135
+
136
+ [
137
+ "and"
138
+ "and_eq"
139
+ "bitor"
140
+ "bitand"
141
+ "not"
142
+ "not_eq"
143
+ "or"
144
+ "or_eq"
145
+ "xor"
146
+ "xor_eq"
147
+ ] @keyword.operator
148
+
149
+ [
150
+ "class"
151
+ "namespace"
152
+ "typename"
153
+ "template"
154
+ ] @keyword.storage.type
155
+
156
+ [
157
+ "constexpr"
158
+ "constinit"
159
+ "consteval"
160
+ "mutable"
161
+ ] @keyword.storage.modifier
162
+
163
+ ; Modifiers that aren't plausibly type/storage related.
164
+ [
165
+ "explicit"
166
+ "friend"
167
+ "virtual"
168
+ (virtual_specifier) ; override/final
169
+ "private"
170
+ "protected"
171
+ "public"
172
+ "inline" ; C++ meaning differs from C!
173
+ ] @keyword
174
+
175
+ ; Strings
176
+
177
+ (raw_string_literal) @string
@@ -0,0 +1,3 @@
1
+ ; inherits: c
2
+
3
+ (access_specifier) @outdent
@@ -0,0 +1,4 @@
1
+ ; inherits: c
2
+ (raw_string_literal
3
+ delimiter: (raw_string_delimiter) @injection.language
4
+ (raw_string_content) @injection.content)
@@ -0,0 +1,49 @@
1
+ [
2
+ ; c
3
+ (preproc_params)
4
+ (preproc_defined)
5
+ (argument_list)
6
+ (attribute_specifier)
7
+ (ms_declspec_modifier)
8
+ (declaration_list)
9
+ (parenthesized_declarator)
10
+ (parenthesized_expression)
11
+ (abstract_parenthesized_declarator)
12
+ (array_declarator)
13
+ (compound_statement)
14
+ (initializer_list)
15
+ (compound_literal_expression)
16
+ (enumerator_list)
17
+ (field_declaration_list)
18
+ (parameter_list)
19
+ (for_statement)
20
+ ; (macro_type_specifier) - not part of cpp
21
+ (subscript_expression)
22
+ (subscript_designator)
23
+ (cast_expression)
24
+
25
+ ; cpp
26
+ (decltype)
27
+ (explicit_function_specifier)
28
+ (template_parameter_list)
29
+ (template_argument_list)
30
+ (parameter_list)
31
+ (argument_list)
32
+ (structured_binding_declarator)
33
+ (noexcept)
34
+ (throw_specifier)
35
+ (static_assert_declaration)
36
+ (condition_clause)
37
+ (for_range_loop)
38
+ (new_declarator)
39
+ (delete_expression "[" "]")
40
+ (lambda_capture_specifier)
41
+ (sizeof_expression)
42
+ ] @rainbow.scope
43
+
44
+ [
45
+ "(" ")"
46
+ "{" "}"
47
+ "[" "]"
48
+ "<" ">"
49
+ ] @rainbow.bracket
@@ -0,0 +1,12 @@
1
+ ; inherits: c
2
+
3
+ (function_declarator
4
+ declarator: (qualified_identifier name: (identifier) @definition.function))
5
+
6
+ (struct_specifier
7
+ name: (type_identifier) @definition.struct
8
+ body: (field_declaration_list))
9
+
10
+ (class_specifier
11
+ name: (type_identifier) @definition.class
12
+ body: (field_declaration_list))
@@ -0,0 +1,7 @@
1
+ ; inherits: c
2
+
3
+ (lambda_expression
4
+ body: (_) @function.inside) @function.around
5
+
6
+ (class_specifier
7
+ body: (_) @class.inside) @class.around
@@ -0,0 +1,288 @@
1
+ ; Tokens
2
+ ;-------
3
+
4
+ [
5
+ ";"
6
+ (optional_chain) ; ?.
7
+ "."
8
+ ","
9
+ ] @punctuation.delimiter
10
+
11
+ [
12
+ "-"
13
+ "--"
14
+ "-="
15
+ "+"
16
+ "++"
17
+ "+="
18
+ "*"
19
+ "*="
20
+ "**"
21
+ "**="
22
+ "/"
23
+ "/="
24
+ "%"
25
+ "%="
26
+ "<"
27
+ "<="
28
+ "<<"
29
+ "<<="
30
+ "="
31
+ "=="
32
+ "==="
33
+ "!"
34
+ "!="
35
+ "!=="
36
+ "=>"
37
+ ">"
38
+ ">="
39
+ ">>"
40
+ ">>="
41
+ ">>>"
42
+ ">>>="
43
+ "~"
44
+ "^"
45
+ "&"
46
+ "|"
47
+ "^="
48
+ "&="
49
+ "|="
50
+ "&&"
51
+ "||"
52
+ "??"
53
+ "&&="
54
+ "||="
55
+ "??="
56
+ "..."
57
+ ] @operator
58
+
59
+ (ternary_expression ["?" ":"] @operator)
60
+
61
+ [
62
+ "("
63
+ ")"
64
+ "["
65
+ "]"
66
+ "{"
67
+ "}"
68
+ ] @punctuation.bracket
69
+
70
+ (template_substitution
71
+ "${" @punctuation.special
72
+ "}" @punctuation.special) @embedded
73
+
74
+ [
75
+ "async"
76
+ "debugger"
77
+ "extends"
78
+ "from"
79
+ "get"
80
+ "new"
81
+ "set"
82
+ "target"
83
+ "with"
84
+ ] @keyword
85
+
86
+ [
87
+ "of"
88
+ "as"
89
+ "in"
90
+ "delete"
91
+ "typeof"
92
+ "instanceof"
93
+ "void"
94
+ ] @keyword.operator
95
+
96
+ [
97
+ "function"
98
+ ] @keyword.function
99
+
100
+ [
101
+ "class"
102
+ "let"
103
+ "var"
104
+ ] @keyword.storage.type
105
+
106
+ [
107
+ "const"
108
+ "static"
109
+ ] @keyword.storage.modifier
110
+
111
+ [
112
+ "default"
113
+ "yield"
114
+ "finally"
115
+ "do"
116
+ "await"
117
+ ] @keyword.control
118
+
119
+ [
120
+ "if"
121
+ "else"
122
+ "switch"
123
+ "case"
124
+ ] @keyword.control.conditional
125
+
126
+ [
127
+ "while"
128
+ "for"
129
+ ] @keyword.control.repeat
130
+
131
+ [
132
+ "import"
133
+ "export"
134
+ ] @keyword.control.import
135
+
136
+ [
137
+ "return"
138
+ "break"
139
+ "continue"
140
+ ] @keyword.control.return
141
+
142
+ [
143
+ "throw"
144
+ "try"
145
+ "catch"
146
+ ] @keyword.control.exception
147
+
148
+ ; Variables
149
+ ;----------
150
+
151
+ (identifier) @variable
152
+
153
+ ; Properties
154
+ ;-----------
155
+
156
+ (property_identifier) @variable.other.member
157
+ (private_property_identifier) @variable.other.member.private
158
+ (shorthand_property_identifier) @variable.other.member
159
+ (shorthand_property_identifier_pattern) @variable.other.member
160
+
161
+ ; Function and method definitions
162
+ ;--------------------------------
163
+
164
+ (function_expression
165
+ name: (identifier) @function)
166
+ (function_declaration
167
+ name: (identifier) @function)
168
+ (method_definition
169
+ name: (property_identifier) @function.method)
170
+ (method_definition
171
+ name: (private_property_identifier) @function.method.private)
172
+
173
+ (pair
174
+ key: (property_identifier) @function.method
175
+ value: [(function_expression) (arrow_function)])
176
+ (pair
177
+ key: (private_property_identifier) @function.method.private
178
+ value: [(function_expression) (arrow_function)])
179
+
180
+ (assignment_expression
181
+ left: (member_expression
182
+ property: (property_identifier) @function.method)
183
+ right: [(function_expression) (arrow_function)])
184
+ (assignment_expression
185
+ left: (member_expression
186
+ property: (private_property_identifier) @function.method.private)
187
+ right: [(function_expression) (arrow_function)])
188
+
189
+ (variable_declarator
190
+ name: (identifier) @function
191
+ value: [(function_expression) (arrow_function)])
192
+
193
+ (assignment_expression
194
+ left: (identifier) @function
195
+ right: [(function_expression) (arrow_function)])
196
+
197
+ ; Function and method parameters
198
+ ;-------------------------------
199
+
200
+ ; Arrow function parameters in the form `p => ...` are supported by both
201
+ ; javascript and typescript grammars without conflicts.
202
+ (arrow_function
203
+ parameter: (identifier) @variable.parameter)
204
+
205
+ ; Function and method calls
206
+ ;--------------------------
207
+
208
+ (call_expression
209
+ function: (identifier) @function)
210
+
211
+ (call_expression
212
+ function: (member_expression
213
+ property: (property_identifier) @function.method))
214
+ (call_expression
215
+ function: (member_expression
216
+ property: (private_property_identifier) @function.method.private))
217
+
218
+ ; Literals
219
+ ;---------
220
+
221
+ (this) @variable.builtin
222
+ (super) @variable.builtin
223
+
224
+ [
225
+ (null)
226
+ (undefined)
227
+ ] @constant.builtin
228
+
229
+ [
230
+ (true)
231
+ (false)
232
+ ] @constant.builtin.boolean
233
+
234
+ (comment) @comment
235
+
236
+ [
237
+ (string)
238
+ (template_string)
239
+ ] @string
240
+
241
+ (escape_sequence) @constant.character.escape
242
+
243
+ (regex) @string.regexp
244
+ (number) @constant.numeric.integer
245
+
246
+ ; Special identifiers
247
+ ;--------------------
248
+
249
+ ((identifier) @constructor
250
+ (#match? @constructor "^[A-Z]"))
251
+
252
+ ([
253
+ (identifier)
254
+ (shorthand_property_identifier)
255
+ (shorthand_property_identifier_pattern)
256
+ ] @constant
257
+ (#match? @constant "^[A-Z_][A-Z\\d_]+$"))
258
+
259
+ ((identifier) @variable.builtin
260
+ (#match? @variable.builtin "^(arguments|module|console|window|document)$")
261
+ (#is-not? local))
262
+
263
+ (call_expression
264
+ (identifier) @function.builtin
265
+ (#any-of? @function.builtin
266
+ "eval"
267
+ "fetch"
268
+ "isFinite"
269
+ "isNaN"
270
+ "parseFloat"
271
+ "parseInt"
272
+ "decodeURI"
273
+ "decodeURIComponent"
274
+ "encodeURI"
275
+ "encodeURIComponent"
276
+ "require"
277
+ "alert"
278
+ "prompt"
279
+ "btoa"
280
+ "atob"
281
+ "confirm"
282
+ "structuredClone"
283
+ "setTimeout"
284
+ "clearTimeout"
285
+ "setInterval"
286
+ "clearInterval"
287
+ "queueMicrotask")
288
+ (#is-not? local))
@@ -0,0 +1,28 @@
1
+ [
2
+ (array)
3
+ (object)
4
+ (arguments)
5
+ (formal_parameters)
6
+
7
+ (statement_block)
8
+ (switch_statement)
9
+ (object_pattern)
10
+ (class_body)
11
+ (named_imports)
12
+
13
+ (binary_expression)
14
+ (return_statement)
15
+ (template_substitution)
16
+ (export_clause)
17
+ ] @indent
18
+
19
+ [
20
+ (switch_case)
21
+ (switch_default)
22
+ ] @indent @extend
23
+
24
+ [
25
+ "}"
26
+ "]"
27
+ ")"
28
+ ] @outdent
@@ -0,0 +1,100 @@
1
+ ; Parse the contents of tagged template literals using
2
+ ; a language inferred from the tag.
3
+
4
+ (call_expression
5
+ function: [
6
+ (identifier) @injection.language
7
+ (member_expression
8
+ property: (property_identifier) @injection.language)
9
+ ]
10
+ arguments: (template_string) @injection.content
11
+ (#any-of? @injection.language "html" "css" "json" "sql" "js" "ts" "bash"))
12
+
13
+ ; Parse the contents of $ template literals as shell commands
14
+
15
+ (call_expression
16
+ function: [
17
+ (identifier) @_template_function_name
18
+ (member_expression
19
+ property: (property_identifier) @_template_function_name)
20
+ ]
21
+ arguments: (template_string) @injection.content
22
+ (#eq? @_template_function_name "$")
23
+ (#set! injection.language "bash"))
24
+
25
+ ; GraphQL detection generally matches the rules provided by the 'GraphQL: Syntax Highlighting'
26
+ ; VSCode extension: https://github.com/graphql/graphiql/blob/8f25b38f4ab14dc99c046109f255fb283bccde52/packages/vscode-graphql-syntax/grammars/graphql.js.json
27
+
28
+ ; Parse the contents of 'gql' and 'graphql' template literals and function calls
29
+ (
30
+ (call_expression
31
+ function: (identifier) @_template_function_name
32
+ arguments: [
33
+ ; Tagged template literal: NAME``
34
+ (template_string (string_fragment) @injection.content)
35
+ (
36
+ arguments . [
37
+ ; Function call containing a string literal: NAME('')
38
+ (string (string_fragment) @injection.content)
39
+ ; Function call containing a template literal: NAME(``)
40
+ (template_string (string_fragment) @injection.content)
41
+ ]
42
+ )
43
+ ]
44
+ )
45
+ (#any-of? @_template_function_name "gql" "graphql")
46
+ (#set! injection.language "graphql")
47
+ )
48
+
49
+ ; Parse the contents of strings and tagged template literals that begin with a GraphQL comment '#graphql'
50
+ (
51
+ [
52
+ (string (string_fragment) @injection.content)
53
+ (template_string (string_fragment) @injection.content)
54
+ ]
55
+ (#match? @injection.content "^\\s*#graphql")
56
+ (#set! injection.language "graphql")
57
+ )
58
+
59
+ ; Parse the contents of strings and tagged template literals with leading ECMAScript comments '/* GraphQL */'
60
+ (
61
+ ((comment) @_ecma_comment [
62
+ (string (string_fragment) @injection.content)
63
+ (template_string (string_fragment) @injection.content)
64
+ ])
65
+ (#eq? @_ecma_comment "/* GraphQL */")
66
+ (#set! injection.language "graphql")
67
+ )
68
+
69
+ ; Parse regex syntax within regex literals
70
+
71
+ ((regex_pattern) @injection.content
72
+ (#set! injection.language "regex"))
73
+
74
+ ; Parse JSDoc annotations in multiline comments
75
+
76
+ ((comment) @injection.content
77
+ (#set! injection.language "jsdoc")
78
+ (#match? @injection.content "^/\\*+"))
79
+
80
+ ; Parse general tags in single line comments
81
+
82
+ ((comment) @injection.content
83
+ (#set! injection.language "comment")
84
+ (#match? @injection.content "^//"))
85
+
86
+ ; Match string literals passed to standard browser API methods that expects a
87
+ ; css selector as argument.
88
+ ; - https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
89
+ ; - https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
90
+ ; - https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
91
+ ; - https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
92
+ ; e.g.
93
+ ; `const el = document.querySelector("div.user-panel.main input[name='login']");`
94
+ (call_expression
95
+ function: (member_expression
96
+ object: (identifier) @_object
97
+ property: (property_identifier) @_property (#any-of? @_property "querySelector" "querySelectorAll" "closest" "matches"))
98
+ arguments: (arguments
99
+ (string (string_fragment) @injection.content))
100
+ (#set! injection.language "css"))
@@ -0,0 +1,26 @@
1
+ ; Scopes
2
+ ;-------
3
+
4
+ [
5
+ (statement_block)
6
+ (arrow_function)
7
+ (function_expression)
8
+ (function_declaration)
9
+ (method_definition)
10
+ (for_statement)
11
+ (for_in_statement)
12
+ (catch_clause)
13
+ (finally_clause)
14
+ ] @local.scope
15
+
16
+ ; Definitions
17
+ ;------------
18
+
19
+ ; i => ...
20
+ (arrow_function
21
+ parameter: (identifier) @local.definition.variable.parameter)
22
+
23
+ ; References
24
+ ;------------
25
+
26
+ (identifier) @local.reference