From 503ece558b4f07bd8008157d3aeb6a4e7100d349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 10 Nov 2017 22:36:52 +0900 Subject: [PATCH 1/7] Add EditorConfig --- .editorconfig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..8780bc02c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +# EditorConfig is awesome: http://EditorConfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_size = 4 +indent_style = space +trim_trailing_whitespace = true + +[*.{csproj,json,md,yml}] +indent_size = 2 +indent_style = space + +[*.sln] +indent_style = tab From af756cd9feb630baadbf6025cbb079cd9e1f45cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sat, 11 Nov 2017 00:35:30 +0900 Subject: [PATCH 2/7] Add basic .NET style rules --- .editorconfig | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/.editorconfig b/.editorconfig index 8780bc02c..fac5c012f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,3 +16,60 @@ indent_style = space [*.sln] indent_style = tab + +[*.cs] +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 + +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion + +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion + +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = true:suggestion + +csharp_style_expression_bodied_methods = true:none +csharp_style_expression_bodied_operators = true:none +csharp_style_expression_bodied_properties = true:none +csharp_style_expression_bodied_indexers = true:none +csharp_style_expression_bodied_accessors = true:none + +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_prefer_simple_default_expression = false:none + +csharp_style_throw_expression = true:none +csharp_style_conditional_delegate_call = true:none +csharp_prefer_braces = false:none + +dotnet_sort_system_directives_first = false + +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_within_query_expression_clauses = true + +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = flush_left + +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_method_call_parameter_list_parentheses = false + +csharp_preserve_single_line_statements = false +csharp_preserve_single_line_blocks = true From 4f19b835ffe8c64a93a9b4659e60b03ac797760f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sat, 11 Nov 2017 01:19:11 +0900 Subject: [PATCH 3/7] Add naming rules --- .editorconfig | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.editorconfig b/.editorconfig index fac5c012f..ce571c4a4 100644 --- a/.editorconfig +++ b/.editorconfig @@ -73,3 +73,41 @@ csharp_space_between_method_call_parameter_list_parentheses = false csharp_preserve_single_line_statements = false csharp_preserve_single_line_blocks = true + +dotnet_naming_rule.all_of_const_fields_are_pascal_case.symbols = const_fields +dotnet_naming_rule.all_of_const_fields_are_pascal_case.style = pascal_case +dotnet_naming_rule.all_of_const_fields_are_pascal_case.severity = suggestion + +dotnet_naming_rule.all_of_local_fields_without_const_are_camel_case.symbols = local_fields +dotnet_naming_rule.all_of_local_fields_without_const_are_camel_case.style = starts_with_low_line_camel_case +dotnet_naming_rule.all_of_local_fields_without_const_are_camel_case.severity = suggestion + +dotnet_naming_rule.all_of_interfaces_starts_with_low_line_camel_case.symbols = interfaces +dotnet_naming_rule.all_of_interfaces_starts_with_low_line_camel_case.style = starts_with_i_pascal_case +dotnet_naming_rule.all_of_interfaces_starts_with_low_line_camel_case.severity = suggestion + +dotnet_naming_rule.default_is_pascal_case.symbols = without_interfaces_and_fields +dotnet_naming_rule.default_is_pascal_case.style = pascal_case +dotnet_naming_rule.default_is_pascal_case.severity = suggestion + +dotnet_naming_symbols.const_fields.applicable_kinds = field +dotnet_naming_symbols.const_fields.applicable_accessibilities = * +dotnet_naming_symbols.const_fields.required_modifiers = const + +dotnet_naming_symbols.interfaces.applicable_kinds = interface +dotnet_naming_symbols.interfaces.applicable_accessibilities = * + +dotnet_naming_symbols.local_fields.applicable_kinds = field +dotnet_naming_symbols.local_fields.applicable_accessibilities = private, protected, protected_internal +dotnet_naming_symbols.local_fields.required_modifiers = abstract, must_inherit, readonly, static, shared + +dotnet_naming_symbols.without_interfaces_and_fields.applicable_kinds = class, struct, enum, property, method, event, namespace, delegate, type_parameter +dotnet_naming_symbols.without_interfaces_and_fields.applicable_accessibilities = * + +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.starts_with_i_pascal_case.required_prefix = I +dotnet_naming_style.starts_with_i_pascal_case.capitalization = pascal_case + +dotnet_naming_style.starts_with_low_line_camel_case.required_prefix = _ +dotnet_naming_style.starts_with_low_line_camel_case.capitalization = camel_case From 2d08f9a655b4949c1177f778d0f499047484a537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sat, 11 Nov 2017 10:17:42 +0900 Subject: [PATCH 4/7] Add some more extension --- .editorconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index ce571c4a4..daede7908 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,11 +10,11 @@ indent_size = 4 indent_style = space trim_trailing_whitespace = true -[*.{csproj,json,md,yml}] +[*.{csproj,json,md,nuspec,yml}] indent_size = 2 indent_style = space -[*.sln] +[*.{sln,xml}] indent_style = tab [*.cs] From c692306fcc1e86ab92dd10683d3719f16c02a249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sat, 11 Nov 2017 10:49:00 +0900 Subject: [PATCH 5/7] Add target of the internal fields --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index daede7908..696bb866b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -98,7 +98,7 @@ dotnet_naming_symbols.interfaces.applicable_kinds = interface dotnet_naming_symbols.interfaces.applicable_accessibilities = * dotnet_naming_symbols.local_fields.applicable_kinds = field -dotnet_naming_symbols.local_fields.applicable_accessibilities = private, protected, protected_internal +dotnet_naming_symbols.local_fields.applicable_accessibilities = internal, private, protected, protected_internal dotnet_naming_symbols.local_fields.required_modifiers = abstract, must_inherit, readonly, static, shared dotnet_naming_symbols.without_interfaces_and_fields.applicable_kinds = class, struct, enum, property, method, event, namespace, delegate, type_parameter From 27ea82668587960925b73f97c924c9d39ee71f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sun, 29 Apr 2018 11:29:31 +0900 Subject: [PATCH 6/7] Add support casting System.Drawing.Color to Discord.Color --- src/Discord.Net.Core/Discord.Net.Core.csproj | 5 +++-- src/Discord.Net.Core/Entities/Roles/Color.cs | 12 +++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Core/Discord.Net.Core.csproj b/src/Discord.Net.Core/Discord.Net.Core.csproj index 7565fa178..377ad99bb 100644 --- a/src/Discord.Net.Core/Discord.Net.Core.csproj +++ b/src/Discord.Net.Core/Discord.Net.Core.csproj @@ -4,8 +4,9 @@ Discord.Net.Core Discord The core components for the Discord.Net library. - net45;netstandard1.1;netstandard1.3 - netstandard1.1;netstandard1.3 + net45;netstandard1.1;netstandard1.3;netstandard2.0 + netstandard1.1;netstandard1.3;netstandard2.0 + NETSTANDARD2 diff --git a/src/Discord.Net.Core/Entities/Roles/Color.cs b/src/Discord.Net.Core/Entities/Roles/Color.cs index 89e76df6d..5bd3e2a56 100644 --- a/src/Discord.Net.Core/Entities/Roles/Color.cs +++ b/src/Discord.Net.Core/Entities/Roles/Color.cs @@ -1,5 +1,8 @@ using System; using System.Diagnostics; +#if NETSTANDARD2 +using StandardColor = System.Drawing.Color; +#endif namespace Discord { @@ -96,7 +99,14 @@ namespace Discord ((uint)(g * 255.0f) << 8) | (uint)(b * 255.0f); } - + +#if NETSTANDARD2 + public static implicit operator StandardColor(Color color) => + StandardColor.FromArgb((int)color.RawValue); + public static explicit operator Color(StandardColor color) => + new Color((uint)color.ToArgb() << 8 >> 8); +#endif + public override string ToString() => $"#{Convert.ToString(RawValue, 16)}"; private string DebuggerDisplay => From fa3303426766a59e7aa4d67e8b50826cfe7204ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Sun, 29 Apr 2018 13:50:56 +0900 Subject: [PATCH 7/7] Use built-in symbol refs: https://github.com/RogueException/Discord.Net/pull/1043#issuecomment-385223999 --- src/Discord.Net.Core/Discord.Net.Core.csproj | 1 - src/Discord.Net.Core/Entities/Roles/Color.cs | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Core/Discord.Net.Core.csproj b/src/Discord.Net.Core/Discord.Net.Core.csproj index 377ad99bb..321803114 100644 --- a/src/Discord.Net.Core/Discord.Net.Core.csproj +++ b/src/Discord.Net.Core/Discord.Net.Core.csproj @@ -6,7 +6,6 @@ The core components for the Discord.Net library. net45;netstandard1.1;netstandard1.3;netstandard2.0 netstandard1.1;netstandard1.3;netstandard2.0 - NETSTANDARD2 diff --git a/src/Discord.Net.Core/Entities/Roles/Color.cs b/src/Discord.Net.Core/Entities/Roles/Color.cs index 5bd3e2a56..0bb04d339 100644 --- a/src/Discord.Net.Core/Entities/Roles/Color.cs +++ b/src/Discord.Net.Core/Entities/Roles/Color.cs @@ -1,6 +1,6 @@ using System; using System.Diagnostics; -#if NETSTANDARD2 +#if NETSTANDARD2_0 || NET45 using StandardColor = System.Drawing.Color; #endif @@ -100,7 +100,7 @@ namespace Discord (uint)(b * 255.0f); } -#if NETSTANDARD2 +#if NETSTANDARD2_0 || NET45 public static implicit operator StandardColor(Color color) => StandardColor.FromArgb((int)color.RawValue); public static explicit operator Color(StandardColor color) =>