diff --git a/Attributes/Attributes.csproj b/DisCatSharp.Attributes/DisCatSharp.Attributes.csproj similarity index 100% rename from Attributes/Attributes.csproj rename to DisCatSharp.Attributes/DisCatSharp.Attributes.csproj diff --git a/Attributes/ExperimentalAttribute.cs b/DisCatSharp.Attributes/ExperimentalAttribute.cs similarity index 97% rename from Attributes/ExperimentalAttribute.cs rename to DisCatSharp.Attributes/ExperimentalAttribute.cs index 3e70fcb72..1a010268c 100644 --- a/Attributes/ExperimentalAttribute.cs +++ b/DisCatSharp.Attributes/ExperimentalAttribute.cs @@ -1,40 +1,40 @@ // This file is part of the DisCatSharp project, based off DSharpPlus. // // Copyright (c) 2021-2022 AITSYS // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. using System; -namespace DisCatSharp.Experimental +namespace DisCatSharp.Attributes { [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)] public sealed class ExperimentalAttribute : Attribute { public string Message { get; set; } public ExperimentalAttribute(string message) { this.Message = message; } public ExperimentalAttribute() { } } } diff --git a/Attributes/Properties/AssemblyProperties.cs b/DisCatSharp.Attributes/Properties/AssemblyProperties.cs similarity index 100% rename from Attributes/Properties/AssemblyProperties.cs rename to DisCatSharp.Attributes/Properties/AssemblyProperties.cs diff --git a/DisCatSharp.Experimental/DisCatSharp.Experimental.csproj b/DisCatSharp.Experimental/DisCatSharp.Experimental.csproj index e7bae8caf..578a04ae6 100644 --- a/DisCatSharp.Experimental/DisCatSharp.Experimental.csproj +++ b/DisCatSharp.Experimental/DisCatSharp.Experimental.csproj @@ -1,44 +1,44 @@ DisCatSharp.Experimental DisCatSharp.Experimental DisCatSharp.Experimental DisCatSharp.Experimental Experimental changes for DisCatSharp. DisCatSharp,Experimental,Discord API Wrapper,Discord,Bots,Discord Bots,AITSYS,Net6 Exe net6 all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/DisCatSharp.Experimental/Program.cs b/DisCatSharp.Experimental/Program.cs index ecf7b6019..aa53d547f 100644 --- a/DisCatSharp.Experimental/Program.cs +++ b/DisCatSharp.Experimental/Program.cs @@ -1,26 +1,23 @@ using System; +using DisCatSharp.Attributes; + namespace DisCatSharp.Experimental; public class Program { public static void Main(string[] args = null) { Test2(); } - - - - - - - - + [Experimental("Something")] + public static string TestString { get; set; } [Experimental] public static void Test2() { - Console.WriteLine("Test2"); + TestString = "Test"; + Console.WriteLine(TestString); } } diff --git a/Analyzer/.editorconfig b/DisCatSharp.Tools/DisCatSharp.Analyzer/.editorconfig similarity index 100% rename from Analyzer/.editorconfig rename to DisCatSharp.Tools/DisCatSharp.Analyzer/.editorconfig diff --git a/Analyzer/Analyzer.Package/DisCatSharp.Analyzer.Package.csproj b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/DisCatSharp.Analyzer.Package.csproj similarity index 91% rename from Analyzer/Analyzer.Package/DisCatSharp.Analyzer.Package.csproj rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/DisCatSharp.Analyzer.Package.csproj index 3aeb801c4..767505e95 100644 --- a/Analyzer/Analyzer.Package/DisCatSharp.Analyzer.Package.csproj +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/DisCatSharp.Analyzer.Package.csproj @@ -1,39 +1,39 @@ netstandard2.0 false true true DisCatSharp.Analyzer - 4.3.0.0 + 4.5.0.0 Lala Sabathil false DisCatSharp Analyzer Various DisCatSharp Analyzers. Copyright 2022 AITSYS Analyzer, analyzers true true $(TargetsForTfmSpecificContentInPackage);_AddAnalyzersToOutput - + diff --git a/Analyzer/Analyzer.Package/tools/install.ps1 b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/tools/install.ps1 similarity index 100% rename from Analyzer/Analyzer.Package/tools/install.ps1 rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/tools/install.ps1 diff --git a/Analyzer/Analyzer.Package/tools/uninstall.ps1 b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/tools/uninstall.ps1 similarity index 100% rename from Analyzer/Analyzer.Package/tools/uninstall.ps1 rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Package/tools/uninstall.ps1 diff --git a/Analyzer/Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj similarity index 94% rename from Analyzer/Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj index 5dc26f02a..31bb07b87 100644 --- a/Analyzer/Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/DisCatSharp.Analyzer.Vsix.csproj @@ -1,47 +1,47 @@ net472 DisCatSharp.Analyzer.Vsix DisCatSharp.Analyzer.Vsix false false false false false false Roslyn Program $(DevEnvDir)devenv.exe /rootsuffix $(VSSDKTargetPlatformRegRootSuffix) - + \ No newline at end of file diff --git a/Analyzer/Analyzer.Vsix/source.extension.vsixmanifest b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/source.extension.vsixmanifest similarity index 96% rename from Analyzer/Analyzer.Vsix/source.extension.vsixmanifest rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/source.extension.vsixmanifest index 9d0fb168f..26b13a076 100644 --- a/Analyzer/Analyzer.Vsix/source.extension.vsixmanifest +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer.Vsix/source.extension.vsixmanifest @@ -1,27 +1,27 @@ - + DisCatSharp Analyzer This is an diagnostic extension for DisCatSharp. x86 amd64 diff --git a/Analyzer/Analyzer/AnalyzerReleases.Shipped.md b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AnalyzerReleases.Shipped.md similarity index 80% rename from Analyzer/Analyzer/AnalyzerReleases.Shipped.md rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AnalyzerReleases.Shipped.md index 100cfe5a9..d9506ca86 100644 --- a/Analyzer/Analyzer/AnalyzerReleases.Shipped.md +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AnalyzerReleases.Shipped.md @@ -1,25 +1,32 @@ ; Shipped analyzer releases ; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md ## Release 4.2 ### New Rules Rule ID | Category | Severity | Notes --------|----------|----------|------- DcsExp | Informations | Warning | Informs if a method or attribute or similar is considered experimental - ## Release 4.3 ### New Rules Rule ID | Category | Severity | Notes --------|----------|----------|------- DCS0001 | Informations | Warning | Experimental Attribute Analyzer ### Removed Rules Rule ID | Category | Severity | Notes --------|----------|----------|------- DcsExp | Informations | Warning | Informs if a method or attribute or similar is considered experimental + +## Release 4.4 + +### Updates Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +DCS0001 | Informations | Warning | Experimental Attribute Analyzer diff --git a/Analyzer/Analyzer/AnalyzerReleases.Unshipped.md b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AnalyzerReleases.Unshipped.md similarity index 100% rename from Analyzer/Analyzer/AnalyzerReleases.Unshipped.md rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AnalyzerReleases.Unshipped.md diff --git a/Analyzer/Analyzer/AttributeAnalyzer.cs b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AttributeAnalyzer.cs similarity index 85% rename from Analyzer/Analyzer/AttributeAnalyzer.cs rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AttributeAnalyzer.cs index aa0f7efda..755b8494e 100644 --- a/Analyzer/Analyzer/AttributeAnalyzer.cs +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/AttributeAnalyzer.cs @@ -1,99 +1,92 @@ // This file is part of the DisCatSharp project, based off DSharpPlus. // // Copyright (c) 2021-2022 AITSYS // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -using DisCatSharp.Experimental; +using DisCatSharp.Attributes; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Diagnostics; using System; using System.Collections.Immutable; using System.Linq; namespace DisCatSharp.Analyzer { [DiagnosticAnalyzer(LanguageNames.CSharp)] public class AttributeAnalyzer : DiagnosticAnalyzer { public const string DiagnosticIdPrefix = "DCS"; private static readonly LocalizableString Title = new LocalizableResourceString(nameof(Resources.AnalyzerTitle), Resources.ResourceManager, typeof(Resources)); private static readonly LocalizableString MessageFormat = new LocalizableResourceString(nameof(Resources.AnalyzerMessageFormat), Resources.ResourceManager, typeof(Resources)); private static readonly LocalizableString Description = new LocalizableResourceString(nameof(Resources.AnalyzerDescription), Resources.ResourceManager, typeof(Resources)); private const string Category = "Information"; - private static readonly DiagnosticDescriptor ExperimentalRule = new DiagnosticDescriptor(DiagnosticIdPrefix + "0001", Title, MessageFormat, Category, DiagnosticSeverity.Warning, true, Description, "https://docs.discatsharp.tech/vs/analyzer/dcs/0001", "DisCatSharp", "Experimental"); + private static readonly DiagnosticDescriptor ExperimentalRule = new DiagnosticDescriptor(DiagnosticIdPrefix + "0001", Title, MessageFormat, Category, DiagnosticSeverity.Warning, true, Description, "https://docs.discatsharp.tech/vs/analyzer/dcs/0001.html"); public override ImmutableArray SupportedDiagnostics { get { return ImmutableArray.Create(ExperimentalRule); } } public override void Initialize(AnalysisContext context) { context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); context.EnableConcurrentExecution(); context.RegisterSyntaxNodeAction(AnalyzerInvocation, SyntaxKind.InvocationExpression); } private static void AnalyzerInvocation(SyntaxNodeAnalysisContext context) { var invocation = (InvocationExpressionSyntax)context.Node; + var declaration = context.SemanticModel.GetSymbolInfo(invocation, context.CancellationToken).Symbol; - var methodDeclaration = (context.SemanticModel.GetSymbolInfo(invocation, context.CancellationToken).Symbol as IMethodSymbol); - - //There are several reason why this may be null e.g invoking a delegate - if (null == methodDeclaration) - { - return; - } - - var methodAttributes = methodDeclaration.GetAttributes(); - var attributeData = methodAttributes.FirstOrDefault(attr => IsRequiredAttribute(context.SemanticModel, attr, typeof(ExperimentalAttribute))); + var attributes = declaration.GetAttributes(); + var attributeData = attributes.FirstOrDefault(attr => IsRequiredAttribute(context.SemanticModel, attr, typeof(ExperimentalAttribute))); if (null == attributeData) { return; } var message = GetMessage(attributeData); - var diagnostic = Diagnostic.Create(ExperimentalRule, invocation.GetLocation(), methodDeclaration.Name, message); + var diagnostic = Diagnostic.Create(ExperimentalRule, invocation.GetLocation(), declaration.Kind.ToString(), declaration.Name, message); context.ReportDiagnostic(diagnostic); } static bool IsRequiredAttribute(SemanticModel semanticModel, AttributeData attribute, Type desiredAttributeType) { var desiredTypeNamedSymbol = semanticModel.Compilation.GetTypeByMetadataName(desiredAttributeType.FullName); var result = attribute.AttributeClass.Equals(desiredTypeNamedSymbol, SymbolEqualityComparer.Default); return result; } static string GetMessage(AttributeData attribute) { if (attribute.ConstructorArguments.Length < 1) { return "Do not use in production"; } return attribute.ConstructorArguments[0].Value as string; } } } diff --git a/Analyzer/Analyzer/DisCatSharp.Analyzer.csproj b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/DisCatSharp.Analyzer.csproj similarity index 91% rename from Analyzer/Analyzer/DisCatSharp.Analyzer.csproj rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/DisCatSharp.Analyzer.csproj index 8e166a774..687b7d62c 100644 --- a/Analyzer/Analyzer/DisCatSharp.Analyzer.csproj +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/DisCatSharp.Analyzer.csproj @@ -1,33 +1,33 @@ netstandard2.0 false *$(MSBuildProjectFile)* all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Analyzer/Analyzer/Resources.Designer.cs b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.Designer.cs similarity index 97% rename from Analyzer/Analyzer/Resources.Designer.cs rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.Designer.cs index 0301ea73b..b4cfed55c 100644 --- a/Analyzer/Analyzer/Resources.Designer.cs +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.Designer.cs @@ -1,90 +1,90 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace DisCatSharp.Analyzer { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DisCatSharp.Analyzer.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// Looks up a localized string similar to This is considered experimental and shouldn't be used in production.. /// internal static string AnalyzerDescription { get { return ResourceManager.GetString("AnalyzerDescription", resourceCulture); } } /// - /// Looks up a localized string similar to '{0}' is considered experimental: {1}. + /// Looks up a localized string similar to {0} '{1}' is considered experimental: {2}. /// internal static string AnalyzerMessageFormat { get { return ResourceManager.GetString("AnalyzerMessageFormat", resourceCulture); } } /// /// Looks up a localized string similar to Experimental. /// internal static string AnalyzerTitle { get { return ResourceManager.GetString("AnalyzerTitle", resourceCulture); } } } } diff --git a/Analyzer/Analyzer/Resources.resx b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.resx similarity index 98% rename from Analyzer/Analyzer/Resources.resx rename to DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.resx index 0d1432f30..ff7ebd2fa 100644 --- a/Analyzer/Analyzer/Resources.resx +++ b/DisCatSharp.Tools/DisCatSharp.Analyzer/DisCatSharp.Analyzer/Resources.resx @@ -1,132 +1,132 @@ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 This is considered experimental and shouldn't be used in production. An optional longer localizable description of the diagnostic. - '{0}' is considered experimental: {1} + {0} '{1}' is considered experimental: {2} The format-able message the diagnostic displays. Experimental The title of the diagnostic. \ No newline at end of file diff --git a/DisCatSharp.Tools/DisCatSharp.Tools.sln b/DisCatSharp.Tools/DisCatSharp.Tools.sln new file mode 100644 index 000000000..1edccda7b --- /dev/null +++ b/DisCatSharp.Tools/DisCatSharp.Tools.sln @@ -0,0 +1,53 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33103.201 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DisCatSharp.Analyzer", "DisCatSharp.Analyzer", "{122968B7-2707-4FC2-819D-7E90B804A8E4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Analyzer", "DisCatSharp.Analyzer\DisCatSharp.Analyzer\DisCatSharp.Analyzer.csproj", "{DA33A3DA-DD7F-4E16-B503-79581CCEA974}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Analyzer.Package", "DisCatSharp.Analyzer\DisCatSharp.Analyzer.Package\DisCatSharp.Analyzer.Package.csproj", "{B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Analyzer.Vsix", "DisCatSharp.Analyzer\DisCatSharp.Analyzer.Vsix\DisCatSharp.Analyzer.Vsix.csproj", "{AFEFCFB5-9110-423D-B022-A6AA46307B90}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ref", "Ref", "{C88304B3-5BF3-4F25-A36A-42CC42BB2D3B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Attributes", "..\DisCatSharp.Attributes\DisCatSharp.Attributes.csproj", "{FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DA33A3DA-DD7F-4E16-B503-79581CCEA974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA33A3DA-DD7F-4E16-B503-79581CCEA974}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA33A3DA-DD7F-4E16-B503-79581CCEA974}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA33A3DA-DD7F-4E16-B503-79581CCEA974}.Release|Any CPU.Build.0 = Release|Any CPU + {B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B}.Release|Any CPU.Build.0 = Release|Any CPU + {AFEFCFB5-9110-423D-B022-A6AA46307B90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFEFCFB5-9110-423D-B022-A6AA46307B90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFEFCFB5-9110-423D-B022-A6AA46307B90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFEFCFB5-9110-423D-B022-A6AA46307B90}.Release|Any CPU.Build.0 = Release|Any CPU + {FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {DA33A3DA-DD7F-4E16-B503-79581CCEA974} = {122968B7-2707-4FC2-819D-7E90B804A8E4} + {B3122D6C-A0FE-42C3-9FCE-4A9789E66E1B} = {122968B7-2707-4FC2-819D-7E90B804A8E4} + {AFEFCFB5-9110-423D-B022-A6AA46307B90} = {122968B7-2707-4FC2-819D-7E90B804A8E4} + {FBEB40B3-4D62-462D-9F44-2B0BCDA0D2E7} = {C88304B3-5BF3-4F25-A36A-42CC42BB2D3B} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C9C1591B-8805-457A-BC51-D975D32BCC3A} + EndGlobalSection +EndGlobal diff --git a/DisCatSharp.sln b/DisCatSharp.sln index e6af989df..7735b4bc5 100644 --- a/DisCatSharp.sln +++ b/DisCatSharp.sln @@ -1,153 +1,159 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.31911.260 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp", "DisCatSharp\DisCatSharp.csproj", "{EB3D8310-DFAD-4295-97F9-82E253647583}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.VoiceNext", "DisCatSharp.VoiceNext\DisCatSharp.VoiceNext.csproj", "{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4255B64D-92EC-46B3-BC3B-ED2C3A8073EE}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig .gitattributes = .gitattributes .gitignore = .gitignore BUILDING.md = BUILDING.md CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md CONTRIBUTING.md = CONTRIBUTING.md LICENSE.md = LICENSE.md README.md = README.md SECURITY.md = SECURITY.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.CommandsNext", "DisCatSharp.CommandsNext\DisCatSharp.CommandsNext.csproj", "{C8ED55FB-E028-468D-955F-1534C20274EF}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Interactivity", "DisCatSharp.Interactivity\DisCatSharp.Interactivity.csproj", "{DD32BEC3-0189-479F-86DC-CCF95E5634A9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F953F5D0-F0C9-41E6-ADBF-60A76D295899}" ProjectSection(SolutionItems) = preProject .nuget\NuGet.config = .nuget\NuGet.config EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items", "{84464D70-687B-40A8-836D-C4F737698969}" ProjectSection(SolutionItems) = preProject appveyor.yml = appveyor.yml .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml .github\dependabot.yml = .github\dependabot.yml DisCatSharp.targets = DisCatSharp.targets docs-oneclick-rebuild.ps1 = docs-oneclick-rebuild.ps1 .github\workflows\docs.yml = .github\workflows\docs.yml .github\workflows\dotnet.yml = .github\workflows\dotnet.yml Library.targets = Library.targets NuGet.targets = NuGet.targets oneclick-rebuild.ps1 = oneclick-rebuild.ps1 Package.targets = Package.targets rebuild-all.ps1 = rebuild-all.ps1 rebuild-docs.ps1 = rebuild-docs.ps1 rebuild-lib.ps1 = rebuild-lib.ps1 Version.targets = Version.targets EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{430C28D8-5F85-4D6E-AA68-211549435245}" ProjectSection(SolutionItems) = preProject .github\ISSUE_TEMPLATE\bug_report.md = .github\ISSUE_TEMPLATE\bug_report.md .github\CODEOWNERS = .github\CODEOWNERS .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml .github\workflows\docs-preview.yml = .github\workflows\docs-preview.yml .github\workflows\docs.yml = .github\workflows\docs.yml .github\workflows\dotnet.yml = .github\workflows\dotnet.yml .github\ISSUE_TEMPLATE\feature_request.md = .github\ISSUE_TEMPLATE\feature_request.md .github\FUNDING.yml = .github\FUNDING.yml .github\pull_request_template.md = .github\pull_request_template.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Lavalink", "DisCatSharp.Lavalink\DisCatSharp.Lavalink.csproj", "{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.VoiceNext.Natives", "DisCatSharp.VoiceNext.Natives\DisCatSharp.VoiceNext.Natives.csproj", "{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Common", "DisCatSharp.Common\DisCatSharp.Common.csproj", "{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.ApplicationCommands", "DisCatSharp.ApplicationCommands\DisCatSharp.ApplicationCommands.csproj", "{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Configuration", "DisCatSharp.Configuration\DisCatSharp.Configuration.csproj", "{603287D3-1EF2-47F1-A611-C7F25869DE14}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Configuration.Tests", "DisCatSharp.Configuration.Tests\DisCatSharp.Configuration.Tests.csproj", "{E15E88B4-63AD-42DE-B685-D31697C62194}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting", "DisCatSharp.Hosting\DisCatSharp.Hosting.csproj", "{72CCE5D5-926B-432A-876A-065FA2BC9B7B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting.Tests", "DisCatSharp.Hosting.Tests\DisCatSharp.Hosting.Tests.csproj", "{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting.DependencyInjection", "DisCatSharp.Hosting.DependencyInjection\DisCatSharp.Hosting.DependencyInjection.csproj", "{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Experimental", "DisCatSharp.Experimental\DisCatSharp.Experimental.csproj", "{CF03EADC-E178-45B3-BD72-B6F70B625C8F}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Attributes", "DisCatSharp.Attributes\DisCatSharp.Attributes.csproj", "{7082AF2C-C64A-46DF-BF60-BEF1D51DD6BF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EB3D8310-DFAD-4295-97F9-82E253647583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EB3D8310-DFAD-4295-97F9-82E253647583}.Debug|Any CPU.Build.0 = Debug|Any CPU {EB3D8310-DFAD-4295-97F9-82E253647583}.Release|Any CPU.ActiveCfg = Release|Any CPU {EB3D8310-DFAD-4295-97F9-82E253647583}.Release|Any CPU.Build.0 = Release|Any CPU {FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU {FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU {FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Release|Any CPU.Build.0 = Release|Any CPU {C8ED55FB-E028-468D-955F-1534C20274EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8ED55FB-E028-468D-955F-1534C20274EF}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8ED55FB-E028-468D-955F-1534C20274EF}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8ED55FB-E028-468D-955F-1534C20274EF}.Release|Any CPU.Build.0 = Release|Any CPU {DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Release|Any CPU.Build.0 = Release|Any CPU {A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Release|Any CPU.Build.0 = Release|Any CPU {BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Debug|Any CPU.Build.0 = Debug|Any CPU {BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Release|Any CPU.ActiveCfg = Release|Any CPU {BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Release|Any CPU.Build.0 = Release|Any CPU {CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Debug|Any CPU.Build.0 = Debug|Any CPU {CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Release|Any CPU.Build.0 = Release|Any CPU {AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Debug|Any CPU.Build.0 = Debug|Any CPU {AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Release|Any CPU.Build.0 = Release|Any CPU {603287D3-1EF2-47F1-A611-C7F25869DE14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {603287D3-1EF2-47F1-A611-C7F25869DE14}.Debug|Any CPU.Build.0 = Debug|Any CPU {603287D3-1EF2-47F1-A611-C7F25869DE14}.Release|Any CPU.ActiveCfg = Release|Any CPU {603287D3-1EF2-47F1-A611-C7F25869DE14}.Release|Any CPU.Build.0 = Release|Any CPU {E15E88B4-63AD-42DE-B685-D31697C62194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E15E88B4-63AD-42DE-B685-D31697C62194}.Debug|Any CPU.Build.0 = Debug|Any CPU {E15E88B4-63AD-42DE-B685-D31697C62194}.Release|Any CPU.ActiveCfg = Release|Any CPU {E15E88B4-63AD-42DE-B685-D31697C62194}.Release|Any CPU.Build.0 = Release|Any CPU {72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU {72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU {72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Release|Any CPU.Build.0 = Release|Any CPU {D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Debug|Any CPU.Build.0 = Debug|Any CPU {D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Release|Any CPU.ActiveCfg = Release|Any CPU {D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Release|Any CPU.Build.0 = Release|Any CPU {2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Release|Any CPU.Build.0 = Release|Any CPU {CF03EADC-E178-45B3-BD72-B6F70B625C8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CF03EADC-E178-45B3-BD72-B6F70B625C8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {CF03EADC-E178-45B3-BD72-B6F70B625C8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {CF03EADC-E178-45B3-BD72-B6F70B625C8F}.Release|Any CPU.Build.0 = Release|Any CPU + {7082AF2C-C64A-46DF-BF60-BEF1D51DD6BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7082AF2C-C64A-46DF-BF60-BEF1D51DD6BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7082AF2C-C64A-46DF-BF60-BEF1D51DD6BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7082AF2C-C64A-46DF-BF60-BEF1D51DD6BF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23F3A981-51B8-4285-A38C-3267F1D25FE7} EndGlobalSection EndGlobal