A Neovim plugin that provides an abstraction layer for installing and managing tree-sitter parsers and queries.
nvim-treesitter is a Neovim plugin that acts as an abstraction layer for tree-sitter, a parser generator that enables advanced syntax-aware features in the editor. It provides tools to install and manage tree-sitter parsers for various programming languages, along with queries to enable features like syntax highlighting, code folding, and indentation directly within Neovim.
Neovim users and developers who want to enhance their editor with tree-sitter-based syntax highlighting, folding, and other language-aware features across a wide range of programming languages.
Developers choose nvim-treesitter because it simplifies the integration of tree-sitter into Neovim, offering a centralized way to manage parsers and queries while providing experimental features and support for custom languages, all without requiring deep configuration.
Nvim Treesitter configurations and abstraction layer
Provides built-in functions to install, update, and remove tree-sitter parsers for a wide range of languages, simplifying the process compared to manual handling, as shown in the TSUpdate command and installation setup.
Includes ready-to-use queries for syntax highlighting, folding, and other features, enabling tree-sitter capabilities in Neovim with minimal effort, as detailed in the supported features section.
Allows users to add and configure parsers for languages not officially supported, offering flexibility for niche or emerging languages through manual setup in autocommands, as explained in the advanced setup.
Maintains a locked master branch for older Neovim versions (0.11), ensuring users who cannot upgrade still have access to a stable version, as noted in the cautionary README section.
The plugin underwent a full, incompatible rewrite, requiring users to set up from scratch, which can be disruptive for existing configurations, as explicitly warned in the README.
Requires tar, curl, tree-sitter-cli (0.26.1+), and a C compiler, adding complexity and potential issues in restricted environments, as listed in the requirements section.
Explicitly does not support lazy-loading, which may lead to slower startup times compared to plugins that can be loaded on demand, as stated in the installation notes.
Features like highlighting and folding must be manually enabled via autocommands or ftplugins, increasing initial setup overhead, as demonstrated in the supported features setup examples.
Add/change/delete surrounding delimiter pairs with ease. Written with :heart: in Lua.
nvim-treesitter-textobjects is a Neovim plugin that leverages Tree-sitter's parsing capabilities to define and manipulate text objects based on the abstract syntax tree (AST) of your code. It enables precise, language-aware editing operations, moving beyond simple regex-based text objects to understand the actual structure of programming languages. ## Key Features - **Syntax-Aware Selection** — Define custom text objects (like `@function.inner` or `@class.outer`) for precise selection within syntactic structures. - **Intelligent Movement** — Jump between text objects (e.g., functions, classes, loops) with mappings that understand code hierarchy. - **Node Swapping** — Swap adjacent syntactic nodes (like parameters or arguments) with simple commands. - **Repeatable Actions** — Make movements repeatable with `;` and `,` for efficient navigation. - **Extensible Queries** — Override or extend built-in textobjects by adding custom Tree-sitter query files. - **Multiple Modes** — Support for charwise, linewise, and blockwise selection modes per text object. ## Philosophy The plugin embraces Tree-sitter's accuracy to provide text objects that are deeply integrated with the language's syntax, offering a more reliable and intuitive editing experience compared to traditional pattern-based approaches.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.