summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/.editorconfig58
-rw-r--r--src/StardewModdingAPI.sln3
-rw-r--r--src/StardewModdingAPI.sln.DotSettings1
-rw-r--r--src/StardewModdingAPI/Framework/DeprecationManager.cs2
-rw-r--r--src/StardewModdingAPI/Framework/Monitor.cs4
5 files changed, 63 insertions, 5 deletions
diff --git a/src/.editorconfig b/src/.editorconfig
new file mode 100644
index 00000000..3037884e
--- /dev/null
+++ b/src/.editorconfig
@@ -0,0 +1,58 @@
+# topmost editorconfig
+root: true
+
+##########
+## General formatting
+## documentation: http://editorconfig.org
+##########
+[*]
+indent_style = space
+indent_size = 4
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+
+##########
+## C# formatting
+## documentation: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
+## some undocumented settings from: https://github.com/dotnet/roslyn/blob/master/.editorconfig
+##########
+[*.cs]
+
+#sort 'system' usings first
+dotnet_sort_system_directives_first = true
+
+# use 'this.' qualifier
+dotnet_style_qualification_for_field = true:error
+dotnet_style_qualification_for_property = true:error
+dotnet_style_qualification_for_method = true:error
+dotnet_style_qualification_for_event = true:error
+
+# use language keywords (like int) instead of type (like Int32)
+dotnet_style_predefined_type_for_locals_parameters_members = true:error
+dotnet_style_predefined_type_for_member_access = true:error
+
+# don't use 'var' for language keywords
+csharp_style_var_for_built_in_types = false:error
+
+# suggest modern C# features where simpler
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
+csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
+csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+csharp_style_conditional_delegate_call = true:suggestion
+
+# prefer method block bodies
+csharp_style_expression_bodied_methods = false:suggestion
+csharp_style_expression_bodied_constructors = false:suggestion
+
+# prefer property expression bodies
+csharp_style_expression_bodied_properties = true:suggestion
+csharp_style_expression_bodied_indexers = true:suggestion
+csharp_style_expression_bodied_accessors = true:suggestion
+
+# prefer inline out variables
+csharp_style_inlined_variable_declaration = true:warning
diff --git a/src/StardewModdingAPI.sln b/src/StardewModdingAPI.sln
index 441b51a9..57f94648 100644
--- a/src/StardewModdingAPI.sln
+++ b/src/StardewModdingAPI.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26228.4
+VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrainerMod", "TrainerMod\TrainerMod.csproj", "{28480467-1A48-46A7-99F8-236D95225359}"
EndProject
@@ -9,6 +9,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StardewModdingAPI", "Starde
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "metadata", "metadata", "{86C452BE-D2D8-45B4-B63F-E329EB06CEDA}"
ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
..\.gitattributes = ..\.gitattributes
..\.gitignore = ..\.gitignore
crossplatform.targets = crossplatform.targets
diff --git a/src/StardewModdingAPI.sln.DotSettings b/src/StardewModdingAPI.sln.DotSettings
index 81b52fd4..9620737a 100644
--- a/src/StardewModdingAPI.sln.DotSettings
+++ b/src/StardewModdingAPI.sln.DotSettings
@@ -1,5 +1,6 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNameQualifier/@EntryIndexedValue">HINT</s:String>
+ <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeArgumentsOfMethod/@EntryIndexedValue">HINT</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/StaticQualifier/STATIC_MEMBERS_QUALIFY_MEMBERS/@EntryValue">Field, Property, Event, Method</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/ThisQualifier/INSTANCE_MEMBERS_QUALIFY_MEMBERS/@EntryValue">Field, Property, Event, Method</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/LINE_FEED_AT_FILE_END/@EntryValue">True</s:Boolean>
diff --git a/src/StardewModdingAPI/Framework/DeprecationManager.cs b/src/StardewModdingAPI/Framework/DeprecationManager.cs
index e44cd369..6b95960b 100644
--- a/src/StardewModdingAPI/Framework/DeprecationManager.cs
+++ b/src/StardewModdingAPI/Framework/DeprecationManager.cs
@@ -78,7 +78,7 @@ namespace StardewModdingAPI.Framework
break;
default:
- throw new NotImplementedException($"Unknown deprecation level '{severity}'");
+ throw new NotSupportedException($"Unknown deprecation level '{severity}'");
}
}
diff --git a/src/StardewModdingAPI/Framework/Monitor.cs b/src/StardewModdingAPI/Framework/Monitor.cs
index 51feff78..dac81f14 100644
--- a/src/StardewModdingAPI/Framework/Monitor.cs
+++ b/src/StardewModdingAPI/Framework/Monitor.cs
@@ -64,12 +64,10 @@ namespace StardewModdingAPI.Framework
// validate
if (string.IsNullOrWhiteSpace(source))
throw new ArgumentException("The log source cannot be empty.");
- if (logFile == null)
- throw new ArgumentNullException(nameof(logFile), "The log file manager cannot be null.");
// initialise
this.Source = source;
- this.LogFile = logFile;
+ this.LogFile = logFile ?? throw new ArgumentNullException(nameof(logFile), "The log file manager cannot be null.");
this.ConsoleManager = consoleManager;
this.RequestExit = requestExitDelegate;
}