Skip to content

Commit

Permalink
Adding an .editorconfig and a lot of code cleanup (#115)
Browse files Browse the repository at this point in the history
Just code style changes, nothing new. Also fixed/changed some things from #113
  • Loading branch information
MichaCo committed May 17, 2021
1 parent bb9576a commit b47a3da
Show file tree
Hide file tree
Showing 65 changed files with 3,444 additions and 3,041 deletions.
206 changes: 206 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
# editorconfig.org

# top-most EditorConfig file
root = true

# Default settings:
# A newline ending every file
# Use 4 spaces as indentation
[*]
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

# License header
#tbd
#file_header_template = Copyright 2021 Michael Conrad. Licensed under the Apache License, Version 2.0. See LICENSE file for details.

[*.cs]
#Formatting - new line options
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
csharp_new_line_between_query_expression_clauses = true

#Formatting - indentation options
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_indent_labels = one_less_than_current

#Style - Modifier preferences
csharp_preferred_modifier_order = public,private,internal,protected,static,readonly,override,async,abstract,unsafe,virtual:suggestion

#Style - qualification options - no this
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning

#Style - implicit and explicit types
csharp_style_var_for_built_in_types = true:none
csharp_style_var_when_type_is_apparent = true:none
csharp_style_var_elsewhere = false:none
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
dotnet_style_predefined_type_for_member_access = true:warning

# name all constant fields using PascalCase
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = warning
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.required_modifiers = const
dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# static fields should have s_ prefix
dotnet_naming_rule.static_fields_should_have_prefix.severity = warning
dotnet_naming_rule.static_fields_should_have_prefix.symbols = static_fields
dotnet_naming_rule.static_fields_should_have_prefix.style = static_prefix_style
dotnet_naming_symbols.static_fields.applicable_kinds = field
dotnet_naming_symbols.static_fields.required_modifiers = static
dotnet_naming_symbols.static_fields.applicable_accessibilities = private, internal, private_protected
dotnet_naming_style.static_prefix_style.required_prefix = s_
dotnet_naming_style.static_prefix_style.capitalization = camel_case

# internal and private fields should be _camelCase
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = warning
dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
dotnet_naming_style.camel_case_underscore_style.required_prefix = _
dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case

# Code style defaults
csharp_using_directive_placement = outside_namespace:warning
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
csharp_prefer_braces = true:warning
csharp_preserve_single_line_blocks = false:none

#Formatting - organize using statement
csharp_preserve_single_line_statements = false:suggestion
csharp_prefer_static_local_function = true:none
csharp_prefer_simple_using_statement = false:none
csharp_style_prefer_switch_expression = false:none

# Code quality
dotnet_style_readonly_field = true:warning
dotnet_code_quality_unused_parameters = all:warning

#Style - Expression-level preferences
dotnet_style_object_initializer = true:silent
dotnet_style_collection_initializer = true:silent
dotnet_style_explicit_tuple_names = true:warning
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:silent
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:silent

#Style - expression bodied member options
csharp_style_expression_bodied_methods = true:silent
csharp_style_expression_bodied_constructors = true:silent
csharp_style_expression_bodied_operators = true:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = true:silent

#Style - Pattern matching
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:warning
csharp_style_inlined_variable_declaration = true:warning

# Null checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Other features C# 8
csharp_style_prefer_index_operator = false:suggestion
csharp_style_prefer_range_operator = false:suggestion
csharp_style_pattern_local_over_anonymous_function = false:suggestion

#Formatting - spacing options
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = do_not_ignore
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

#Style - modifier options
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion

# Analyzers
dotnet_remove_unnecessary_suppression_exclusions = CA1707

# CS1591: Missing XML comment for publicly visible type or member
dotnet_diagnostic.CS1591.severity = warning

# CA1707: Identifiers should not contain underscores
dotnet_diagnostic.CA1707.severity = warning

# CA1825: Avoid zero-length array allocations (TODO: until we drop .NET45)
dotnet_diagnostic.CA1825.severity = silent

# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' - (TODO: more improvements needed)
dotnet_diagnostic.CA1835.severity = silent

# Xml project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
indent_size = 2



[*.{csproj,vbproj,proj,nativeproj,locproj}]
charset = utf-8

# Xml build files
[*.builds]
indent_size = 2

# Xml files
[*.{xml,stylecop,resx,ruleset}]
indent_size = 2

# Xml config files
[*.{props,targets,config,nuspec}]
indent_size = 2

# YAML config files
[*.{yml,yaml}]
indent_size = 2

# Shell scripts
[*.sh]
end_of_line = lf
[*.{cmd,bat}]
end_of_line = crlf
1 change: 1 addition & 0 deletions DnsClientDotNet.sln
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3D3BE1AD-F55
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B5380A3E-7532-46C4-A510-694D2612B71F}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitignore = .gitignore
appveyor.yml = appveyor.yml
azure-pipelines-ci.yml = azure-pipelines-ci.yml
Expand Down
6 changes: 3 additions & 3 deletions samples/MiniDig/DnsCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ public bool GetUseCache()

