Will Treesitter ever be stable on big files?

This page summarizes the projects mentioned and recommended in the original post on /r/neovim

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. neovim

    Vim-fork focused on extensibility and usability

    Injection tree is not incremental. This is a direct cause of 1, and is the biggest performance issue caused by TS in nvim now. The injection trees will be rebuilt and reparsed at every buffer change. Usually this will incredibly prolong the screen drawing time and block editing for a long time at every keystroke on large file, causing editor unusable.

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. nvim-treesitter

    Discontinued Nvim Treesitter configurations and abstraction layer

    Bloated injection queries ships with nvim-treesitter. As a half-official TS support plugin in nvim, all-in-one also means bloating for normal users. See injection query for javascript in nvim-treesitter for example. Usually users are not in high demand of them in normal programming language (unlike markdown), but they will pay the extreme high performance cost for this feature.

  4. tree-sitter

    An incremental parsing system for programming tools

    The following discussion here. TS query cannot be incremental, that is why I regard it as design fault.

  5. helix

    A post-modern modal text editor.

    True, However (as someone who doesn't have any experience with tree-sitter) the commits adding incremental injection parsing look quite obtruse: https://github.com/helix-editor/helix/compare/6728e44..4080341

  6. syntect

    Rust library for syntax highlighting using Sublime Text syntax definitions.

    I wonder if a plugin integrating syntect would be possible.

  7. tree-sitter-comment

    Tree-sitter grammar for comment tags like TODO, FIXME(user).

    you mean this one? https://github.com/stsewd/tree-sitter-comment

  8. tracy

    Frame profiler

    I also found that using https://github.com/wolfpld/tracy with tree-sitter functions marked in Neovim that some individual queries and parse operation would have significant perf impact while other do not and that there are some parsers who tend to not really support incremental parsing but often need to throw away from cursor position until file end on certain character. We would need more infrastructure and built-in profiling to detect problems in certain languages earlier.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • What I've Learned About My Editing Skills

    5 projects | dev.to | 10 Dec 2024
  • Bram Moolenaar Passed Away

    2 projects | news.ycombinator.com | 5 Aug 2023
  • Weird indentation on python

    4 projects | /r/neovim | 3 May 2023
  • Dumb question: how to spell check only comments?

    2 projects | /r/neovim | 29 Mar 2023
  • Support for semantic token modifiers merged!

    2 projects | /r/neovim | 7 Mar 2023

Did you know that Rust is
the 3rd most popular programming language
based on number of references?