Swallow.Refactor.Execution 1.0.0

There is a newer version of this package available.
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                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Swallow.Refactor.Execution" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Swallow.Refactor.Execution --version 1.0.0                
#r "nuget: Swallow.Refactor.Execution, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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 IRewriters of all passed-in assemblies in addition to the included ones.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last updated
3.1.0 138 4/24/2024
3.0.0 132 1/20/2024
2.1.0 212 10/21/2023
2.0.1 177 7/30/2023
2.0.0 173 6/15/2023
1.0.1 128 6/4/2023
1.0.0 155 4/10/2023

See RELEASE_NOTES.md for release notes