diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..694437a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,168 @@ +root = true + +[*] +indent_style = tab +tab_width = 4 +indent_size = tab + +insert_final_newline = true +end_of_line = crlf + +dotnet_separate_import_directive_groups = true +dotnet_sort_system_directives_first = true + +dotnet_style_qualification_for_event = false +dotnet_style_qualification_for_field = false +dotnet_style_qualification_for_method = false +dotnet_style_qualification_for_property = false + +dotnet_style_predefined_type_for_locals_parameters_members = true +dotnet_style_predefined_type_for_member_access = true + +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_operators = never_if_unnecessary +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity + +csharp_style_var_when_type_is_apparent = true +csharp_style_var_for_built_in_types = true +csharp_style_var_elsewhere = true + +csharp_style_implicit_object_creation_when_type_is_apparent = true:warning + +# IDE0022: Use block body for methods +csharp_style_expression_bodied_methods = when_on_single_line + +# IDE0058: Expression value is never used +csharp_style_unused_value_expression_statement_preference = discard_variable + +# SA1101: Prefix local calls with this +dotnet_diagnostic.SA1101.severity = none + +# SA1118: Parameter must not span multiple lines - broken for csharp_style_implicit_object_creation_when_type_is_apparent +dotnet_diagnostic.SA1118.severity = none + +# SA1309: Field names should not begin with underscore +dotnet_diagnostic.SA1309.severity = none + +# SA1512: Single-line comments should not be followed by blank line +dotnet_diagnostic.SA1512.severity = none + +# SA1600: Elements should be documented +dotnet_diagnostic.SA1600.severity = none + +dotnet_naming_rule.private_members_with_underscore.symbols = private_fields +dotnet_naming_rule.private_members_with_underscore.style = prefix_underscore +dotnet_naming_rule.private_members_with_underscore.severity = suggestion + +dotnet_naming_symbols.private_fields.applicable_kinds = field +dotnet_naming_symbols.private_fields.applicable_accessibilities = private + +dotnet_naming_style.prefix_underscore.capitalization = camel_case +dotnet_naming_style.prefix_underscore.required_prefix = _ + +# Microsoft .NET properties +csharp_preferred_modifier_order = public, private, protected, internal, new, abstract, virtual, sealed, override, static, readonly, extern, unsafe, volatile, async:suggestion +csharp_space_after_cast = false +csharp_style_expression_bodied_accessors = true:suggestion +csharp_style_expression_bodied_methods = true:none +csharp_style_expression_bodied_properties = true:suggestion +csharp_style_var_elsewhere = true:suggestion +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +dotnet_diagnostic.sa1101.severity = none +dotnet_diagnostic.sa1309.severity = none +dotnet_diagnostic.sa1512.severity = none +dotnet_diagnostic.sa1600.severity = none +dotnet_naming_rule.private_constants_rule.import_to_resharper = as_predefined +dotnet_naming_rule.private_constants_rule.severity = suggestion +dotnet_naming_rule.private_constants_rule.style = lower_camel_case_style +dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols +dotnet_naming_rule.private_members_with_underscore_rule.import_to_resharper = True +dotnet_naming_rule.private_members_with_underscore_rule.resharper_description = private_members_with_underscore +dotnet_naming_rule.private_members_with_underscore_rule.resharper_guid = bce47c4f-c5b3-4475-bcf9-ca01adfb3835 +dotnet_naming_rule.private_members_with_underscore_rule.severity = suggestion +dotnet_naming_rule.private_members_with_underscore_rule.style = lower_camel_case_style +dotnet_naming_rule.private_members_with_underscore_rule.symbols = private_members_with_underscore_symbols +dotnet_naming_rule.private_static_readonly_rule.import_to_resharper = as_predefined +dotnet_naming_rule.private_static_readonly_rule.severity = suggestion +dotnet_naming_rule.private_static_readonly_rule.style = lower_camel_case_style +dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols +dotnet_naming_rule.unity_serialized_field_rule.import_to_resharper = True +dotnet_naming_rule.unity_serialized_field_rule.resharper_description = Unity serialized field +dotnet_naming_rule.unity_serialized_field_rule.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef +dotnet_naming_rule.unity_serialized_field_rule.severity = suggestion +dotnet_naming_rule.unity_serialized_field_rule.style = lower_camel_case_style_1 +dotnet_naming_rule.unity_serialized_field_rule.symbols = unity_serialized_field_symbols +dotnet_naming_style.lower_camel_case_style.capitalization = camel_case +dotnet_naming_style.lower_camel_case_style.required_prefix = _ +dotnet_naming_style.lower_camel_case_style_1.capitalization = camel_case +dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private +dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field +dotnet_naming_symbols.private_constants_symbols.required_modifiers = const +dotnet_naming_symbols.private_members_with_underscore_symbols.applicable_accessibilities = local,private +dotnet_naming_symbols.private_members_with_underscore_symbols.applicable_kinds = field +dotnet_naming_symbols.private_members_with_underscore_symbols.resharper_applicable_kinds = field,readonly_field,constant_field +dotnet_naming_symbols.private_members_with_underscore_symbols.resharper_required_modifiers = any +dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private +dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field +dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static,readonly +dotnet_naming_symbols.unity_serialized_field_symbols.applicable_accessibilities = * +dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds = unity_serialised_field +dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field +dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance +dotnet_separate_import_directive_groups = true +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:none +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:none +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion +dotnet_style_qualification_for_event = false:suggestion +dotnet_style_qualification_for_field = false:suggestion +dotnet_style_qualification_for_method = false:suggestion +dotnet_style_qualification_for_property = false:suggestion +dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion + +# ReSharper properties +resharper_align_multiline_binary_expressions_chain = false +resharper_blank_lines_around_single_line_auto_property = 1 +resharper_csharp_blank_lines_around_single_line_invocable = 1 +resharper_csharp_max_line_length = 120 +resharper_csharp_wrap_after_declaration_lpar = true +resharper_csharp_wrap_extends_list_style = chop_if_long +resharper_csharp_wrap_parameters_style = chop_if_long +resharper_enforce_line_ending_style = true +resharper_indent_pars = outside +resharper_keep_existing_initializer_arrangement = true +resharper_object_creation_when_type_not_evident = target_typed +resharper_place_accessorholder_attribute_on_same_line = false +resharper_place_expr_accessor_on_single_line = true +resharper_place_expr_method_on_single_line = true +resharper_place_expr_property_on_single_line = true +resharper_place_simple_initializer_on_single_line = true +resharper_space_after_cast = false +resharper_space_within_single_line_array_initializer_braces = true +resharper_use_indent_from_vs = false +resharper_wrap_chained_binary_expressions = chop_if_long +resharper_wrap_object_and_collection_initializer_style = chop_always + +# ReSharper inspection severities +resharper_arrange_object_creation_when_type_not_evident_highlighting = warning +resharper_arrange_redundant_parentheses_highlighting = hint +resharper_arrange_this_qualifier_highlighting = hint +resharper_arrange_type_member_modifiers_highlighting = hint +resharper_arrange_type_modifiers_highlighting = hint +resharper_built_in_type_reference_style_for_member_access_highlighting = hint +resharper_built_in_type_reference_style_highlighting = hint +resharper_inconsistent_naming_highlighting = suggestion +resharper_redundant_base_qualifier_highlighting = warning +resharper_suggest_var_or_type_built_in_types_highlighting = hint +resharper_suggest_var_or_type_elsewhere_highlighting = hint +resharper_suggest_var_or_type_simple_types_highlighting = hint +resharper_web_config_module_not_resolved_highlighting = warning +resharper_web_config_type_not_resolved_highlighting = warning +resharper_web_config_wrong_module_highlighting = warning + +[*.yml] +indent_style = space +tab_width = 2 diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..2a9b505 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,31 @@ + + + enable + true + + true + AGPL-3.0-or-later + https://github.com/VMelnalksnis/Gnomeshade + git + + Valters Melnalksnis + Gnomeshade + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + + + + + + + stylecop.json + + + diff --git a/NordigenDotNet.sln b/NordigenDotNet.sln index efc733e..c45882a 100644 --- a/NordigenDotNet.sln +++ b/NordigenDotNet.sln @@ -5,11 +5,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .gitignore = .gitignore LICENSE = LICENSE README.md = README.md + Directory.Build.props = Directory.Build.props + stylecop.json = stylecop.json + .editorconfig = .editorconfig EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VMelnalksnis.NordigenDotNet", "source\VMelnalksnis.NordigenDotNet\VMelnalksnis.NordigenDotNet.csproj", "{C70F5B40-0A36-45CB-921B-09EA1F9A63AD}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F9FD8772-AC85-42BE-B3B0-F03247F72E2A}" + ProjectSection(SolutionItems) = preProject + tests\Directory.Build.props = tests\Directory.Build.props + tests\.editorconfig = tests\.editorconfig + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VMelnalksnis.NordigenDotNet.Tests", "tests\VMelnalksnis.NordigenDotNet.Tests\VMelnalksnis.NordigenDotNet.Tests.csproj", "{6D01A25A-127B-4004-9C87-D0AA326E1DC2}" EndProject diff --git a/source/VMelnalksnis.NordigenDotNet/VMelnalksnis.NordigenDotNet.csproj b/source/VMelnalksnis.NordigenDotNet/VMelnalksnis.NordigenDotNet.csproj index 58ef59a..f2f3353 100644 --- a/source/VMelnalksnis.NordigenDotNet/VMelnalksnis.NordigenDotNet.csproj +++ b/source/VMelnalksnis.NordigenDotNet/VMelnalksnis.NordigenDotNet.csproj @@ -1,8 +1,7 @@ - - net6.0 - enable - + + net6.0 + diff --git a/stylecop.json b/stylecop.json new file mode 100644 index 0000000..188c0b5 --- /dev/null +++ b/stylecop.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "Valters Melnalksnis", + "copyrightText": "Copyright 2022 {companyName}\r\nLicensed under the {licenseName}.\r\nSee {licenseFile} file in the project root for full license information.", + "variables": { + "licenseName": "Apache License 2.0", + "licenseFile": "LICENSE" + }, + "excludeFromPunctuationCheck": [], + "xmlHeader": false, + "documentationCulture": "en-US", + "documentExposedElements": true, + "documentInterfaces": true, + "documentInternalElements": true, + "documentPrivateElements": false, + "documentPrivateFields": false, + "fileNamingConvention": "stylecop", + "headerDecoration": "" + }, + "indentation": { + "indentationSize": 4, + "tabSize": 4, + "useTabs": true + }, + "layoutRules": { + "allowConsecutiveUsings": true, + "newlineAtEndOfFile": "require" + }, + "orderingRules": { + "systemUsingDirectivesFirst": true, + "usingDirectivesPlacement": "outsideNamespace", + "blankLinesBetweenUsingGroups": "require" + } + } +} diff --git a/tests/.editorconfig b/tests/.editorconfig new file mode 100644 index 0000000..630bc9b --- /dev/null +++ b/tests/.editorconfig @@ -0,0 +1,4 @@ +[*.cs] + +# CS1591: Missing XML comment for publicly visible type or member +dotnet_diagnostic.CS1591.severity = none diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 0000000..31d5aea --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,28 @@ + + + + + false + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + + diff --git a/tests/VMelnalksnis.NordigenDotNet.Tests/PlaceholderTests.cs b/tests/VMelnalksnis.NordigenDotNet.Tests/PlaceholderTests.cs index bb7d630..9df6480 100644 --- a/tests/VMelnalksnis.NordigenDotNet.Tests/PlaceholderTests.cs +++ b/tests/VMelnalksnis.NordigenDotNet.Tests/PlaceholderTests.cs @@ -1,4 +1,6 @@ -using Xunit; +// Copyright 2022 Valters Melnalksnis +// Licensed under the Apache License 2.0. +// See LICENSE file in the project root for full license information. namespace VMelnalksnis.NordigenDotNet.Tests; @@ -7,5 +9,6 @@ public sealed class PlaceholderTests [Fact] public void Pass() { + Assert.True(true); } } diff --git a/tests/VMelnalksnis.NordigenDotNet.Tests/VMelnalksnis.NordigenDotNet.Tests.csproj b/tests/VMelnalksnis.NordigenDotNet.Tests/VMelnalksnis.NordigenDotNet.Tests.csproj index 666d713..9d1c4dc 100644 --- a/tests/VMelnalksnis.NordigenDotNet.Tests/VMelnalksnis.NordigenDotNet.Tests.csproj +++ b/tests/VMelnalksnis.NordigenDotNet.Tests/VMelnalksnis.NordigenDotNet.Tests.csproj @@ -1,27 +1,11 @@ - - net6.0 - enable + + net6.0 + - false - - - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - + + +