parsers-config.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. export default {
  2. // NOTE: FOR markdown, javascript and typescript, we use the opentui built-in parsers
  3. // Warn: when taking queries from the nvim-treesitter repo, make sure to include the query dependencies as well
  4. // marked with for example `; inherits: ecma` at the top of the file. Just put the dependencies before the actual query.
  5. // ALSO: Some queries use breaking changes in the nvim-treesitter repo, that are not compatible with the (web-)tree-sitter parser.
  6. parsers: [
  7. {
  8. filetype: "python",
  9. wasm: "https://github.com/tree-sitter/tree-sitter-python/releases/download/v0.23.6/tree-sitter-python.wasm",
  10. queries: {
  11. highlights: [
  12. // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
  13. // it is using "except" nodes that the parser is complaining about, but it has been in the query for 3+ years.
  14. // Unclear.
  15. // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/python/highlights.scm",
  16. "https://github.com/tree-sitter/tree-sitter-python/raw/refs/heads/master/queries/highlights.scm",
  17. ],
  18. locals: [
  19. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/python/locals.scm",
  20. ],
  21. },
  22. },
  23. {
  24. filetype: "rust",
  25. wasm: "https://github.com/tree-sitter/tree-sitter-rust/releases/download/v0.24.0/tree-sitter-rust.wasm",
  26. queries: {
  27. highlights: [
  28. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/rust/highlights.scm",
  29. ],
  30. locals: [
  31. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/rust/locals.scm",
  32. ],
  33. },
  34. },
  35. {
  36. filetype: "go",
  37. wasm: "https://github.com/tree-sitter/tree-sitter-go/releases/download/v0.25.0/tree-sitter-go.wasm",
  38. queries: {
  39. highlights: [
  40. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/go/highlights.scm",
  41. ],
  42. locals: [
  43. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/go/locals.scm",
  44. ],
  45. },
  46. },
  47. {
  48. filetype: "cpp",
  49. wasm: "https://github.com/tree-sitter/tree-sitter-cpp/releases/download/v0.23.4/tree-sitter-cpp.wasm",
  50. queries: {
  51. highlights: [
  52. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/cpp/highlights.scm",
  53. ],
  54. locals: [
  55. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/cpp/locals.scm",
  56. ],
  57. },
  58. },
  59. {
  60. filetype: "csharp",
  61. wasm: "https://github.com/tree-sitter/tree-sitter-c-sharp/releases/download/v0.23.1/tree-sitter-c_sharp.wasm",
  62. queries: {
  63. highlights: [
  64. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c_sharp/highlights.scm",
  65. ],
  66. locals: [
  67. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c_sharp/locals.scm",
  68. ],
  69. },
  70. },
  71. {
  72. filetype: "bash",
  73. wasm: "https://github.com/tree-sitter/tree-sitter-bash/releases/download/v0.25.0/tree-sitter-bash.wasm",
  74. queries: {
  75. highlights: [
  76. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/bash/highlights.scm",
  77. ],
  78. },
  79. },
  80. {
  81. filetype: "c",
  82. wasm: "https://github.com/tree-sitter/tree-sitter-c/releases/download/v0.24.1/tree-sitter-c.wasm",
  83. queries: {
  84. highlights: [
  85. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c/highlights.scm",
  86. ],
  87. locals: [
  88. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c/locals.scm",
  89. ],
  90. },
  91. },
  92. {
  93. filetype: "java",
  94. wasm: "https://github.com/tree-sitter/tree-sitter-java/releases/download/v0.23.5/tree-sitter-java.wasm",
  95. queries: {
  96. highlights: [
  97. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/java/highlights.scm",
  98. ],
  99. locals: [
  100. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/java/locals.scm",
  101. ],
  102. },
  103. },
  104. {
  105. filetype: "kotlin",
  106. wasm: "https://github.com/fwcd/tree-sitter-kotlin/releases/download/0.3.8/tree-sitter-kotlin.wasm",
  107. queries: {
  108. highlights: ["https://raw.githubusercontent.com/fwcd/tree-sitter-kotlin/0.3.8/queries/highlights.scm"],
  109. locals: ["https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/master/queries/kotlin/locals.scm"],
  110. },
  111. },
  112. {
  113. filetype: "ruby",
  114. wasm: "https://github.com/tree-sitter/tree-sitter-ruby/releases/download/v0.23.1/tree-sitter-ruby.wasm",
  115. queries: {
  116. highlights: [
  117. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ruby/highlights.scm",
  118. ],
  119. locals: [
  120. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ruby/locals.scm",
  121. ],
  122. },
  123. },
  124. {
  125. filetype: "php",
  126. wasm: "https://github.com/tree-sitter/tree-sitter-php/releases/download/v0.24.2/tree-sitter-php.wasm",
  127. queries: {
  128. highlights: [
  129. // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
  130. // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/php/highlights.scm",
  131. "https://github.com/tree-sitter/tree-sitter-php/raw/refs/heads/master/queries/highlights.scm",
  132. ],
  133. },
  134. },
  135. {
  136. filetype: "scala",
  137. wasm: "https://github.com/tree-sitter/tree-sitter-scala/releases/download/v0.24.0/tree-sitter-scala.wasm",
  138. queries: {
  139. highlights: [
  140. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/scala/highlights.scm",
  141. ],
  142. },
  143. },
  144. {
  145. filetype: "html",
  146. wasm: "https://github.com/tree-sitter/tree-sitter-html/releases/download/v0.23.2/tree-sitter-html.wasm",
  147. queries: {
  148. highlights: [
  149. // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
  150. // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/html/highlights.scm",
  151. "https://github.com/tree-sitter/tree-sitter-html/raw/refs/heads/master/queries/highlights.scm",
  152. ],
  153. // TODO: Injections not working for some reason
  154. // injections: [
  155. // "https://github.com/tree-sitter/tree-sitter-html/raw/refs/heads/master/queries/injections.scm",
  156. // ],
  157. },
  158. // injectionMapping: {
  159. // nodeTypes: {
  160. // script_element: "javascript",
  161. // style_element: "css",
  162. // },
  163. // infoStringMap: {
  164. // javascript: "javascript",
  165. // css: "css",
  166. // },
  167. // },
  168. },
  169. {
  170. filetype: "vue",
  171. wasm: "https://github.com/anomalyco/tree-sitter-vue/releases/download/v0.1.2/tree-sitter-vue.wasm",
  172. queries: {
  173. highlights: [
  174. "https://raw.githubusercontent.com/anomalyco/tree-sitter-vue/v0.1.2/queries/html_tags/highlights.scm",
  175. "https://raw.githubusercontent.com/anomalyco/tree-sitter-vue/v0.1.2/queries/vue/highlights.scm",
  176. ],
  177. },
  178. },
  179. {
  180. filetype: "hcl",
  181. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-hcl/releases/download/v1.2.0/tree-sitter-hcl.wasm",
  182. queries: {
  183. highlights: [
  184. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/master/queries/hcl/highlights.scm",
  185. ],
  186. },
  187. },
  188. {
  189. filetype: "json",
  190. wasm: "https://github.com/tree-sitter/tree-sitter-json/releases/download/v0.24.8/tree-sitter-json.wasm",
  191. queries: {
  192. highlights: [
  193. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/json/highlights.scm",
  194. ],
  195. },
  196. },
  197. {
  198. filetype: "yaml",
  199. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-yaml/releases/download/v0.7.2/tree-sitter-yaml.wasm",
  200. queries: {
  201. highlights: [
  202. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/yaml/highlights.scm",
  203. ],
  204. },
  205. },
  206. {
  207. filetype: "haskell",
  208. wasm: "https://github.com/tree-sitter/tree-sitter-haskell/releases/download/v0.23.1/tree-sitter-haskell.wasm",
  209. queries: {
  210. highlights: [
  211. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/haskell/highlights.scm",
  212. ],
  213. },
  214. },
  215. {
  216. filetype: "css",
  217. wasm: "https://github.com/tree-sitter/tree-sitter-css/releases/download/v0.25.0/tree-sitter-css.wasm",
  218. queries: {
  219. highlights: [
  220. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/css/highlights.scm",
  221. ],
  222. },
  223. },
  224. {
  225. filetype: "julia",
  226. wasm: "https://github.com/tree-sitter/tree-sitter-julia/releases/download/v0.23.1/tree-sitter-julia.wasm",
  227. queries: {
  228. highlights: [
  229. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/julia/highlights.scm",
  230. ],
  231. },
  232. },
  233. {
  234. filetype: "lua",
  235. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-lua/releases/download/v0.5.0/tree-sitter-lua.wasm",
  236. queries: {
  237. highlights: [
  238. "https://raw.githubusercontent.com/tree-sitter-grammars/tree-sitter-lua/v0.5.0/queries/highlights.scm",
  239. ],
  240. locals: ["https://raw.githubusercontent.com/tree-sitter-grammars/tree-sitter-lua/v0.5.0/queries/locals.scm"],
  241. },
  242. },
  243. {
  244. filetype: "ocaml",
  245. wasm: "https://github.com/tree-sitter/tree-sitter-ocaml/releases/download/v0.24.2/tree-sitter-ocaml.wasm",
  246. queries: {
  247. highlights: [
  248. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ocaml/highlights.scm",
  249. ],
  250. },
  251. },
  252. {
  253. filetype: "clojure",
  254. // temporarily using fork to fix issues
  255. wasm: "https://github.com/anomalyco/tree-sitter-clojure/releases/download/v0.0.1/tree-sitter-clojure.wasm",
  256. queries: {
  257. highlights: [
  258. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/clojure/highlights.scm",
  259. ],
  260. },
  261. },
  262. {
  263. filetype: "swift",
  264. wasm: "https://github.com/alex-pinkus/tree-sitter-swift/releases/download/0.7.1/tree-sitter-swift.wasm",
  265. queries: {
  266. highlights: [
  267. // NOTE: Using parser repo queries instead of nvim-treesitter due to incompatible #lua-match? predicates
  268. // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/highlights.scm
  269. "https://raw.githubusercontent.com/alex-pinkus/tree-sitter-swift/main/queries/highlights.scm",
  270. ],
  271. locals: [
  272. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/swift/locals.scm",
  273. ],
  274. },
  275. },
  276. {
  277. filetype: "toml",
  278. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-toml/releases/download/v0.7.0/tree-sitter-toml.wasm",
  279. queries: {
  280. highlights: [
  281. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/master/queries/toml/highlights.scm",
  282. ],
  283. },
  284. },
  285. {
  286. filetype: "nix",
  287. // TODO: Replace with official tree-sitter-nix WASM when published
  288. // See: https://github.com/nix-community/tree-sitter-nix/issues/66
  289. wasm: "https://github.com/ast-grep/ast-grep.github.io/raw/40b84530640aa83a0d34a20a2b0623d7b8e5ea97/website/public/parsers/tree-sitter-nix.wasm",
  290. queries: {
  291. highlights: [
  292. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/nix/highlights.scm",
  293. ],
  294. locals: [
  295. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/nix/locals.scm",
  296. ],
  297. },
  298. },
  299. {
  300. filetype: "diff",
  301. aliases: ["udiff", "patch"],
  302. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-diff/releases/download/v0.1.0/tree-sitter-diff.wasm",
  303. queries: {
  304. highlights: [
  305. "https://raw.githubusercontent.com/tree-sitter-grammars/tree-sitter-diff/master/queries/highlights.scm",
  306. ],
  307. },
  308. },
  309. {
  310. filetype: "elixir",
  311. wasm: "https://github.com/elixir-lang/tree-sitter-elixir/releases/download/v0.3.5/tree-sitter-elixir.wasm",
  312. queries: {
  313. highlights: [
  314. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/elixir/highlights.scm",
  315. ],
  316. locals: [
  317. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/elixir/locals.scm",
  318. ],
  319. },
  320. },
  321. {
  322. filetype: "fsharp",
  323. wasm: "https://github.com/ionide/tree-sitter-fsharp/releases/download/0.3.0/tree-sitter-fsharp.wasm",
  324. queries: {
  325. highlights: [
  326. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/fsharp/highlights.scm",
  327. ],
  328. },
  329. },
  330. {
  331. filetype: "r",
  332. wasm: "https://github.com/r-lib/tree-sitter-r/releases/download/v1.2.0/tree-sitter-r.wasm",
  333. queries: {
  334. highlights: [
  335. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/r/highlights.scm",
  336. ],
  337. locals: [
  338. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/r/locals.scm",
  339. ],
  340. },
  341. },
  342. {
  343. filetype: "make",
  344. aliases: ["makefile"],
  345. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-make/releases/download/v1.1.1/tree-sitter-make.wasm",
  346. queries: {
  347. highlights: [
  348. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/make/highlights.scm",
  349. ],
  350. },
  351. },
  352. {
  353. filetype: "vim",
  354. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-vim/releases/download/v0.8.1/tree-sitter-vim.wasm",
  355. queries: {
  356. highlights: [
  357. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/vim/highlights.scm",
  358. ],
  359. locals: [
  360. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/vim/locals.scm",
  361. ],
  362. },
  363. },
  364. {
  365. filetype: "xml",
  366. wasm: "https://github.com/tree-sitter-grammars/tree-sitter-xml/releases/download/v0.7.0/tree-sitter-xml.wasm",
  367. queries: {
  368. highlights: [
  369. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/xml/highlights.scm",
  370. ],
  371. locals: [
  372. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/xml/locals.scm",
  373. ],
  374. },
  375. },
  376. {
  377. filetype: "agda",
  378. wasm: "https://github.com/tree-sitter/tree-sitter-agda/releases/download/v1.3.3/tree-sitter-agda.wasm",
  379. queries: {
  380. highlights: [
  381. "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/agda/highlights.scm",
  382. ],
  383. },
  384. },
  385. ],
  386. }