-
Notifications
You must be signed in to change notification settings - Fork 640
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes several code quality issues (Code Analysis) (#387)
* BUG: Lucene.Net.Document.CompressionTools: Pass the offset and length to the underlying MemoryStream * BUG: Lucene.Net.Analysis.Common.Tartarus.Snowball.Among: Fixed MethodObject property to reference private field instead of itself * BUG: Lucene.Net.TestFramework.Analysis.MockTokenizer: Pass the AttributeFactory argument that is provided as per the documentation comment. Note this bug exists in Lucene 4.8.0, also. * TestTargetFramework.props: Disable IDE0052 and IDE0060 in test projects * lucene-cli: Disabled IDE0060 warnings * Lucene.Net.Demo: Disabled IDE0060 warnings * PERFORMANCE: Fixes IDE0052 Remove unread private member, fixes IDE0060 Remove unused parameter * BUG: Lucene.Net.Util.ExceptionExtensions.GetSuppressedAsList(): Use J2N.Collections.Generic.List<T> so the call to ToString() will automatically list the exception messages * Lucene.Net.Tests.Support.TestApiConsistency: Added exclusion for System.Runtime.CompilerServices to skip our nullable attribute replacements for platforms that don't support them * Fixes CA2213 Disposable fields should be disposed (except for IndexWriter and subclasses which need more work) * Fixes CA1063: Implement IDisposable Properly (except for IndexWriter). Partially addresses #265. * PERFORMANCE: Lucene.Net.Index: Changed FieldInfos, FreqProxTermsWriterPerField, IndexWriter, LogMergePolicy, SegmentCoreReaders, and SegmentReader to take advantage of the fact that TryGetValue returns a boolean * PERFORMANCE: Lucene.Net.Index.DocValuesProducer: Optimized checks in AddXXXField() methods * Fixes IDE0018: Inline variable declaration * Fixes CA1507: Use nameof in place of string * BUG: Fixed formatting in ArgumentException message for all analyzer factories so it will display the dictionary contents * Removed pattern matching warning exclusions for IDE0019, IDE0020, and IDE0038 * Fixes IDE0019: Use pattern matching to avoid 'is' check followed by a cast * Simplified reuse logic of TermsEnum classes * Fixes IDE0038: Use pattern matching to avoid 'is' check followed by a cast * Fixes IDE0020: Use pattern matching to avoid 'is' check followed by a cast * Fixes CA1802: Use Literals Where Appropriate * TestTargetFramework.props: Disabled IDE0044 warnings in test projects * TestTargetFramework.props: Disabled IDE0019, IDE0020, IDE0038 from tests * TestTargetFramework.props: Added CA1822 and IDE0059 and changed list to be in lexographical order by ID * TestTargetFramework.props: Disabled IDE1006 (Naming rule violation) warnings in tests * TestTargetFraework.props: Disabled CA1034 (Nested types should not be visible) warnings in tests * TestTargetFramework.props: Disabled CA1825 (Avoid zero-length array allocations) warnings in tests * TestTargetFramework.props: Disabled IDE0017 and IDE0028 warnings in tests (object and collection initialization can be simplified) * TestTargetFramework.props: Disabled IDE0051 (Remove unused private member) warnings in tests * Fixes IDE0044: Add readonly modifier * Directory.Build.props: Disable IDE0032 warnings (use auto property) * Fixes CA1813: Avoid unsealed attributes * PERFORMANCE: Fixes CA1822: Mark members as static * Added aggressive inlining to codecs, asserts and several other areas * Removed InitializeInstanceFields() methods in all cases except in NumericTokenStream where we need to initialize from multiple constructors * Lucene.Net.Util: Added aggressive inlining on several methods * Fixes IDE0059: Remove unnecessary value assignment * Fixes IDE0034: Simplify 'default' expression * Fixes IDE0051: Remove unused private member. Also removed dead code/commented code. * Directory.Build.props: Disabled CA1031 warnings (do not catch general exception types) * lucene-cli: Disabled CA1034 (Nested types should not be visible) warnings in tests * Fixes CA1819: Properties should not return arrays * Fixes CA1012: Abstract types should not have constructors * PERFORMANCE: Fixes CA1825: Avoid zero-length array allocations * Fixes CA1052: Static holder types should be Static or NotInheritable * Fixes IDE0028: Use collection initializers * Fixes IDE1006: Naming Styles * Fixes IDE0063: Use simple 'using' statement * Fixes IDE0016: Use throw expression * TestTargetFramework.props: Disabled IDE0031 (Use null propagation) warnings in tests * Fixes IDE0031: Use null propagation * Fixes IDE0029: Use coalesce expression * Fixes IDE0030: Use coalesce expression (nullable) * Fixes CA1820: Test for empty strings using string length * Fixes CA1810: Initialize reference type static fields inline * TestTargetFramework.props: Disabled CA2219 (Do not raise exceptions in exception clauses) warnings in tests * Directory.Build.props: Disabled IDE0070 (Use 'System.HashCode.Combine') warnings because this functionality requires .NET Standard 2.1 * Fixes IDE0025: Use expression body for properties * Fixes IDE0021: Use block body for constructors * TestTargetFramework.props: Disabled IDE0040 (Add accessibility modifiers) warnings in tests * Fixes IDE0040: Add accessibility modifiers * Fixes IDE0041: Use is null check * Fixes CA1815: Override equals and operator equals on value types * TestTargetFramework.props: Disabled IDE0049 (Use language keywords instead of framework type names for type references) warnings in tests * Fixes IDE0049: Use language keywords instead of framework type names for type references * Fixes IDE0039: Use local function * Fixes IDE0071: Simplify interpolation * Fixes IDE0027: Use expression body for accessors * fixes IDE1005: Use conditional delegate call * Added .editorconfig file to control formatting and code analysis rules * Directory.Build.props: Removed all Code Analysis settings that are now controlled by .editorconfig
- Loading branch information
1 parent
6ea55d1
commit 5eb0949
Showing
1,198 changed files
with
12,134 additions
and
12,980 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
# You can modify the rules from these initially generated values to suit your own policies | ||
# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference | ||
|
||
[*] | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
|
||
[*.md] | ||
indent_style = space | ||
indent_size = 4 | ||
|
||
# C# files | ||
[*.cs] | ||
|
||
#### Core EditorConfig Options #### | ||
|
||
#Formatting - indentation | ||
|
||
#use soft tabs (spaces) for indentation | ||
indent_style = space | ||
|
||
#Formatting - indentation options | ||
|
||
#indent switch case contents. | ||
csharp_indent_case_contents = true | ||
#indent switch labels | ||
csharp_indent_switch_labels = true | ||
|
||
#Formatting - new line options | ||
|
||
#place catch statements on a new line | ||
csharp_new_line_before_catch = true | ||
#place else statements on a new line | ||
csharp_new_line_before_else = true | ||
#require finally statements to be on a new line after the closing brace | ||
csharp_new_line_before_finally = true | ||
#require members of object initializers to be on the same line | ||
csharp_new_line_before_members_in_object_initializers = false | ||
#require braces to be on a new line for control_blocks, types, properties, and methods (also known as "Allman" style) | ||
csharp_new_line_before_open_brace = control_blocks, types, properties, methods | ||
|
||
#Formatting - organize using options | ||
|
||
#do not place System.* using directives before other using directives | ||
dotnet_sort_system_directives_first = false | ||
|
||
#Formatting - spacing options | ||
|
||
#require NO space between a cast and the value | ||
csharp_space_after_cast = false | ||
#require a space before the colon for bases or interfaces in a type declaration | ||
csharp_space_after_colon_in_inheritance_clause = true | ||
#require a space after a keyword in a control flow statement such as a for loop | ||
csharp_space_after_keywords_in_control_flow_statements = true | ||
#require a space before the colon for bases or interfaces in a type declaration | ||
csharp_space_before_colon_in_inheritance_clause = true | ||
#remove space within empty argument list parentheses | ||
csharp_space_between_method_call_empty_parameter_list_parentheses = false | ||
#remove space between method call name and opening parenthesis | ||
csharp_space_between_method_call_name_and_opening_parenthesis = false | ||
#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call | ||
csharp_space_between_method_call_parameter_list_parentheses = false | ||
#remove space within empty parameter list parentheses for a method declaration | ||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | ||
#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list. | ||
csharp_space_between_method_declaration_parameter_list_parentheses = false | ||
|
||
#Formatting - wrapping options | ||
|
||
#leave code block on separate lines | ||
csharp_preserve_single_line_blocks = false | ||
#leave statements and member declarations on the same line | ||
csharp_preserve_single_line_statements = true | ||
|
||
#Style - Code block preferences | ||
|
||
#prefer curly braces even for one line of code | ||
csharp_prefer_braces = when_multiline:silent | ||
|
||
#Style - expression bodied member options | ||
|
||
#prefer expression-bodied members for accessors | ||
csharp_style_expression_bodied_accessors = when_on_single_line:suggestion | ||
#prefer block bodies for constructors | ||
csharp_style_expression_bodied_constructors = false:suggestion | ||
#prefer expression-bodied members for indexers | ||
csharp_style_expression_bodied_indexers = true:suggestion | ||
#prefer block bodies for methods | ||
csharp_style_expression_bodied_methods = when_on_single_line:silent | ||
#prefer expression-bodied members for properties | ||
csharp_style_expression_bodied_properties = when_on_single_line:suggestion | ||
|
||
#Style - expression level options | ||
|
||
#prefer out variables to be declared inline in the argument list of a method call when possible | ||
csharp_style_inlined_variable_declaration = true:suggestion | ||
#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them | ||
dotnet_style_predefined_type_for_member_access = true:suggestion | ||
|
||
#Style - Expression-level preferences | ||
|
||
#prefer objects to not be initialized using object initializers, but do not warn | ||
dotnet_style_object_initializer = true:silent | ||
#prefer objects to use auto properties, but turn off the warnings (we want to keep backing fields from Java for the most part) | ||
dotnet_style_prefer_auto_properties = true:silent | ||
|
||
#Style - implicit and explicit types | ||
|
||
#prefer explicit type over var in all cases, unless overridden by another code style rule | ||
csharp_style_var_elsewhere = false:silent | ||
#prefer explicit type over var to declare variables with built-in system types such as int | ||
csharp_style_var_for_built_in_types = false:silent | ||
#prefer explicit type over var when the type is already mentioned on the right-hand side of a declaration | ||
csharp_style_var_when_type_is_apparent = false:silent | ||
|
||
#Style - language keyword and framework type options | ||
|
||
#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them | ||
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion | ||
|
||
#Style - modifier options | ||
|
||
#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods. | ||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion | ||
|
||
#Style - Modifier preferences | ||
|
||
#when this rule is set to a list of modifiers, prefer the specified ordering. | ||
csharp_preferred_modifier_order = public,private,protected,internal,virtual,readonly,override,static,abstract,new,sealed,volatile:silent | ||
|
||
#Style - Pattern matching | ||
|
||
#prefer pattern matching instead of is expression with type casts | ||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion | ||
|
||
#Style -Pattern matcing preferences | ||
|
||
#prefer expression-style for switch case | ||
csharp_style_prefer_switch_expression = false:suggestion | ||
|
||
#Style - qualification options | ||
|
||
#prefer fields not to be prefaced with this. or Me. in Visual Basic | ||
dotnet_style_qualification_for_field = false:none | ||
#prefer methods not to be prefaced with this. or Me. in Visual Basic | ||
dotnet_style_qualification_for_method = false:none | ||
#prefer properties not to be prefaced with this. or Me. in Visual Basic | ||
dotnet_style_qualification_for_property = false:none | ||
|
||
#Style - assignment options | ||
#prefer compound asignment x += 1 rather than x = x + 1. | ||
dotnet_style_prefer_compound_assignment = true:silent | ||
|
||
#### General Code Quality Preferences #### | ||
|
||
# Warn about any performance category issues across the entire API | ||
dotnet_code_quality.Performance.api_surface = all:warning | ||
|
||
# CA1031: Do not catch general exception types | ||
dotnet_diagnostic.CA1031.severity = none | ||
|
||
# CA1034: Do not nest types | ||
dotnet_diagnostic.CA1034.severity = none | ||
|
||
|
||
# Features that require .NET Standard 2.1+ | ||
|
||
# IDE0056: Use index operator | ||
dotnet_diagnostic.IDE0056.severity = none | ||
|
||
# IDE0057: Use range operator | ||
dotnet_diagnostic.IDE0057.severity = none | ||
|
||
# IDE0070: Use 'System.HashCode.Combine' | ||
dotnet_diagnostic.IDE0070.severity = none |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.