nvim-treesitter-refactor VS refactoring.nvim

Compare nvim-treesitter-refactor vs refactoring.nvim and see what are their differences.

refactoring.nvim

The Refactoring library based off the Refactoring book by Martin Fowler (by ThePrimeagen)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
nvim-treesitter-refactor refactoring.nvim
14 37
371 2,442
1.6% -
2.3 8.8
about 1 year ago about 1 month ago
Lua Lua
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

nvim-treesitter-refactor

Posts with mentions or reviews of nvim-treesitter-refactor. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-26.
  • A plugin i can’t seem to find!
    3 projects | /r/neovim | 26 Apr 2023
    Maybe this? nvim-treesitter-refactor
  • Looking for a cursor highlighting plugin posted recently
    2 projects | /r/neovim | 31 Jan 2023
    These days though I'm using the https://github.com/nvim-treesitter/nvim-treesitter-refactor plugin. It goes one step further and only highlights the matches that are in the same scope. Makes a big difference in a lot of programming languages where you use the same variable named in a lot of smaller functions/methods right next to each other.
  • Anything like Blockman in Neovim?
    10 projects | /r/neovim | 14 Dec 2022
    My desires are not sated, but it seems quite nice. (I recall treesitter-refactor has a similar scope highlighter, but it could be a bit aggressive near root scope -- this might be a more gentle version.
  • How to highlight the symbol under the cursor?
    4 projects | /r/neovim | 29 Sep 2022
    check https://github.com/nvim-treesitter/nvim-treesitter-refactor/
  • Very slow input latency for haskell when treesitter highlighting is enabled
    3 projects | /r/neovim | 8 Aug 2022
    Treesitter performance is a hard problem. First, check the following: 1. Do you use nvim_treesitter#foldexpr()? Try not to use foldmethod=expr in insert mode. Or just switch to nvim-ufo. 2. Do you use nvim-treesitter-refactor's highlight_definitions or highlight_current_scope? These features do slower the performance. Try to disable these features. 3. I've heard some language parser is not good in terms of performance. Since I don't write haskell, I can't help you here. But you can create issue in nvim-treesitter.
  • Looking for treesitter-based (but not LSP-based) plugins with commands like "hover documentation"
    4 projects | /r/neovim | 7 Jul 2022
    For instance, with plugins like nvim-treesitter-refactor and ray-x/navigator.lua, you can use a bunch of commands like "go to definition" and "smart rename" without an LSP server.
  • What do you use treesitter for other than highlighting?
    12 projects | /r/neovim | 10 Jun 2022
    TS Refactor
  • nvim-treesitter-textobjects swap causes error
    1 project | /r/neovim | 20 Apr 2022
    get_node_text was removed from ts_utils. create a pull request to fix it, something like this: https://github.com/nvim-treesitter/nvim-treesitter-refactor/pull/33
  • Is there any plugin to highlight occurences of a value under cursor?
    3 projects | /r/neovim | 17 Feb 2022
    If you have treesitter, you can use nvim-treesitter-refactor. It has the highlight_definitions option that will highlight the definitions of a variable.
  • What’s your home office setup?
    3 projects | /r/ExperiencedDevs | 9 Jan 2022
    Oh! I've actually never tried Emacs text navigation. My brief stint with Emacs was with Spacemacs (w/ the evil-mode plugin). If I knew any lisp when I had given Spacemacs a whirl then there's a chance I may have stuck with it. I've played with Clojure a bit. Ah, it appears that you're a data-eng -- heavy on the Python. Are you trying to mimic something that PyCharm provides? I'm just happy that LSP has come where it has in such little time and that's already improved working with code in various languages quite a bit. Neovim moves incredibly fast and having LuaJIT with support for Lua had completely opened the floodgates for ports of old Vim plugins and made way for newer ones with floating windows/floating terminals. There are two projects each with hundreds of stars on GitHub meant to mimic or one-up org-mode (one has an entirely new spec) with immense development activity. The one-up that Neovim has over Vim presently is tree-sitter (because the core team wrote a wrapper) and exposes a Lua interface for plugin devs that want to use it. It's been neat for themes and my new favorite find-and-replace plugin (https://github.com/nvim-treesitter/nvim-treesitter-refactor). Because there's type data coming from the AST, it's much less likely to have accidental replacements (if at all). It looks like Emacs is making some headway here, though: https://github.com/emacs-tree-sitter

refactoring.nvim

Posts with mentions or reviews of refactoring.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-11.
  • My 2024 PDE: NeoVim
    2 projects | dev.to | 11 Jan 2024
    Treesitter is a syntax parser that'll build a tree-like structure to enable anything from excellent syntax highlighting through to complex refactoring. There are so many creative ways you can use Treesitter, from jumping around text objects to commenting sections of code, it's a must-have in my books.
  • Refactoring tools
    2 projects | /r/neovim | 13 Jul 2023
    Is there any refactoring plugins for Neovim besides https://github.com/ThePrimeagen/refactoring.nvim?
  • change arguments of a function
    1 project | /r/neovim | 25 Jun 2023
    refactoring.nvim is, that I know of, the closest we have to IDE-like refactoring features such as this, but does not have this feature. It would make C development much nicer imo. Perhaps a feature request there may gain traction.
  • What does it mean if TSNode:has_changes() returns true? (implementation of command-preview for refactoring.nvim)
    1 project | /r/neovim | 30 May 2023
    I'm trying to make a naive implementation of command-preview for refactoring.nvim. Currently, my naive implementation is working (since the changes made to a buffer for previewing are discarded by neovim, I'm executing the plugin regularly in order to preview the changes and when the user submits the command to make the changes).
  • First PR using NeoVim, but need help moving forward
    3 projects | /r/neovim | 30 May 2023
    refactoring.nvim and null-ls.nvim may help
  • In neovim ,how to do refactoring python code?
    5 projects | /r/neovim | 20 Apr 2023
    refactoring.nvim is one option. Unfortunately what powers VSCode is the proprietary PyLance and AFAIK there is no way to "Move symbol to file (method will be moved) [and have imports renamed subsequently]".
  • Discussion: what functionality is Vim missing?
    4 projects | /r/vim | 28 Feb 2023
  • New Plugin: ruby toolkit
    2 projects | /r/neovim | 20 Feb 2023
    Just a heads up, I added a lot of Ruby support in ThePrimeagen's Refactoring.nvim plugin some time ago. Covers a lot of what you've created and has support for lots of other languages too
  • Treesitter query language
    1 project | /r/neovim | 3 Feb 2023
    It's a pain to learn. I used the online playground and also read a lot of the queries from popular plugins. I contributed Ruby support to refactoring.nvim which helped me learn a tonne too
  • neovim-related: Are there good refactor plugin for elixir?
    2 projects | /r/elixir | 22 Dec 2022
    You might be able to take the ruby one and make an elixir one. It uses tree-sitter queries which you would need to align up with the elixir, but the syntax is kinda close. See https://github.com/ThePrimeagen/refactoring.nvim/blob/master/lua/refactoring/treesitter/langs/ruby.lua

What are some alternatives?

When comparing nvim-treesitter-refactor and refactoring.nvim you can also consider the following projects:

vim-illuminate - illuminate.vim - (Neo)Vim plugin for automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.

nvim-lsp-ts-utils - Utilities to improve the TypeScript development experience for Neovim's built-in LSP client.

indent-blankline.nvim - Indent guides for Neovim

react-extract.nvim - Neovim plugin for extracting jsx into React component

nvim-treesitter-textobjects

rust.vim - Vim configuration for Rust.

nvim-ts-rainbow - Rainbow parentheses for neovim using tree-sitter. Use https://sr.ht/~p00f/nvim-ts-rainbow instead

pyright - Static Type Checker for Python

trouble.nvim - 🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.

nvim-dap-ruby

monokai.nvim - Monokai theme for Neovim written in Lua.

neovim - Vim-fork focused on extensibility and usability