A Neovim plugin for easy navigation and manipulation of Tree-sitter syntax trees, including comments and multi-language files.
tree-climber.nvim is a Neovim plugin that enables navigation and manipulation of Tree-sitter syntax trees. It solves the problem of moving through code structures efficiently by providing motions to jump between nodes (parent, child, siblings) and swap nodes, even in comments and multi-language files.
Neovim users who work with Tree-sitter and want enhanced code navigation and editing capabilities, particularly those dealing with complex or multi-language codebases.
Developers choose tree-climber.nvim for its abstract tree navigation that works across languages without per-type configurations, support for comments and multi-language files, and intuitive node swapping and selection features.
tree-climber.nvim is a Neovim plugin that provides intuitive motions for navigating and manipulating the syntax tree generated by Tree-sitter. It enables developers to move between nodes (parent, child, siblings) and swap neighboring nodes directly within the abstract syntax tree, enhancing code editing efficiency.
in for "inner node."tree-climber.nvim aims to provide a unified, abstract way to navigate Tree-sitter trees without requiring per-language configurations, making it a versatile tool for code editing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides intuitive motions like goto_parent and goto_child that work across any Tree-sitter tree without per-language configurations, as stated in the philosophy for a versatile editing experience.
Works in comments and multi-language files, unlike alternatives like syntax-tree-surfer, making it effective for complex codebases with embedded languages or extensive comments.
Enables swapping neighboring nodes and selecting nodes as text objects (e.g., 'in' mapping), allowing quick code restructuring and precise edits directly within the syntax tree.
Maintains tree depth between jumps for easy backtracking and squashes single-child parents to simplify navigation, enhancing efficiency as highlighted in the README features.
Lacks built-in, language-specific text object mappings compared to plugins like nvim-treesitter-textobjects, requiring users to manually set up keymaps for advanced use cases.
Requires Tree-sitter to be properly installed and parsing files correctly; navigation can fail if Tree-sitter encounters issues, adding complexity to the dependency chain.
Does not come with pre-configured keymaps; users must map functions like goto_next and swap_prev themselves, which may deter those seeking plug-and-play solutions.