Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

As a Rust Library

Add Refactor DSL to your Cargo.toml:

[dependencies]
refactor = "0.1"

Then import the prelude in your code:

#![allow(unused)]
fn main() {
use refactor::prelude::*;
}

The prelude includes all commonly used types:

  • Refactor, MultiRepoRefactor, RefactorResult
  • Matcher, FileMatcher, GitMatcher, AstMatcher
  • Transform, TransformBuilder, TextTransform, AstTransform
  • Language, LanguageRegistry, Rust, TypeScript, Python, Go, Java, CSharp, Ruby
  • LspClient, LspRegistry, LspRename, LspInstaller
  • Refactoring: ExtractFunction, InlineVariable, MoveToFile, ChangeSignature, SafeDelete, FindDeadCode
  • Discovery: DependencyFilter, FrameworkFilter, MetricFilter, LanguageFilter
  • RefactorError, Result

As a CLI Tool

From Source

Clone and build the CLI:

git clone https://github.com/yourusername/refactor
cd refactor
cargo install --path .

Verify Installation

refactor --version
refactor languages  # List supported languages

Dependencies

Refactor DSL uses these key dependencies:

DependencyPurpose
tree-sitterMulti-language parsing
git2Git repository operations
walkdirFile system traversal
globsetGlob pattern matching
regexRegular expressions
lsp-typesLSP protocol types

Optional LSP Servers

For semantic refactoring (rename, find references), you’ll need language servers:

LanguageServerInstall
Rustrust-analyzerrustup component add rust-analyzer
TypeScripttypescript-language-servernpm i -g typescript-language-server
Pythonpyrightnpm i -g pyright
Gogoplsgo install golang.org/x/tools/gopls@latest
JavajdtlsEclipse JDT Language Server
C#omnisharpdotnet tool install -g OmniSharp
Rubysolargraphgem install solargraph
C/C++clangdSystem package manager

Or use auto-installation from the Mason registry (see LSP Auto-Installation).