Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #3557: Mostly non-impacting minor changes to the csproj, a fix for nuget.config, and some design-time QoL stuff #3556

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
49da66a
Added some stuff to gitignore to cover other common configurations
dodexahedron Jun 21, 2024
2013231
Move this to its own group for visibility and what is about to come
dodexahedron Jun 21, 2024
34c702a
Define all these by reference to the assembly name
dodexahedron Jun 21, 2024
6c0e5a7
Ensure builds keep expected config for all hardware
dodexahedron Jun 21, 2024
17471dd
Minor corrections
dodexahedron Jun 21, 2024
80ce5e8
Add NoSamples.slnf
dodexahedron Jun 21, 2024
3e9823a
Add this attribute for formality, in case the API were to change
dodexahedron Jun 21, 2024
1e4634c
Add packageSourceMapping to match the custom nuget packageSource
dodexahedron Jun 21, 2024
97983ff
Add Release.slnf
dodexahedron Jun 21, 2024
52cc48f
These can just be together
dodexahedron Jun 21, 2024
6161259
Take the analyzer debugger out of this one
dodexahedron Jun 21, 2024
4b34dc3
Add Analyzers-only solution filter
dodexahedron Jun 21, 2024
1a68656
Add .vsconfig
dodexahedron Jun 21, 2024
2ccf14e
Commentary about trim incompatibility
dodexahedron Jun 21, 2024
76d48f1
Add solution default file nesting rules
dodexahedron Jun 21, 2024
f03817d
Have to add this back in temporarily
dodexahedron Jun 21, 2024
437e846
Organized the solution items to make things easier to find
dodexahedron Jun 21, 2024
255d631
Remove duplicates
dodexahedron Jun 21, 2024
e2f358c
Unified casing to lower, just for consistency. Pointless.
dodexahedron Jun 21, 2024
66a372d
Remove AnyCPU for these too
dodexahedron Jun 21, 2024
b43ce27
Add LangVersion element
dodexahedron Jun 21, 2024
979cd80
Replaced with slightly better version at solution level
dodexahedron Jun 21, 2024
3bc0c62
Add `langword` to the dictionary
dodexahedron Jun 21, 2024
ee4bac5
Add same punctuation to fix the analyzer warning
dodexahedron Jun 21, 2024
902a672
This one needs the unit test project too for now
dodexahedron Jun 21, 2024
7e15731
Address a warning and suppress another
dodexahedron Jun 21, 2024
1c8dab0
Using .net 8. Set warnings for .net 8.
dodexahedron Jun 21, 2024
3dde03f
Update package
dodexahedron Jun 21, 2024
4bb2ed8
Add project-local editorconfig to silence warnings about intentional …
dodexahedron Jun 21, 2024
3c0c896
Do it in code instead. editorconfig doesn't apply to cli builds.
dodexahedron Jun 21, 2024
a7a6038
Update that in the root, too
dodexahedron Jun 21, 2024
e264c7b
Fix naming
dodexahedron Jun 21, 2024
e598e1c
Remove unnecessary dammit operators
dodexahedron Jun 21, 2024
4a56e39
Silence naming rule violations from ReSharper in this file
dodexahedron Jun 21, 2024
e3b854c
Remove dead code and inline a local
dodexahedron Jun 21, 2024
3b03653
Global suppression for these in this project
dodexahedron Jun 21, 2024
8ed3cbf
Don't want to be documenting exceptions in tests
dodexahedron Jun 21, 2024
6ed6c9a
Reduce cognitive complexity by ~10%
dodexahedron Jun 21, 2024
b33bddf
Remove unused method
dodexahedron Jun 21, 2024
f14b7b0
Addressed another warning
dodexahedron Jun 21, 2024
428b436
Suppress a warning caused by code from a polyfill.
dodexahedron Jun 21, 2024
2e2170e
Add Roslynator to the dictionary
dodexahedron Jun 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .filenesting.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"help": "https://go.microsoft.com/fwlink/?linkid=866610",
"root": true,

