diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5567791ec..09c112c8f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Changelog
-## vNext (11.3)
+## vNext (12.1)
These changes have not been released to the Visual Studio marketplace, but (if checked) are available in preview within the [CI build](http://vsixgallery.com/extension/4c82e17d-927e-42d2-8460-b473ac7df316/).
@@ -12,6 +12,21 @@ These changes have not been released to the Visual Studio marketplace, but (if c
These are the changes to each version that has been released to the Visual Studio marketplace.
+## 12.0
+
+**2021-11-07**
+
+- [x] Features
+ - [x] [#778](https://github.com/codecadwallader/codemaid/pull/778) - Cleaning: Option to specify file inclusions by RegEx - thanks [Timo-Weike](https://github.com/Timo-Weike)!
+ - [x] [#797](https://github.com/codecadwallader/codemaid/pull/797) - Cleaning: Option to replace existing file headers (vs. default insert) - thanks [lflender](https://github.com/lflender)!
+ - [x] [#815](https://github.com/codecadwallader/codemaid/pull/815) - Cleaning: Option to place file headers after C# using block - thanks [lflender](https://github.com/lflender)!
+ - [x] [#828](https://github.com/codecadwallader/codemaid/pull/828) - Reorganizing: Option to include access levels in regions for methods only - thanks [lflender](https://github.com/lflender)!
+ - [x] [#853](https://github.com/codecadwallader/codemaid/pull/853) - Visual Studio 2022 Support - thanks [olegtk](https://github.com/olegtk) and many others!
+
+- [x] Fixes
+ - [x] [#800](https://github.com/codecadwallader/codemaid/pull/800) - Reorganizing: Fix dialog showing literal newline characters
+
+
## 11.2
**2021-01-02**
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CPlusPlusTests.cs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/CPlusPlusTests.cs
deleted file mode 100644
index c32ff6085..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CPlusPlusTests.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using EnvDTE;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using SteveCadwallader.CodeMaid.IntegrationTests.Helpers;
-using SteveCadwallader.CodeMaid.Logic.Cleaning;
-using SteveCadwallader.CodeMaid.Properties;
-using System;
-
-namespace SteveCadwallader.CodeMaid.IntegrationTests.Cleaning.FileTypes
-{
- [TestClass]
- [DeploymentItem(@"Cleaning\FileTypes\Data\CPlusPlus.cpp", "Data")]
- public class CPlusPlusTests
- {
- #region Setup
-
- private static CodeCleanupAvailabilityLogic _codeCleanupAvailabilityLogic;
- private ProjectItem _projectItem;
-
- [ClassInitialize]
- public static void ClassInitialize(TestContext testContext)
- {
- _codeCleanupAvailabilityLogic = CodeCleanupAvailabilityLogic.GetInstance(TestEnvironment.Package);
- Assert.IsNotNull(_codeCleanupAvailabilityLogic);
- }
-
- [TestInitialize]
- public void TestInitialize()
- {
- TestEnvironment.CommonTestInitialize();
- _projectItem = TestEnvironment.LoadFileIntoProject(@"Data\CPlusPlus.cpp");
- }
-
- [TestCleanup]
- public void TestCleanup()
- {
- TestEnvironment.RemoveFromProject(_projectItem);
- }
-
- #endregion Setup
-
- #region Tests
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCPlusPlus_EnablesForDocument()
- {
- Settings.Default.Cleaning_IncludeCPlusPlus = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCPlusPlus_EnablesForProjectItem()
- {
- Settings.Default.Cleaning_IncludeCPlusPlus = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCPlusPlus_DisablesForDocumentWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCPlusPlus = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCPlusPlus_DisablesForProjectItemWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCPlusPlus = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- #endregion Tests
- }
-}
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSHTMLTests.cs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSHTMLTests.cs
deleted file mode 100644
index 09a7d7d70..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSHTMLTests.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using EnvDTE;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using SteveCadwallader.CodeMaid.IntegrationTests.Helpers;
-using SteveCadwallader.CodeMaid.Logic.Cleaning;
-using SteveCadwallader.CodeMaid.Properties;
-using System;
-
-namespace SteveCadwallader.CodeMaid.IntegrationTests.Cleaning.FileTypes
-{
- [TestClass]
- [DeploymentItem(@"Cleaning\FileTypes\Data\CSHTML.cshtml", "Data")]
- public class CSHTMLTests
- {
- #region Setup
-
- private static CodeCleanupAvailabilityLogic _codeCleanupAvailabilityLogic;
- private ProjectItem _projectItem;
-
- [ClassInitialize]
- public static void ClassInitialize(TestContext testContext)
- {
- _codeCleanupAvailabilityLogic = CodeCleanupAvailabilityLogic.GetInstance(TestEnvironment.Package);
- Assert.IsNotNull(_codeCleanupAvailabilityLogic);
- }
-
- [TestInitialize]
- public void TestInitialize()
- {
- TestEnvironment.CommonTestInitialize();
- _projectItem = TestEnvironment.LoadFileIntoProject(@"Data\CSHTML.cshtml");
- }
-
- [TestCleanup]
- public void TestCleanup()
- {
- TestEnvironment.RemoveFromProject(_projectItem);
- }
-
- #endregion Setup
-
- #region Tests
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSHTML_EnablesForDocument()
- {
- Settings.Default.Cleaning_IncludeHTML = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSHTML_EnablesForProjectItem()
- {
- Settings.Default.Cleaning_IncludeHTML = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSHTML_DisablesForDocumentWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeHTML = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSHTML_DisablesForProjectItemWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeHTML = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- #endregion Tests
- }
-}
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSSTests.cs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSSTests.cs
deleted file mode 100644
index 89c649f47..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSSTests.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using EnvDTE;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using SteveCadwallader.CodeMaid.IntegrationTests.Helpers;
-using SteveCadwallader.CodeMaid.Logic.Cleaning;
-using SteveCadwallader.CodeMaid.Properties;
-using System;
-
-namespace SteveCadwallader.CodeMaid.IntegrationTests.Cleaning.FileTypes
-{
- [TestClass]
- [DeploymentItem(@"Cleaning\FileTypes\Data\CSS.css", "Data")]
- public class CSSTests
- {
- #region Setup
-
- private static CodeCleanupAvailabilityLogic _codeCleanupAvailabilityLogic;
- private ProjectItem _projectItem;
-
- [ClassInitialize]
- public static void ClassInitialize(TestContext testContext)
- {
- _codeCleanupAvailabilityLogic = CodeCleanupAvailabilityLogic.GetInstance(TestEnvironment.Package);
- Assert.IsNotNull(_codeCleanupAvailabilityLogic);
- }
-
- [TestInitialize]
- public void TestInitialize()
- {
- TestEnvironment.CommonTestInitialize();
- _projectItem = TestEnvironment.LoadFileIntoProject(@"Data\CSS.css");
- }
-
- [TestCleanup]
- public void TestCleanup()
- {
- TestEnvironment.RemoveFromProject(_projectItem);
- }
-
- #endregion Setup
-
- #region Tests
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSS_EnablesForDocument()
- {
- Settings.Default.Cleaning_IncludeCSS = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSS_EnablesForProjectItem()
- {
- Settings.Default.Cleaning_IncludeCSS = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSS_DisablesForDocumentWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCSS = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSS_DisablesForProjectItemWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCSS = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- #endregion Tests
- }
-}
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSharpTests.cs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSharpTests.cs
deleted file mode 100644
index e3ce6397b..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/CSharpTests.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using EnvDTE;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using SteveCadwallader.CodeMaid.IntegrationTests.Helpers;
-using SteveCadwallader.CodeMaid.Logic.Cleaning;
-using SteveCadwallader.CodeMaid.Properties;
-using System;
-
-namespace SteveCadwallader.CodeMaid.IntegrationTests.Cleaning.FileTypes
-{
- [TestClass]
- [DeploymentItem(@"Cleaning\FileTypes\Data\CSharp.cs", "Data")]
- public class CSharpTests
- {
- #region Setup
-
- private static CodeCleanupAvailabilityLogic _codeCleanupAvailabilityLogic;
- private ProjectItem _projectItem;
-
- [ClassInitialize]
- public static void ClassInitialize(TestContext testContext)
- {
- _codeCleanupAvailabilityLogic = CodeCleanupAvailabilityLogic.GetInstance(TestEnvironment.Package);
- Assert.IsNotNull(_codeCleanupAvailabilityLogic);
- }
-
- [TestInitialize]
- public void TestInitialize()
- {
- TestEnvironment.CommonTestInitialize();
- _projectItem = TestEnvironment.LoadFileIntoProject(@"Data\CSharp.cs");
- }
-
- [TestCleanup]
- public void TestCleanup()
- {
- TestEnvironment.RemoveFromProject(_projectItem);
- }
-
- #endregion Setup
-
- #region Tests
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSharp_EnablesForDocument()
- {
- Settings.Default.Cleaning_IncludeCSharp = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSharp_EnablesForProjectItem()
- {
- Settings.Default.Cleaning_IncludeCSharp = true;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsTrue(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSharp_DisablesForDocumentWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCSharp = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Make sure the document is the active document for the environment.
- var document = TestOperations.GetActivatedDocument(_projectItem);
- Assert.AreEqual(document, TestEnvironment.Package.ActiveDocument);
-
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupDocument(document));
- }));
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CleaningFileTypesCSharp_DisablesForProjectItemWhenSettingIsDisabled()
- {
- Settings.Default.Cleaning_IncludeCSharp = false;
-
- UIThreadInvoker.Invoke(new Action(() =>
- {
- // Confirm the code cleanup availability logic is in the expected state.
- Assert.IsFalse(_codeCleanupAvailabilityLogic.CanCleanupProjectItem(_projectItem));
- }));
- }
-
- #endregion Tests
- }
-}
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CPlusPlus.cpp b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CPlusPlus.cpp
deleted file mode 100644
index 4c26cc1e1..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CPlusPlus.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// C++Win32Project.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSHTML.cshtml b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSHTML.cshtml
deleted file mode 100644
index f8a28a0db..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSHTML.cshtml
+++ /dev/null
@@ -1,50 +0,0 @@
-@model MvcApplication1.Models.LoginModel
-
-@{
- ViewBag.Title = "Log in";
-}
-
-
- @ViewBag.Title.
-
-
-
-
-
-
-@section Scripts {
- @Scripts.Render("~/bundles/jqueryval")
-}
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSS.css b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSS.css
deleted file mode 100644
index 0e36810ad..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSS.css
+++ /dev/null
@@ -1,3 +0,0 @@
-body
-{
-}
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSharp.cs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSharp.cs
deleted file mode 100644
index a8b821b02..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/CSharp.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace SteveCadwallader.CodeMaid.IntegrationTests.Cleaning.FileTypes.Data
-{
- public class CSharp
- {
- }
-}
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/EverythingElse.txt b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/EverythingElse.txt
deleted file mode 100644
index 66401950e..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/EverythingElse.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a generic text file.
\ No newline at end of file
diff --git a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/FSharp.fs b/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/FSharp.fs
deleted file mode 100644
index 6cd3571a0..000000000
--- a/CodeMaid.IntegrationTests/Cleaning/FileTypes/Data/FSharp.fs
+++ /dev/null
@@ -1,35 +0,0 @@
-module File1
-
-#r "System.Transactions.dll"
-open System
-open System.Data
-open System.Data.SqlClient
-
-// [snippet:Dynamic operator]
-let (?) (reader:SqlDataReader) (name:string) : 'R =
- let typ = typeof<'R>
- if typ.IsGenericType && typ.GetGenericTypeDefinition() = typedefof
Use another service to log in.
- @Html.Action("ExternalLoginsList", new { ReturnUrl = ViewBag.ReturnUrl }) -