public bool GetUseTcpValue() => UseTcpArg.HasValue();

public bool GetUseTcp() => UseTcpArg.HasValue() ? true : false;
public bool GetUseTcp() => UseTcpArg.HasValue();

public bool GetNoTcp() => NoTcpArg.HasValue() ? true : false;
public bool GetNoTcp() => NoTcpArg.HasValue();

protected virtual void Configure()
{
Expand Down Expand Up @@ -198,4 +198,4 @@ protected virtual void Configure()

protected abstract Task<int> Execute();
}
}
}
4 changes: 1 addition & 3 deletions samples/MiniDig/PerfCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ public class PerfCommand : DnsCommand
private long _allExcecutions = 0;
private bool _running;
private LookupClientOptions _settings;
private LookupClient _lookup;
private int _errors;
private int _success;
private Spiner _spinner;
Expand Down Expand Up @@ -69,7 +68,6 @@ protected override async Task<int> Execute()

_settings = GetLookupSettings();
_settings.EnableAuditTrail = false;
_lookup = GetDnsLookup(_settings);
_running = true;

Console.WriteLine($"; <<>> Starting perf run with {_clients} (x{_tasks}) clients running for {_runtime} seconds <<>>");
Expand Down Expand Up @@ -182,4 +180,4 @@ async Task Job()
}
}
}
}
}
10 changes: 5 additions & 5 deletions samples/MiniDig/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ public static async Task<int> Main(string[] args)

try
{
app.Command("perf", (perfApp) => new PerfCommand(perfApp, args), throwOnUnexpectedArg: true);
app.Command("random", (randApp) => new RandomCommand(randApp, args), throwOnUnexpectedArg: true);
_ = app.Command("perf", (perfApp) => _ = new PerfCommand(perfApp, args), throwOnUnexpectedArg: true);
_ = app.Command("random", (randApp) => _ = new RandomCommand(randApp, args), throwOnUnexpectedArg: true);

app.Command("dig", (digApp) => new DigCommand(digApp, args), throwOnUnexpectedArg: true);
// Command must initialize so that it adds the configuration.
_ = new DigCommand(app, args);

var defaultCommand = new DigCommand(app, args);
return await app.ExecuteAsync(args).ConfigureAwait(false);
}
catch (UnrecognizedCommandParsingException ex)
Expand Down Expand Up @@ -91,4 +91,4 @@ public static async Task<int> Main(string[] args)
//// }
//// }
////}
}
}
14 changes: 8 additions & 6 deletions samples/MiniDig/RandomCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,13 @@ namespace DigApp
{
public class RandomCommand : DnsCommand
{
private static readonly Random s_randmom = new Random();

private readonly ConcurrentDictionary<string, int> _errorsPerCode = new ConcurrentDictionary<string, int>();
private readonly ConcurrentDictionary<NameServer, int> _successByServer = new ConcurrentDictionary<NameServer, int>();
private readonly ConcurrentDictionary<NameServer, int> _failByServer = new ConcurrentDictionary<NameServer, int>();

private ConcurrentQueue<string> _domainNames;
private static Random _randmom = new Random();
private int _clients;
private int _runtime;
private long _reportExcecutions = 0;
Expand All @@ -23,9 +28,6 @@ public class RandomCommand : DnsCommand
private LookupClientOptions _settings;
private LookupClient _lookup;
private int _errors;
private ConcurrentDictionary<string, int> _errorsPerCode = new ConcurrentDictionary<string, int>();
private ConcurrentDictionary<NameServer, int> _successByServer = new ConcurrentDictionary<NameServer, int>();
private ConcurrentDictionary<NameServer, int> _failByServer = new ConcurrentDictionary<NameServer, int>();
private int _success;
private Spiner _spinner;
private bool _runSync;
Expand Down Expand Up @@ -64,7 +66,7 @@ protected override void Configure()
protected override async Task<int> Execute()
{
var lines = File.ReadAllLines("names.txt");
_domainNames = new ConcurrentQueue<string>(lines.Select(p => p.Substring(p.IndexOf(',') + 1)).OrderBy(x => _randmom.Next(0, lines.Length * 2)));
_domainNames = new ConcurrentQueue<string>(lines.Select(p => p.Substring(p.IndexOf(',') + 1)).OrderBy(x => s_randmom.Next(0, lines.Length * 2)));

_clients = ClientsArg.HasValue() ? int.Parse(ClientsArg.Value()) : 10;
_runtime = RuntimeArg.HasValue() ? int.Parse(RuntimeArg.Value()) <= 1 ? 5 : int.Parse(RuntimeArg.Value()) : 5;
Expand Down Expand Up @@ -207,4 +209,4 @@ private async Task ExcecuteRun()
}
}
}
}
}
3 changes: 3 additions & 0 deletions src/DnsClient/DnsClient.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\icon.png" Pack="true" PackagePath="" />
Expand Down

0 comments on commit b47a3da

Please sign in to comment.