"dependentFileProviders": {
"add": {
"addedExtension": {},
"pathSegment": {
"add": {
".*": [
".config",
".cs",
".json",
".resx"
]
}
},
"extensionToExtension": {
"add": {
".designer.cs": [
".resx"
],
".cs.d.ts": [
".cs"
]
}
},
"fileToFile": {
"add": {
"package-lock.json": [
"package.json"
]
}
}
}
}
}
60 changes: 47 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
bin
obj
~$*
# Build artifacts
[Bb]in/
[Oo]bj/
[Rr]elease/
[Dd]ebug/
[Xx]64/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/

# User-local settings and caches
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
*.userprefs
_ReSharper.**
*.[Rr]e[Ss]harper
*.DotSettings.user
.devcontainer/
.vscode/
.vs/

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Roslyn generated cs files
**.g.cs

# Common temporary files
~$*
*~
packages
.vs

# User-specific files
*.user
# NuGet Stuff
*.nupkg
*.snupkg
# Exclude everything in packages directory except the packages/build directory
**/[Pp]ackages/*
!**/[Pp]ackages/build/

# API Docs
docfx/api
docfx/_site

# Unit Tests
# Test Results
UnitTests/TestResults
TestResults

#git merge files
*.orig

.vscode/
# git merge files
.orig
.theirs
.ours

demo.*

*.deb

*.tui/
*.tui/

*.dotCover
33 changes: 33 additions & 0 deletions .vsconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.DependencyValidation.Community",
"Microsoft.VisualStudio.Component.CoreEditor",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.Net.Component.4.8.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
"Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
"Microsoft.VisualStudio.Component.TextTemplating",
"Microsoft.VisualStudio.Component.NuGet",
"Microsoft.VisualStudio.Component.ManagedDesktop.Core",
"Microsoft.NetCore.Component.Runtime.8.0",
"Microsoft.NetCore.Component.SDK",
"Microsoft.VisualStudio.Component.FSharp",
"Microsoft.NetCore.Component.DevelopmentTools",
"Microsoft.VisualStudio.Component.AppInsights.Tools",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.8.1.TargetingPack",
"Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
"Microsoft.VisualStudio.Component.NuGet.BuildTools",
"Microsoft.Net.Component.4.6.TargetingPack",
"Microsoft.VisualStudio.Component.VSSDK",
"Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites",
"Microsoft.Component.CodeAnalysis.SDK",
"Microsoft.VisualStudio.Workload.VisualStudioExtension"
],
"extensions": []
}
10 changes: 10 additions & 0 deletions Analyzers.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"solution": {
"path": "Terminal.sln",
"projects": [
"Analyzers\\Terminal.Gui.Analyzers.Internal.Debugging\\Terminal.Gui.Analyzers.Internal.Debugging.csproj",
"Analyzers\\Terminal.Gui.Analyzers.Internal.Tests\\Terminal.Gui.Analyzers.Internal.Tests.csproj",
"Analyzers\\Terminal.Gui.Analyzers.Internal\\Terminal.Gui.Analyzers.Internal.csproj",
]
}
}
4 changes: 2 additions & 2 deletions Analyzers/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<Nullable>enable</Nullable>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<WarningLevel>7</WarningLevel>
<WarningLevel>8</WarningLevel>
<CharacterSet>UTF-8</CharacterSet>
<Deterministic>true</Deterministic>
<UTF8OutPut>true</UTF8OutPut>
Expand All @@ -12,7 +12,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageReference Include="JetBrains.ExternalAnnotations" Version="10.2.147" />
<PackageReference Include="JetBrains.ExternalAnnotations" Version="10.2.149" />
</ItemGroup>
<ItemGroup>
<Using Include="System.Buffers" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using Terminal.Gui.Analyzers.Internal.Attributes;
using System.Diagnostics.CodeAnalysis;
using Terminal.Gui.Analyzers.Internal.Attributes;

