Swallow.Refactor.Execution
1.0.0
See the version list below for details.
dotnet add package Swallow.Refactor.Execution --version 1.0.0
NuGet\Install-Package Swallow.Refactor.Execution -Version 1.0.0
<PackageReference Include="Swallow.Refactor.Execution" Version="1.0.0" />
paket add Swallow.Refactor.Execution --version 1.0.0
#r "nuget: Swallow.Refactor.Execution, 1.0.0"
// Install Swallow.Refactor.Execution as a Cake Addin #addin nuget:?package=Swallow.Refactor.Execution&version=1.0.0 // Install Swallow.Refactor.Execution as a Cake Tool #tool nuget:?package=Swallow.Refactor.Execution&version=1.0.0
Swallow.Refactor
Refactor goes BRRR!
A tool to automatically refactor large swaths of code - the natural continuation of "doing it all by hand" and "tinkering with regexes". You can define a rewriting process and have it executed on many files in a solution - repeatable, testable, predictable.
What's BRRR short for, you ask? Boundless Roslyn Refactoring Runner.
BRRRusage
brrr refactor -s|--solution <solution> [--filter-name <name>] [--filter-content <content>] <rewriters>
When calling refactor
, instead of passing all rewriters via CLI you can instead pass the path to a JSON file.
This file must match the following scheme:
{
"filter": {
"name": "<some regex>", // A regex that filenames should match, optional
"content": "<some text>" // A text that files should contain, optional
},
"rewriters": [
{ "name": "<some rewriter>" }, // A rewriter without any parameters
{ "name": "<some rewriter>", "parameters": [ "parameter", "parameter" ] } // A rewriter with parameters
]
}
To find out what rewriters are available, you can use brrr rewriter list
and brrr rewriter describe <rewriter>
.
BRRRadditional commands
brrr unused -s|--solution <solution> -o|--output <file> <project>
Find unused symbols (i.e. properties and methods, not fields as of now) in the given <project>
and log them to file
.
brrr references -s|--solution <solution> <project>
List all direct and transitive project references of then given <project>
.
BRRRinstallation
Building and installing yourself
To install the tool (and thus make it available globally), you can use the following command:
dotnet pack -c Release -o packages/
dotnet tool install --global --no-cache --add-source packages/ Swallow.Refactor
This will make brrr
be a globally executable tool. To uninstall it again, you can execute:
dotnet tool uninstall --global Swallow.Refactor
Note for users of just
If you've got just installed, you can use just install
, just uninstall
or just reinstall
!
Take a look at the justfile, there're some neat things for you.
Installing via NuGet
... coming soon, I promise!
BRRRlugins
If you want to use your own rewriters, commands, symbol filters, you name it - you can pass your own assemblies to the execution. They will get picked up and the relevant classes are available in all the use-cases as if they were embedded in the program!
Invoking the tool using the -p
or --plugin
option passing a list of semicolon-separated filepaths will load each assembly.
brrr -p|--plugin SomeAssembly.dll;SomeOtherAssembly.dll list
Using this, you will have access to all IRewriter
s of all passed-in assemblies in addition to the included ones.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.0
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Spectre.Console (>= 0.45.0)
- Spectre.Console.Cli (>= 0.45.0)
- Swallow.Refactor.Abstractions (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Swallow.Refactor.Execution:
Package | Downloads |
---|---|
Swallow.Refactor.Testing
A tool to automatically refactor large swaths of code - the natural continuation of "doing it all by hand" and "tinkering with regexes". You can define a rewriting process and have it executed on many files in a solution - repeatable, testable, predictable. |
GitHub repositories
This package is not used by any popular GitHub repositories.
See RELEASE_NOTES.md for release notes