refactoring.nvim VS null-ls.nvim

Compare refactoring.nvim vs null-ls.nvim and see what are their differences.

refactoring.nvim

The Refactoring library based off the Refactoring book by Martin Fowler (by ThePrimeagen)

null-ls.nvim

Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. (by jose-elias-alvarez)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
refactoring.nvim null-ls.nvim
37 164
2,475 3,554
- -
8.8 0.0
about 2 months ago 9 months ago
Lua Lua
MIT License GNU General Public License v3.0 or later
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.

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

null-ls.nvim

Posts with mentions or reviews of null-ls.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • cpp setting problem
    4 projects | /r/neovim | 6 Dec 2023
  • Being a bash developer in the 21st century
    4 projects | news.ycombinator.com | 22 Sep 2023
    you can use nvim then, it has shellcheck for diagnostics and formatting, like in vscode :)

    here the link to the config: https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main...

  • Linting/formatting and LSP
    1 project | /r/neovim | 8 Sep 2023
    I use a lot of different languages generally and I'm running into issues around formatting. Is there any standard way to use LSP formatting by default and otherwise fallback to specific linter/formatting programs? I believe null-ls is the normal way of dealing with this, but since it's been archived, I'd rather not rely on it.
  • How to setup efm-langserver for pint formatter?
    3 projects | /r/neovim | 13 Jul 2023
    I've been using pint for formatting php files with null-ls.nvim. Few days ago null-ls.nvim has announced that the plugin will be archived in few months so I started migrating all my formatters and linter from null-ls to efm-langserver. I got other things such as prettier, black, isort, mypy, etc. working but can't get pint to work with php files: If I run pint via efm-langserver, everything is deleted from the buffer, and the saved file is formatted separately. How do I setup efm-langserver correctly to work with pint? Below is my config.yml for pint currently. yaml tools: pint: &pint format-command: "pint --no-interaction --quiet ${INPUT}" format-stdin: false languages: php: - <<: *pint Thank you.
  • Archiving Null-Ls
    1 project | news.ycombinator.com | 10 Jul 2023
  • null-ls will be archived
    1 project | /r/ThePrimeagenReact | 10 Jul 2023
    14 projects | /r/neovim | 9 Jul 2023
  • Why is nobody using CoC anymore?
    3 projects | /r/neovim | 3 Jul 2023
    Because null-ls.nvim & mason.nvim together do everything I wanted CoC for
  • Your favourite Neovim plugins?
    42 projects | /r/neovim | 21 Jun 2023
  • How can I get yapf, black, and other formatters working with pylsp?
    1 project | /r/neovim | 19 Jun 2023
    There is a good answer. I think you know lua and neovim config enough to pick things that you need. If you need a short answer, null-ls is the way.

What are some alternatives?

When comparing refactoring.nvim and null-ls.nvim you can also consider the following projects:

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

formatter.nvim

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

nvim-lspconfig - Quickstart configs for Nvim LSP

rust.vim - Vim configuration for Rust.

neoformat - :sparkles: A (Neo)vim plugin for formatting code.

pyright - Static Type Checker for Python

StyLua - An opinionated Lua code formatter

nvim-treesitter-refactor - Refactor module for nvim-treesitter

nvim-lint - An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.

nvim-dap-ruby

efm-langserver - General purpose Language Server