namespace Terminal.Gui.Analyzers.Internal.Debugging;

class Program
static class Program
{
static void Main (string [] args)
{
Expand All @@ -11,6 +12,7 @@ static void Main (string [] args)
}

[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "It's not that deep")]
public enum TestEnum
{
Zero = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDefinitions;
internal class SignedEnumMemberValues
namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDefinitions;
internal sealed class SignedEnumMemberValues
{
internal const int Bit31 = ~0b_01111111_11111111_11111111_11111111;
internal const int Bit30 = 0b_01000000_00000000_00000000_00000000;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BasicEnum"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute"/> applied.
/// </summary>
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BasicEnum_ExplicitInt"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute"/> applied.
/// </summary>
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum_ExplicitInt
{
Bit31 = BasicEnum_ExplicitInt.Bit31,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BetterEnum_ExplicitInt"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute.FastIsDefined"/> = <see langword="false" />.
/// </summary>
[GenerateEnumExtensionMethods (FastIsDefined = false)]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum_ExplicitInt_NoFastIsDefined : int
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BasicEnum_ExplicitUInt"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute"/> applied.
/// </summary>
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum_ExplicitUInt : uint
{
Bit31 = 0b_10000000_00000000_00000000_00000000u,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BetterEnum_ExplicitUInt"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute.FastIsDefined"/> = <see langword="false" />.
/// </summary>
[GenerateEnumExtensionMethods (FastIsDefined = false)]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum_ExplicitUInt_NoFastIsDefined : uint
{
Bit31 = 0b_10000000_00000000_00000000_00000000u,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// Same as <see cref="BetterEnum"/>, but with <see cref="GenerateEnumExtensionMethodsAttribute.FastIsDefined"/> = <see langword="false" />.
/// </summary>
[GenerateEnumExtensionMethods (FastIsDefined = false)]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterEnum_NoFastIsDefined
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// </summary>
[Flags]
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterFlagsEnum
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// </summary>
[Flags]
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterFlagsEnum_ExplicitInt : int
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// </summary>
[Flags]
[GenerateEnumExtensionMethods]
[SuppressMessage ("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BetterFlagsEnum_ExplicitUInt : uint
{
Bit31 = 0b_10000000_00000000_00000000_00000000u,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
/// <summary>
/// Basic enum without explicitly-defined backing type and no attributes on the enum or any of its members.
/// </summary>
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BasicEnum
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ namespace Terminal.Gui.Analyzers.Internal.Tests.Generators.EnumExtensions.EnumDe
/// <summary>
/// Basic enum with explicitly-defined backing type of int and no attributes on the enum or any of its members.
/// </summary>
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BasicEnum_ExplicitInt : int
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
/// <summary>
/// Basic enum with explicitly-defined backing type of uint and no attributes on the enum or any of its members.
/// </summary>
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum BasicEnum_ExplicitUInt : uint
{
Bit31 = 0b_10000000_00000000_00000000_00000000u,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
/// Flags enum without explicitly-defined backing type and only a <see cref="FlagsAttribute"/> on the enum declaration No other attributes on the enum or its members..
/// </summary>
[Flags]
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum FlagsEnum
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
/// Flags enum with explicitly-defined backing type of int and only a <see cref="FlagsAttribute"/> on the enum declaration No other attributes on the enum or its members..
/// </summary>
[Flags]
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum FlagsEnum_ExplicitInt : int
{
Bit31 = -0b_10000000_00000000_00000000_00000000,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
/// Flags enum with explicitly-defined backing type of uint and only a <see cref="FlagsAttribute"/> on the enum declaration No other attributes on the enum or its members..
/// </summary>
[Flags]
[SuppressMessage ("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Naming is intentional.")]
[SuppressMessage ("Roslynator", "RCS1154:Sort enum members", Justification = "Order is intentional.")]
public enum FlagsEnum_ExplicitUInt : uint
{
Bit31 = 0b_10000000_00000000_00000000_00000000u,
Expand Down
Loading
Loading