Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. nvim-treesitter

nvim-treesitter

Apache-2.0Tree-sitter Query

A Neovim plugin that provides an abstraction layer for installing and managing tree-sitter parsers and queries.

GitHubGitHub
13.8k stars1.3k forks0 contributors

What is nvim-treesitter?

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.

Target Audience

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.

Value Proposition

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.

Overview

Nvim Treesitter configurations and abstraction layer

Use Cases

Best For

  • Enabling advanced syntax highlighting in Neovim using tree-sitter
  • Managing tree-sitter parsers for multiple programming languages
  • Adding custom language parsers not officially supported by tree-sitter
  • Implementing tree-sitter-based code folding and indentation
  • Experimenting with language-aware features before they are upstreamed to Neovim
  • Setting up a consistent development environment across different file types

Not Ideal For

  • Users on Neovim versions older than 0.12.0 who cannot or do not wish to upgrade
  • Developers who rely on lazy-loading plugins to optimize editor startup performance
  • Environments lacking standard Unix tools (tar, curl) or a C compiler for parser compilation
  • Projects needing automatic, out-of-the-box syntax highlighting without additional configuration steps

Pros & Cons

Pros

Efficient Parser Management

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.

Pre-built Query Library

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.

Custom Language Integration

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.

Backward Compatibility Option

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.

Cons

Breaking Changes

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.

External Dependencies

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.

No Lazy-Loading Support

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.

Manual Feature Activation

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.

Frequently Asked Questions

Quick Stats

Stars13,810
Forks1,329
Contributors0
Open Issues255
Last commit21 days ago
CreatedSince 2020

Tags

#vimscript#syntax-highlighting#neovim-plugin#tree-sitter#language-support#editor-enhancement#neovim#lua-configuration

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 1 day ago

Related Projects

nvim-surroundnvim-surround

Add/change/delete surrounding delimiter pairs with ease. Written with :heart: in Lua.

Stars4,182
Forks78
Last commit19 days ago
nvim-treesitter-textobjectsnvim-treesitter-textobjects

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.

Stars2,742
Forks257
Last commit17 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub