theprimeagen/refactoring.nvim

The Refactoring library based off the Refactoring book by Martin Fowler

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 31 minutes ago
Added to GitGenius on September 19th, 2026
Created on July 20th, 2021
Open Issues & Pull Requests: 6 (+0)
GitHub issues: Enabled
Number of forks: 106
Total Stargazers: 3,647 (+0)
Total Subscribers: 27 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.0 hours
Mean response time: 67.5 days
90th percentile: 89.2 days
Tracked items: 40

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 912 days
Stale 30+ days: 3
Stale 90+ days: 3

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (5)
  • feature (4)
  • bug (2)
  • waiting-reply (2)
  • documentation (1)
  • improvement (1)
  • new lang support (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

refactoring.nvim is a Neovim plugin that provides automated refactoring operations powered by tree-sitter and LSP.

The plugin addresses the challenge of performing safe, large-scale code transformations in an editor by automating refactoring patterns from Martin Fowler's Refactoring book. It works by combining tree-sitter parsing for syntax-aware code analysis with LSP capabilities for semantic understanding. The tool offers operators that integrate with Neovim's motion and textobject system, supporting dot-repeat for efficient repeated application. Operations include inlining variables and functions, extracting variables and functions, and inserting debug print statements at specific locations with context information.

The plugin suits developers working in Neovim who want to perform refactorings without manual code manipulation. It works best for languages with available tree-sitter parsers and corresponding query definitions, which the project bundles for supported languages. Projects benefit most when they have an LSP server available that supports references and definition lookups, though some operations like extract variable rely only on tree-sitter. The tool provides fine-grained customization through global setup, per-call options, and buffer-local configuration, allowing teams to adapt behavior to their coding standards.

Development shows consistent activity with regular commits addressing bug fixes and feature improvements. The project maintains responsiveness to user-reported issues and pull requests. Updates reflect attention to both expanding language support and refining the reliability of existing operations.