From 725eff1811fc1b31cbe30afc7be692ae768af9f2 Mon Sep 17 00:00:00 2001 From: Frank Robijn Date: Fri, 26 Jul 2024 11:04:47 +0200 Subject: [PATCH 1/6] EditorConfig and spelling_exclusion.dic added --- .editorconfig | 76 ++++++++++++++++++++++++++++++++++++++++++ spelling_exclusion.dic | 2 ++ 2 files changed, 78 insertions(+) create mode 100644 .editorconfig create mode 100644 spelling_exclusion.dic diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1a4c43c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,76 @@ +# EditorConfig for Visual Studio 2022: https://learn.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022 + +# This is a top-most .editorconfig file +root = true + +#===================================================== +# +# Settings for all file types +# +#===================================================== +[*] + +# Generic EditorConfig settings +indent_style = space +indent_size = 4 +end_of_line = crlf +charset = utf-8-bom +trim_trailing_whitespace = true +insert_final_newline = true + +# Visual Studio spell checker +spelling_languages = en-us +spelling_checkable_types = strings,identifiers,comments +spelling_error_severity = information +spelling_exclusion_path = spelling_exclusion.dic + +#===================================================== +# +# C# code files +# +#===================================================== +[*.cs] +dotnet_sort_system_directives_first = false +dotnet_separate_import_directive_groups = false + +# Formatting rules +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 + +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = one_less_than_current +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents_when_block = true + +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_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_call_parameter_list_parentheses = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_after_comma = true +csharp_space_before_comma = false +csharp_space_after_dot = false +csharp_space_before_dot = false +csharp_space_after_semicolon_in_for_statement = true +csharp_space_before_semicolon_in_for_statement = false +csharp_space_around_declaration_statements = false +csharp_space_before_open_square_brackets = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_square_brackets = false + +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true diff --git a/spelling_exclusion.dic b/spelling_exclusion.dic new file mode 100644 index 0000000..f488d8f --- /dev/null +++ b/spelling_exclusion.dic @@ -0,0 +1,2 @@ +nano +Sntp From 76699b6116a94bc9c04994596432282fd78664f8 Mon Sep 17 00:00:00 2001 From: Frank Robijn Date: Wed, 31 Jul 2024 16:21:16 +0200 Subject: [PATCH 2/6] - Copied settings from https://github.com/dotnet/runtime - Kept end_of_line and charset for all files, as those are not in the runtime .editorconfig - Kept spell checker settings --- .editorconfig | 197 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 167 insertions(+), 30 deletions(-) diff --git a/.editorconfig b/.editorconfig index 1a4c43c..a5a9d5f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,18 +5,14 @@ root = true #===================================================== # -# Settings for all file types +# nanoFramework specific settings +# # #===================================================== [*] - # Generic EditorConfig settings -indent_style = space -indent_size = 4 end_of_line = crlf charset = utf-8-bom -trim_trailing_whitespace = true -insert_final_newline = true # Visual Studio spell checker spelling_languages = en-us @@ -26,14 +22,26 @@ spelling_exclusion_path = spelling_exclusion.dic #===================================================== # -# C# code files +# Settings copied from the .NET runtime +# +# https://github.com/dotnet/runtime # #===================================================== -[*.cs] -dotnet_sort_system_directives_first = false -dotnet_separate_import_directive_groups = false +# 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 + +# Generated code +[*{_AssemblyInfo.cs,.notsupported.cs,AsmOffsets.cs}] +generated_code = true -# Formatting rules +# C# files +[*.cs] +# New line preferences csharp_new_line_before_open_brace = all csharp_new_line_before_else = true csharp_new_line_before_catch = true @@ -42,35 +50,164 @@ 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 +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = false csharp_indent_switch_labels = true csharp_indent_labels = one_less_than_current -csharp_indent_block_contents = true -csharp_indent_braces = false -csharp_indent_case_contents_when_block = true +# Modifier preferences +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion + +# avoid this. unless absolutely 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 + +# Types: use keywords instead of BCL types, and permit var only when the type is clear +csharp_style_var_for_built_in_types = false:suggestion +csharp_style_var_when_type_is_apparent = false:none +csharp_style_var_elsewhere = false:suggestion +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion + +# name all constant fields using PascalCase +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion +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 = suggestion +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 = suggestion +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:suggestion +dotnet_sort_system_directives_first = true +csharp_prefer_braces = true:silent +csharp_preserve_single_line_blocks = true:none +csharp_preserve_single_line_statements = false:none +csharp_prefer_static_local_function = true:suggestion +csharp_prefer_simple_using_statement = false:none +csharp_style_prefer_switch_expression = true:suggestion +dotnet_style_readonly_field = true:suggestion + +# Expression-level preferences +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_collection_expression = when_types_exactly_match +dotnet_style_explicit_tuple_names = true:suggestion +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:suggestion +dotnet_style_prefer_auto_properties = true:suggestion +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 + +# Expression-bodied members +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 + +# Pattern matching +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 + +# Null checking preferences +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +# Other features +csharp_style_prefer_index_operator = false:none +csharp_style_prefer_range_operator = false:none +csharp_style_pattern_local_over_anonymous_function = false:none + +# Space preferences csharp_space_after_cast = false -csharp_space_after_keywords_in_control_flow_statements = true -csharp_space_between_parentheses = false -csharp_space_before_colon_in_inheritance_clause = true csharp_space_after_colon_in_inheritance_clause = true -csharp_space_around_binary_operators = before_and_after -csharp_space_between_method_declaration_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_call_parameter_list_parentheses = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false -csharp_space_between_method_call_name_and_opening_parenthesis = false csharp_space_after_comma = true -csharp_space_before_comma = false csharp_space_after_dot = false -csharp_space_before_dot = false +csharp_space_after_keywords_in_control_flow_statements = true csharp_space_after_semicolon_in_for_statement = true -csharp_space_before_semicolon_in_for_statement = false -csharp_space_around_declaration_statements = false +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 -csharp_preserve_single_line_statements = true -csharp_preserve_single_line_blocks = true +# License header +file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license. + +# C++ Files +[*.{cpp,h,in}] +curly_bracket_next_line = true +indent_brace_style = Allman + +# 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 \ No newline at end of file From a705a09d62540ce4a62a939eff7a6118e72ca167 Mon Sep 17 00:00:00 2001 From: Frank Robijn Date: Thu, 1 Aug 2024 13:56:31 +0200 Subject: [PATCH 3/6] License header --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index a5a9d5f..ea4204d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -176,7 +176,7 @@ csharp_space_between_parentheses = false csharp_space_between_square_brackets = false # License header -file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license. +file_header_template = Copyright (c) .NET Foundation and Contributors.\nSee LICENSE file in the project root for full license information. # C++ Files [*.{cpp,h,in}] From 6ed27c74e9f86c356ea3c08b481f04a7d49a134f Mon Sep 17 00:00:00 2001 From: Frank Robijn Date: Thu, 1 Aug 2024 22:23:14 +0200 Subject: [PATCH 4/6] Revert "License header" This reverts commit a705a09d62540ce4a62a939eff7a6118e72ca167. --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index ea4204d..a5a9d5f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -176,7 +176,7 @@ csharp_space_between_parentheses = false csharp_space_between_square_brackets = false # License header -file_header_template = Copyright (c) .NET Foundation and Contributors.\nSee LICENSE file in the project root for full license information. +file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license. # C++ Files [*.{cpp,h,in}] From fb75447b7b4eb8dbad8997cae3ff5a41e2429edd Mon Sep 17 00:00:00 2001 From: josesimoes Date: Fri, 2 Aug 2024 15:29:55 +0100 Subject: [PATCH 5/6] Dummy code style errors --- nanoFramework.Networking.Sntp/Sntp.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nanoFramework.Networking.Sntp/Sntp.cs b/nanoFramework.Networking.Sntp/Sntp.cs index a9e213d..4209f20 100644 --- a/nanoFramework.Networking.Sntp/Sntp.cs +++ b/nanoFramework.Networking.Sntp/Sntp.cs @@ -2,7 +2,7 @@ // Copyright (c) .NET Foundation and Contributors // See LICENSE file in the project root for full license information. // - + using System.Runtime.CompilerServices; namespace nanoFramework.Networking @@ -25,10 +25,10 @@ public class Sntp /// /// /// By default the time synchronization occurs on a hourly rate. - /// + /// /// [MethodImpl(MethodImplOptions.InternalCall)] - public static extern void Start(); + public static extern void Start() ; /// /// Stops the SNTP client. @@ -44,7 +44,7 @@ public class Sntp /// This performs a restart of the internal service. /// [MethodImpl(MethodImplOptions.InternalCall)] - public static extern void UpdateNow(); + public static extern void UpdateNow( ); /// /// Get status of SNTP client. From 85a14d353f975a8eb8d44aca8232fdef22364857 Mon Sep 17 00:00:00 2001 From: josesimoes Date: Fri, 2 Aug 2024 15:30:00 +0100 Subject: [PATCH 6/6] Add Microsoft.CodeAnalysis.NetAnalyzers --- .../nanoFramework.Networking.Sntp.nfproj | 11 ++++++++++- nanoFramework.Networking.Sntp/packages.config | 1 + nanoFramework.Networking.Sntp/packages.lock.json | 6 ++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/nanoFramework.Networking.Sntp/nanoFramework.Networking.Sntp.nfproj b/nanoFramework.Networking.Sntp/nanoFramework.Networking.Sntp.nfproj index ba65dc9..5988b2a 100644 --- a/nanoFramework.Networking.Sntp/nanoFramework.Networking.Sntp.nfproj +++ b/nanoFramework.Networking.Sntp/nanoFramework.Networking.Sntp.nfproj @@ -5,6 +5,7 @@ $(MSBuildExtensionsPath)\nanoFramework\v1.0\ + Debug AnyCPU @@ -20,6 +21,11 @@ bin\$(Configuration)\nanoFramework.Networking.Sntp.xml true + + true + true + latest + true @@ -70,6 +76,9 @@ + + - \ No newline at end of file + + diff --git a/nanoFramework.Networking.Sntp/packages.config b/nanoFramework.Networking.Sntp/packages.config index a39926d..ef399ff 100644 --- a/nanoFramework.Networking.Sntp/packages.config +++ b/nanoFramework.Networking.Sntp/packages.config @@ -1,5 +1,6 @@  + \ No newline at end of file diff --git a/nanoFramework.Networking.Sntp/packages.lock.json b/nanoFramework.Networking.Sntp/packages.lock.json index be631b7..3459ca5 100644 --- a/nanoFramework.Networking.Sntp/packages.lock.json +++ b/nanoFramework.Networking.Sntp/packages.lock.json @@ -2,6 +2,12 @@ "version": 1, "dependencies": { ".NETnanoFramework,Version=v1.0": { + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, 8.0.0]", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, "nanoFramework.CoreLibrary": { "type": "Direct", "requested": "[1.15.5, 1.15.5]",