Closed Wilfred closed 2 years ago
Parsing the file is actually very fast:
➜ tree-sitter-elixir git:(main) npx tree-sitter parse --quiet --time tmp/bottles.ex
tmp/bottles.ex 0 ms
In fact, parsing the whole elixir-lang/elixir codebase takes ~2.1s for me :)
So the performance issues are rather related to how you use the AST, most likely queries. There has been a regression and then a fix in recent tree-sitter versions, see the discussion in https://github.com/nvim-treesitter/nvim-treesitter/issues/1957 and https://github.com/tree-sitter/tree-sitter/issues/1510, maybe it helps.
If I miss anything, please let me know!
Wow, thanks for the speedy response!
Yeah, it looks like https://github.com/tree-sitter/tree-sitter/issues/1510 is the culprit. I might downgrade to tree-sitter 0.19 until the fix is released.
I recently ported difftastic to use this parser rather than https://github.com/ananthakumaran/tree-sitter-elixir.
https://gist.github.com/gausby/7b31d00bea9e97cf416e parses correctly, but it takes ~6 seconds to parse on my machine. This is an improvement over the previous parser (which is either looping or taking much longer -- I gave up after 5 minutes), but presumably a 48 line file should be faster than this?