Interactively select and swap function arguments, list elements, and other code nodes in Neovim using tree-sitter.
iswap.nvim is a Neovim plugin that allows developers to interactively swap and move code elements like function arguments, list items, and parameters within their editor. It solves the problem of tedious manual text editing when reorganizing code by providing a visual, key-driven interface powered by tree-sitter for accurate node selection.
Neovim users, particularly developers working in languages with complex function signatures or data structures who frequently refactor code and want faster, more precise editing workflows.
Developers choose iswap.nvim for its seamless integration with Neovim's tree-sitter capabilities, offering context-aware swapping that reduces errors and keypresses compared to manual editing or generic text-object plugins.
Interactively select and swap function arguments, list elements, and much more. Powered by tree-sitter.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows swapping by pressing keys corresponding to highlighted nodes, with real-time feedback as shown in the project's GIF, making selections intuitive and fast.
Leverages Neovim's tree-sitter to precisely identify syntactical nodes like arguments and lists, reducing syntax errors during code manipulation.
Offers multiple commands like :ISwapWith and :IMove for different swapping and moving scenarios, enhancing flexibility in refactoring workflows.
Configurable key mappings, highlight groups, and behaviors such as autoswap and cursor movement via Lua setup, allowing tailored integration.
The README warns of errors requiring deletion and reinstallation, indicating potential stability or maintenance problems that could disrupt workflows.
Requires tree-sitter to be installed and configured in Neovim, adding setup complexity and limiting use in environments without proper tree-sitter support.
Only works with Neovim due to its deep integration with tree-sitter and Lua, making it incompatible with Vim or other editors out of the box.