From 2f2a970f7c534797ae39280bc9af2577779ad6ca Mon Sep 17 00:00:00 2001 From: Marc Gravell Date: Wed, 6 Aug 2025 12:25:25 +0300 Subject: [PATCH 1/2] use editorconfig to enforce code rules --- .editorconfig | 37 +++++++++++++++++++ NRedisStack.sln | 9 +++++ src/.editorconfig | 2 + src/NRedisStack/Bloom/BloomCommandBuilder.cs | 2 +- .../CoreCommands/CoreCommandBuilder.cs | 4 +- src/NRedisStack/ResponseParser.cs | 14 +++---- src/NRedisStack/Search/Query.cs | 4 +- src/NRedisStack/Search/Schema.cs | 4 +- .../Search/SearchCommandBuilder.cs | 2 +- .../Tdigest/TdigestCommandBuilder.cs | 2 +- .../DataTypes/TimeSeriesInformation.cs | 2 +- .../TimeSeries/DataTypes/TimeSeriesRule.cs | 4 +- .../TimeSeries/ITimeSeriesCommands.cs | 2 +- .../TimeSeries/ITimeSeriesCommandsAsync.cs | 2 +- src/NRedisStack/TimeSeries/TimeSeriesAux.cs | 4 +- .../TimeSeries/TimeSeriesCommands.cs | 4 +- .../TimeSeries/TimeSeriesCommandsAsync.cs | 4 +- .../TimeSeries/TimeSeriesCommandsBuilder.cs | 2 +- .../TimeSeries/TimeSeriesParamsBuilder.cs | 4 +- src/NRedisStack/TopK/TopKCommandBuilder.cs | 2 +- tests/Doc/.editorconfig | 4 ++ 21 files changed, 83 insertions(+), 31 deletions(-) create mode 100644 .editorconfig create mode 100644 src/.editorconfig create mode 100644 tests/Doc/.editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..8e2e5658 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,37 @@ +root = true + +[*.cs] +indent_size = 4 +indent_style = space +trim_trailing_whitespace = true + +# Avoid "this." and "Me." if not necessary +dotnet_style_qualification_for_field = false:suggestion +dotnet_style_qualification_for_property = false:suggestion +dotnet_style_qualification_for_method = false:suggestion +dotnet_style_qualification_for_event = false:suggestion + +# Suggest more modern language features when available +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +# Newline settings +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true + +# Xml project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 2 +indent_style = space + +# Xml config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 +indent_style = space \ No newline at end of file diff --git a/NRedisStack.sln b/NRedisStack.sln index 045e7015..8f98a9c7 100644 --- a/NRedisStack.sln +++ b/NRedisStack.sln @@ -15,6 +15,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{84D6210F Directory.Packages.props = Directory.Packages.props global.json = global.json version.json = version.json + .editorconfig = .editorconfig + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CBEB7980-923E-49D1-B8D5-561E313AF525}" + ProjectSection(SolutionItems) = preProject + src\.editorconfig = src\.editorconfig EndProjectSection EndProject Global @@ -39,4 +45,7 @@ Global {F14F6342-14A0-4DDD-AB05-C425B1AD8001}.Release|Any CPU.ActiveCfg = Release|Any CPU {F14F6342-14A0-4DDD-AB05-C425B1AD8001}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {CBEB7980-923E-49D1-B8D5-561E313AF525} = {84D6210F-9A65-427A-965F-57E7B76424AB} + EndGlobalSection EndGlobal diff --git a/src/.editorconfig b/src/.editorconfig new file mode 100644 index 00000000..db8dbaff --- /dev/null +++ b/src/.editorconfig @@ -0,0 +1,2 @@ +[*.cs] +dotnet_sort_system_directives_first = false # we don't want this in docs, because of hidden sections \ No newline at end of file diff --git a/src/NRedisStack/Bloom/BloomCommandBuilder.cs b/src/NRedisStack/Bloom/BloomCommandBuilder.cs index ffb4d162..96cec2aa 100644 --- a/src/NRedisStack/Bloom/BloomCommandBuilder.cs +++ b/src/NRedisStack/Bloom/BloomCommandBuilder.cs @@ -1,6 +1,6 @@ +using NRedisStack.Bloom.Literals; using NRedisStack.RedisStackCommands; using StackExchange.Redis; -using NRedisStack.Bloom.Literals; namespace NRedisStack; public static class BloomCommandBuilder diff --git a/src/NRedisStack/CoreCommands/CoreCommandBuilder.cs b/src/NRedisStack/CoreCommands/CoreCommandBuilder.cs index 5a557c8f..eaaa2c50 100644 --- a/src/NRedisStack/CoreCommands/CoreCommandBuilder.cs +++ b/src/NRedisStack/CoreCommands/CoreCommandBuilder.cs @@ -1,7 +1,7 @@ -using NRedisStack.RedisStackCommands; -using NRedisStack.Core.Literals; using NRedisStack.Core; using NRedisStack.Core.DataTypes; +using NRedisStack.Core.Literals; +using NRedisStack.RedisStackCommands; using StackExchange.Redis; namespace NRedisStack; diff --git a/src/NRedisStack/ResponseParser.cs b/src/NRedisStack/ResponseParser.cs index 8382771a..250a8dbf 100644 --- a/src/NRedisStack/ResponseParser.cs +++ b/src/NRedisStack/ResponseParser.cs @@ -1,14 +1,14 @@ -using NRedisStack.Literals.Enums; -using NRedisStack.DataTypes; -using NRedisStack.Extensions; -using StackExchange.Redis; using NRedisStack.Bloom.DataTypes; using NRedisStack.Core.DataTypes; -using NRedisStack.CuckooFilter.DataTypes; using NRedisStack.CountMinSketch.DataTypes; -using NRedisStack.TopK.DataTypes; -using NRedisStack.Tdigest.DataTypes; +using NRedisStack.CuckooFilter.DataTypes; +using NRedisStack.DataTypes; +using NRedisStack.Extensions; +using NRedisStack.Literals.Enums; using NRedisStack.Search; +using NRedisStack.Tdigest.DataTypes; +using NRedisStack.TopK.DataTypes; +using StackExchange.Redis; namespace NRedisStack; diff --git a/src/NRedisStack/Search/Query.cs b/src/NRedisStack/Search/Query.cs index 73480d77..9914974e 100644 --- a/src/NRedisStack/Search/Query.cs +++ b/src/NRedisStack/Search/Query.cs @@ -1,6 +1,6 @@ -using System.Globalization; -using NRedisStack.Search.Literals; +using NRedisStack.Search.Literals; using StackExchange.Redis; +using System.Globalization; namespace NRedisStack.Search; diff --git a/src/NRedisStack/Search/Schema.cs b/src/NRedisStack/Search/Schema.cs index 716d8b9b..83868f4e 100644 --- a/src/NRedisStack/Search/Schema.cs +++ b/src/NRedisStack/Search/Schema.cs @@ -1,5 +1,5 @@ -using System.Diagnostics; -using NRedisStack.Search.Literals; +using NRedisStack.Search.Literals; +using System.Diagnostics; using static NRedisStack.Search.Schema.GeoShapeField; using static NRedisStack.Search.Schema.VectorField; diff --git a/src/NRedisStack/Search/SearchCommandBuilder.cs b/src/NRedisStack/Search/SearchCommandBuilder.cs index b2206a07..d4c95ffb 100644 --- a/src/NRedisStack/Search/SearchCommandBuilder.cs +++ b/src/NRedisStack/Search/SearchCommandBuilder.cs @@ -1,6 +1,6 @@ -using NRedisStack.Search.Literals; using NRedisStack.RedisStackCommands; using NRedisStack.Search; +using NRedisStack.Search.Literals; using StackExchange.Redis; namespace NRedisStack; diff --git a/src/NRedisStack/Tdigest/TdigestCommandBuilder.cs b/src/NRedisStack/Tdigest/TdigestCommandBuilder.cs index dbcad0a8..975ab0d3 100644 --- a/src/NRedisStack/Tdigest/TdigestCommandBuilder.cs +++ b/src/NRedisStack/Tdigest/TdigestCommandBuilder.cs @@ -1,6 +1,6 @@ using NRedisStack.Literals; -using StackExchange.Redis; using NRedisStack.RedisStackCommands; +using StackExchange.Redis; namespace NRedisStack; diff --git a/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesInformation.cs b/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesInformation.cs index 7f6a8a38..cd4262a4 100644 --- a/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesInformation.cs +++ b/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesInformation.cs @@ -1,5 +1,5 @@ -using System.Text.Json; using NRedisStack.Literals.Enums; +using System.Text.Json; namespace NRedisStack.DataTypes; diff --git a/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesRule.cs b/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesRule.cs index d66e31dc..326c2af0 100644 --- a/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesRule.cs +++ b/src/NRedisStack/TimeSeries/DataTypes/TimeSeriesRule.cs @@ -1,5 +1,5 @@ -using NRedisStack.Literals.Enums; -using NRedisStack.Extensions; +using NRedisStack.Extensions; +using NRedisStack.Literals.Enums; namespace NRedisStack.DataTypes; diff --git a/src/NRedisStack/TimeSeries/ITimeSeriesCommands.cs b/src/NRedisStack/TimeSeries/ITimeSeriesCommands.cs index 84528adc..26be1e7c 100644 --- a/src/NRedisStack/TimeSeries/ITimeSeriesCommands.cs +++ b/src/NRedisStack/TimeSeries/ITimeSeriesCommands.cs @@ -1,5 +1,5 @@ -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; namespace NRedisStack; public interface ITimeSeriesCommands diff --git a/src/NRedisStack/TimeSeries/ITimeSeriesCommandsAsync.cs b/src/NRedisStack/TimeSeries/ITimeSeriesCommandsAsync.cs index 0ec00aff..ca9d504c 100644 --- a/src/NRedisStack/TimeSeries/ITimeSeriesCommandsAsync.cs +++ b/src/NRedisStack/TimeSeries/ITimeSeriesCommandsAsync.cs @@ -1,5 +1,5 @@ -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; namespace NRedisStack; public interface ITimeSeriesCommandsAsync diff --git a/src/NRedisStack/TimeSeries/TimeSeriesAux.cs b/src/NRedisStack/TimeSeries/TimeSeriesAux.cs index 232e54f5..0acbbb3e 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesAux.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesAux.cs @@ -1,7 +1,7 @@ -using NRedisStack.Literals; -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; using NRedisStack.Extensions; +using NRedisStack.Literals; +using NRedisStack.Literals.Enums; namespace NRedisStack; diff --git a/src/NRedisStack/TimeSeries/TimeSeriesCommands.cs b/src/NRedisStack/TimeSeries/TimeSeriesCommands.cs index d2b02e4b..c0b6d851 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesCommands.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesCommands.cs @@ -1,6 +1,6 @@ -using StackExchange.Redis; -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; +using StackExchange.Redis; namespace NRedisStack; public class TimeSeriesCommands : TimeSeriesCommandsAsync, ITimeSeriesCommands diff --git a/src/NRedisStack/TimeSeries/TimeSeriesCommandsAsync.cs b/src/NRedisStack/TimeSeries/TimeSeriesCommandsAsync.cs index 2df4b18e..a482ea40 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesCommandsAsync.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesCommandsAsync.cs @@ -1,6 +1,6 @@ -using StackExchange.Redis; -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; +using StackExchange.Redis; namespace NRedisStack; public class TimeSeriesCommandsAsync : ITimeSeriesCommandsAsync diff --git a/src/NRedisStack/TimeSeries/TimeSeriesCommandsBuilder.cs b/src/NRedisStack/TimeSeries/TimeSeriesCommandsBuilder.cs index 35d9de3b..6cf748bb 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesCommandsBuilder.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesCommandsBuilder.cs @@ -1,6 +1,6 @@ +using NRedisStack.DataTypes; using NRedisStack.Literals; using NRedisStack.Literals.Enums; -using NRedisStack.DataTypes; using NRedisStack.RedisStackCommands; namespace NRedisStack; diff --git a/src/NRedisStack/TimeSeries/TimeSeriesParamsBuilder.cs b/src/NRedisStack/TimeSeries/TimeSeriesParamsBuilder.cs index 0b732eee..efa7f6b1 100644 --- a/src/NRedisStack/TimeSeries/TimeSeriesParamsBuilder.cs +++ b/src/NRedisStack/TimeSeries/TimeSeriesParamsBuilder.cs @@ -1,7 +1,7 @@ -using NRedisStack.Literals; -using NRedisStack.Literals.Enums; using NRedisStack.DataTypes; using NRedisStack.Extensions; +using NRedisStack.Literals; +using NRedisStack.Literals.Enums; namespace NRedisStack; diff --git a/src/NRedisStack/TopK/TopKCommandBuilder.cs b/src/NRedisStack/TopK/TopKCommandBuilder.cs index 2707950c..baeebd84 100644 --- a/src/NRedisStack/TopK/TopKCommandBuilder.cs +++ b/src/NRedisStack/TopK/TopKCommandBuilder.cs @@ -1,6 +1,6 @@ +using NRedisStack.RedisStackCommands; using NRedisStack.TopK.Literals; using StackExchange.Redis; -using NRedisStack.RedisStackCommands; namespace NRedisStack; diff --git a/tests/Doc/.editorconfig b/tests/Doc/.editorconfig new file mode 100644 index 00000000..202cd346 --- /dev/null +++ b/tests/Doc/.editorconfig @@ -0,0 +1,4 @@ +[*.cs] + +# placeholder for editorconfig + From 9b060b65eeb40fbf13ddaaef33f5790ad5e82733 Mon Sep 17 00:00:00 2001 From: Marc Gravell Date: Wed, 17 Sep 2025 12:01:48 +0100 Subject: [PATCH 2/2] dotnet format --- src/NRedisStack/Search/ISearchCommands.cs | 2 +- src/NRedisStack/Search/ISearchCommandsAsync.cs | 2 +- src/NRedisStack/Search/SearchCommands.cs | 2 +- src/NRedisStack/Search/SearchCommandsAsync.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/NRedisStack/Search/ISearchCommands.cs b/src/NRedisStack/Search/ISearchCommands.cs index a3c4c387..51d7b30b 100644 --- a/src/NRedisStack/Search/ISearchCommands.cs +++ b/src/NRedisStack/Search/ISearchCommands.cs @@ -1,8 +1,8 @@ -using System.ComponentModel; using NRedisStack.Search; using NRedisStack.Search.Aggregation; using NRedisStack.Search.DataTypes; using StackExchange.Redis; +using System.ComponentModel; namespace NRedisStack; diff --git a/src/NRedisStack/Search/ISearchCommandsAsync.cs b/src/NRedisStack/Search/ISearchCommandsAsync.cs index 9ecad397..76db1b0e 100644 --- a/src/NRedisStack/Search/ISearchCommandsAsync.cs +++ b/src/NRedisStack/Search/ISearchCommandsAsync.cs @@ -1,8 +1,8 @@ -using System.ComponentModel; using NRedisStack.Search; using NRedisStack.Search.Aggregation; using NRedisStack.Search.DataTypes; using StackExchange.Redis; +using System.ComponentModel; namespace NRedisStack; diff --git a/src/NRedisStack/Search/SearchCommands.cs b/src/NRedisStack/Search/SearchCommands.cs index d7112de2..7f6b5f45 100644 --- a/src/NRedisStack/Search/SearchCommands.cs +++ b/src/NRedisStack/Search/SearchCommands.cs @@ -1,8 +1,8 @@ -using System.ComponentModel; using NRedisStack.Search; using NRedisStack.Search.Aggregation; using NRedisStack.Search.DataTypes; using StackExchange.Redis; +using System.ComponentModel; namespace NRedisStack; public class SearchCommands(IDatabase db, int? defaultDialect = 2) diff --git a/src/NRedisStack/Search/SearchCommandsAsync.cs b/src/NRedisStack/Search/SearchCommandsAsync.cs index b26979ec..ea9dedef 100644 --- a/src/NRedisStack/Search/SearchCommandsAsync.cs +++ b/src/NRedisStack/Search/SearchCommandsAsync.cs @@ -1,8 +1,8 @@ -using System.ComponentModel; using NRedisStack.Search; using NRedisStack.Search.Aggregation; using NRedisStack.Search.DataTypes; using StackExchange.Redis; +using System.ComponentModel; namespace NRedisStack; public class SearchCommandsAsync : ISearchCommandsAsync