SharpFuse 0.1.1
See the version list below for details.
dotnet tool install --global SharpFuse --version 0.1.1
dotnet new tool-manifest
dotnet tool install --local SharpFuse --version 0.1.1
#tool dotnet:?package=SharpFuse&version=0.1.1
nuke :add-package SharpFuse --version 0.1.1
🔥 SharpFuse
Surgical C# source fusion powered by Roslyn.
SharpFuse is a modern .NET 8 CLI tool that merges multiple C# source files into a single consolidated file --- safely, cleanly, and intelligently.
Unlike naive text-based merging, SharpFuse uses Roslyn to parse and reconstruct syntax trees, ensuring valid structure, preserved members, and properly deduplicated using directives.
✨ Features
- 🔥 Merge multiple
.csfiles into one - 🧠 Powered by Roslyn (real syntax parsing, no regex hacks)
- 📦 Preserves and deduplicates
usingstatements - 🧬 Supports multiple namespaces
- 🏗 Flattens nested namespaces
- 📑 Adds file-origin headers for traceability
- ⚙ Compatible with legacy C# 7 code and modern C# versions
- 🚀 Built on .NET 8
📦 Example
Input
/MyProject ├── Class1.cs ├── Class2.cs └── Sub/Feature.cs
Output
Merged.cs
namespace MyProject
{
// ===== From: Class1.cs =====
public class Class1 { ... }
// ===== From: Class2.cs =====
public class Class2 { ... }
// ===== From: Feature.cs =====
public class Feature { ... }
}
🚀 Installation
Option 1 --- Clone and Build
git clone https://github.com/omidud/SharpFuse.git
cd SharpFuse
dotnet build -c Release
Run:
dotnet run -- <inputDirectory> <outputFile>
🛠 Usage
SharpFuse <inputDirectory> <outputFile> [--root=NamespaceName]
Arguments
Argument Description
<inputDirectory> Folder containing .cs files
<outputFile> Destination merged file
--root=Name (Optional) Force root namespace
Example
SharpFuse ./src ./Merged.cs --root=MyNamespace
🧠 How It Works
SharpFuse:
- Parses every
.csfile using Roslyn - Extracts namespaces and members
- Deduplicates
usingdirectives - Flattens nested namespaces
- Reconstructs a clean syntax tree
- Emits a single formatted output file
No broken braces.
No malformed syntax.
No regex disasters.
📌 Roadmap
- Support
--lang=<version>(C# version parsing option) - Read
<RootNamespace>from.csproj - Option to preserve original namespaces
-
dotnet toolglobal installation - Optional member sorting
- Exclude patterns via CLI
📜 License
MIT License
Copyright (c) 2026 Omar Laracuente (omidud)
👨💻 Author
Created by Omar Laracuente
GitHub: https://github.com/omidud
⚡ Philosophy
SharpFuse exists for developers who prefer control over magic.
Sometimes you need: - A monolithic SDK file - A single-distribution source file - A flattened code artifact - Or simply to understand everything in one place
SharpFuse makes that possible --- safely.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.