diff --git a/README.md b/README.md index 83722b8..9048575 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,75 @@ -# Super Clean +
-A Visual Studio extension that adds a 'Super Clean' option to the right click menu of the Solution and Project nodes of the Solution Explorer, to clear out the bin and obj folders for all, or selected, projects in the solution. +Super Clean Logo -## License +--- -[![License - MIT](https://img.shields.io/github/license/codingwithcalvin/vs-superclean?style=for-the-badge)](https://img.shields.io/github/license/codingwithcalvin/vs-superclean?style=for-the-badge) +[![License](https://img.shields.io/github/license/CodingWithCalvin/VS-SuperClean?style=for-the-badge)](https://github.com/CodingWithCalvin/VS-SuperClean/blob/main/LICENSE) +[![Build](https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/VS-SuperClean/build.yml?style=for-the-badge)](https://github.com/CodingWithCalvin/VS-SuperClean/actions/workflows/build.yml) -## Build Status +[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/CodingWithCalvin.VS-SuperClean?style=for-the-badge)](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-SuperClean) +[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/CodingWithCalvin.VS-SuperClean?style=for-the-badge)](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-SuperClean) +[![Visual Studio Marketplace](https://img.shields.io/badge/VS%20Marketplace-Install-blue?style=for-the-badge&logo=visualstudio)](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-SuperClean) +[![Visual Studio Marketplace Rating](https://img.shields.io/visual-studio-marketplace/r/CodingWithCalvin.VS-SuperClean?style=for-the-badge)](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-SuperClean) -![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/vs-superclean/release_build_and_deploy.yml?style=for-the-badge) +๐Ÿงน **Clean your solution the way it should have always worked!** -## Marketplace Status +Tired of lingering build artifacts causing mysterious issues? **Super Clean** nukes those `bin` and `obj` folders with a single click โ€” no more hunting through folders manually! โœจ -[![Marketplace Installations](https://img.shields.io/visual-studio-marketplace/i/codingwithcalvin.vs-superclean?style=for-the-badge)](https://img.shields.io/visual-studio-marketplace/i/codingwithcalvin.vs-superclean?style=for-the-badge) [![Marketplace Downloads](https://img.shields.io/visual-studio-marketplace/d/codingwithcalvin.vs-superclean?style=for-the-badge)](https://img.shields.io/visual-studio-marketplace/d/codingwithcalvin.vs-superclean?style=for-the-badge) -[![Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/codingwithcalvin.vs-superclean?style=for-the-badge)](https://img.shields.io/visual-studio-marketplace/v/codingwithcalvin.vs-superclean?style=for-the-badge) [![Marketplace Rating](https://img.shields.io/visual-studio-marketplace/r/codingwithcalvin.vs-superclean?style=for-the-badge)](https://img.shields.io/visual-studio-marketplace/r/codingwithcalvin.vs-superclean?style=for-the-badge) +
-## Contribute +## โœจ Features -Contributions are welcome! Issues, PRs, etc. While it may seem this extension is "done", who knows what the future may hold for it? +| Feature | Description | +|---------|-------------| +| ๐Ÿ—‚๏ธ **Solution-level cleaning** | Right-click the solution to clean all projects at once | +| ๐Ÿ“ **Project-level cleaning** | Right-click individual projects to clean just that project | +| ๐Ÿ—‘๏ธ **Removes bin folder** | Deletes the entire `bin` directory and all its contents | +| ๐Ÿ“ฆ **Removes obj folder** | Deletes the entire `obj` directory and all its contents | +| โšก **Fast and reliable** | Quick deletion without the overhead of MSBuild's Clean target | + +## ๐Ÿ“ฅ Installation + +### Visual Studio Marketplace (Recommended) + +[![Install from VS Marketplace](https://img.shields.io/badge/Install%20from-VS%20Marketplace-purple?style=for-the-badge&logo=visualstudio)](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-SuperClean) + +### Manual Installation + +1. ๐Ÿ“ฅ Download the `.vsix` file from the [Releases](https://github.com/CodingWithCalvin/VS-SuperClean/releases) page +2. ๐Ÿ–ฑ๏ธ Double-click the downloaded file to install + +## ๐ŸŽฎ Usage + +1. ๐Ÿ–ฑ๏ธ Right-click on a **Solution** or **Project** in Solution Explorer +2. ๐Ÿ“‹ Select **Super Clean** +3. ๐Ÿงน Watch those `bin` and `obj` folders disappear! + +## ๐Ÿ’ป Supported Versions + +| Visual Studio | Architectures | +|---------------|---------------| +| ๐ŸŸข Visual Studio 2022 (17.x) | x64 (amd64), ARM64 | +| ๐ŸŸข Visual Studio 2026 (18.x) | x64 (amd64), ARM64 | + +## ๐Ÿ“„ License + +This project is licensed under the [MIT License](LICENSE). + +## ๐Ÿค Contributing + +Contributions are welcome! Issues, PRs, feature requests โ€” bring it on! ๐Ÿ’ช For cloning and building this project yourself, make sure to install the [Extensibility Essentials 2022 extension](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ExtensibilityEssentials2022) for Visual Studio which enables some features used by this project. -## Contributors +## ๐Ÿ‘ฅ Contributors -[![CalvinAllen](https://avatars.githubusercontent.com/u/41448698?v=4&s=64)](https://github.com/CalvinAllen) +[![CalvinAllen](https://avatars.githubusercontent.com/u/41448698?v=4&s=64)](https://github.com/CalvinAllen) + +--- + +

+ Made with โค๏ธ by Coding With Calvin +

diff --git a/src/CodingWithCalvin.SuperClean.slnx b/src/CodingWithCalvin.SuperClean.slnx index 99baf85..ff8c7d6 100644 --- a/src/CodingWithCalvin.SuperClean.slnx +++ b/src/CodingWithCalvin.SuperClean.slnx @@ -4,11 +4,5 @@ - - - - - - diff --git a/src/CodingWithCalvin.SuperClean/Commands/SuperCleanCommand.cs b/src/CodingWithCalvin.SuperClean/Commands/SuperCleanCommand.cs index 9834d79..a0716b8 100644 --- a/src/CodingWithCalvin.SuperClean/Commands/SuperCleanCommand.cs +++ b/src/CodingWithCalvin.SuperClean/Commands/SuperCleanCommand.cs @@ -28,8 +28,8 @@ private SuperCleanCommand(Package package) } var menuCommandId = new CommandID( - PackageGuids.CommandSetGuid, - PackageIds.SuperCleanCommandId + VSCommandTableVsct.CommandSetGuid.Guid, + VSCommandTableVsct.CommandSetGuid.SuperCleanCommandId ); var menuItem = new MenuCommand(OpenPathWrapper, menuCommandId); commandService.AddCommand(menuItem); diff --git a/src/CodingWithCalvin.SuperClean/Properties/launchSettings.json b/src/CodingWithCalvin.SuperClean/Properties/launchSettings.json new file mode 100644 index 0000000..1db0047 --- /dev/null +++ b/src/CodingWithCalvin.SuperClean/Properties/launchSettings.json @@ -0,0 +1,9 @@ +{ + "profiles": { + "Debug Extension": { + "commandName": "Executable", + "executablePath": "C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\Common7\\IDE\\devenv.exe", + "commandLineArgs": "/rootSuffix Exp" + } + } +} diff --git a/src/CodingWithCalvin.SuperClean/SuperCleanPackage.cs b/src/CodingWithCalvin.SuperClean/SuperCleanPackage.cs index 2328fe2..a9f948f 100644 --- a/src/CodingWithCalvin.SuperClean/SuperCleanPackage.cs +++ b/src/CodingWithCalvin.SuperClean/SuperCleanPackage.cs @@ -9,8 +9,8 @@ namespace CodingWithCalvin.SuperClean { [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] - [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] - [Guid(PackageGuids.PackageGuidString)] + [InstalledProductRegistration(VsixInfo.DisplayName, VsixInfo.Description, VsixInfo.Version)] + [Guid(VSCommandTableVsct.PackageGuidString)] [ProvideMenuResource("Menus.ctmenu", 1)] public sealed class SuperCleanPackage : AsyncPackage { diff --git a/src/CodingWithCalvin.SuperClean/VSCommandTable.cs b/src/CodingWithCalvin.SuperClean/VSCommandTable.cs deleted file mode 100644 index 1a55b9d..0000000 --- a/src/CodingWithCalvin.SuperClean/VSCommandTable.cs +++ /dev/null @@ -1,32 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This file was generated by VSIX Synchronizer -// -// ------------------------------------------------------------------------------ -namespace CodingWithCalvin.SuperClean -{ - using System; - - /// - /// Helper class that exposes all GUIDs used across VS Package. - /// - internal sealed partial class PackageGuids - { - public const string PackageGuidString = "b9f1849b-9015-42a1-8d78-0b0bab1beb17"; - public static Guid PackageGuid = new Guid(PackageGuidString); - - public const string CommandSetGuidString = "2c1bb787-3f78-4c0e-a751-c43faf7b3356"; - public static Guid CommandSetGuid = new Guid(CommandSetGuidString); - - public const string IconGuidString = "e1543274-12ce-467c-84f8-2e5680b0bb98"; - public static Guid IconGuid = new Guid(IconGuidString); - } - /// - /// Helper class that encapsulates all CommandIDs uses across VS Package. - /// - internal sealed partial class PackageIds - { - public const int SuperCleanCommandId = 0x0100; - public const int BroomIcon = 0x0001; - } -} \ No newline at end of file diff --git a/src/CodingWithCalvin.SuperClean/source.extension.cs b/src/CodingWithCalvin.SuperClean/source.extension.cs deleted file mode 100644 index c276aaf..0000000 --- a/src/CodingWithCalvin.SuperClean/source.extension.cs +++ /dev/null @@ -1,18 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This file was generated by VSIX Synchronizer -// -// ------------------------------------------------------------------------------ -namespace CodingWithCalvin.SuperClean -{ - internal sealed partial class Vsix - { - public const string Id = "VS-SuperClean"; - public const string Name = "Super Clean"; - public const string Description = @"Adds a 'Super Clean' option to the right click menu of the Solution and Project nodes of the Solution Explorer, to clear out the bin and obj folders for all, or selected, projects in the solution."; - public const string Language = "en-US"; - public const string Version = "1.1"; - public const string Author = "Coding With Calvin"; - public const string Tags = "bin,debug,folder,output"; - } -}