Roslynator Versions Save

Roslynator is a set of code analysis tools for C#, powered by Roslyn.

v4.0.2

2 years ago

4.0.2 (2022-01-29)

  • Disable analyzer ROS003 by default (commit)
  • Analyzers that require option to be set should disabled by default (RCS1018, RCS1096, RCS1250) (commit)

Bug fixes

  • Fix analyzer RCS1014 (Use explicitly/implicitly typed array) (commit)
  • Fix analyzer RCS1016 (Use block body or expression body) (commit)
  • Fix refactoring AddUsingDirective (RR0013) (commit)
  • Propagate some options from .roslynatorconfig (commit)
  • Enable ROS analyzers to be set from .roslynatorconfig (commit)
  • Files generated with source generators have relative paths (commit)

v4.0.0

2 years ago
  • Bump Roslyn version to 4.0.1

  • Change category of all analyzers to 'Roslynator'

  • Migrate all options to EditorConfig

    • Enable/disable all analyzers
    • Enable/disable all refactorings
    • Enable/disable specific refactoring
    • Enable/disable all compiler diagnostics fixes
    • Enable/disable specific compiler diagnostic fix
  • Add analyzer RCS0057 (Normalize whitespace at the beginning of a file)

  • Add analyzer RCS0058 (Normalize whitespace at the end of a file)

  • Add analyzer RCS0059 (Place new line after/before null-conditional operator)

  • Add analyzer RCS1249 (Unnecessary null-forgiving operator)

  • Add analyzer RCS1250 (Use implicit/explicit object creation)

  • Add refactoring ExpandPositionalRecord (RR0215)

  • Add refactoring AddAllPropertiesToInitializer (RR0216)

  • Add code fix for CS8403, CS8618 and CS8625

v3.3.0

2 years ago
  • Bunch of bug fixes and small improvements
  • Disable analyzers RCS1079 and RCS1090 by default

v3.2.2

2 years ago
  • Ensure that shared assemblies with be loaded properly on .NET Core (issue)

v3.2.1

2 years ago
  • Publish Roslynator for Visual Studio 2022 Preview
  • Bug fixes and various improvements

v3.2.0

3 years ago

Analyzers

Code Fixes

  • Add code fix for CS7036 (commit)
  • Add code fix for CS8632 (commit)
  • Improve code fix for CS0029, CS0246 (commit)
  • Add option for code fix for CS1591 (commit)

v3.1.0

3 years ago
  • Add analyzer RCS0056 (Line is too long)
  • Add option to suppress diagnostic from Unity script methods (RCS1213)
  • Consider syntax var foo = Foo.Parse(value) as having obvious type Foo
  • Update references to Roslyn API to 3.7.0

v3.0.1

3 years ago
  • Add analyzer RCS0055 (Fix formatting of a binary expression chain)

  • Add analyzer RCS0054 (Fix formatting of a call chain)

  • Add analyzer RCS0053 (Fix formatting of a list)

  • Add analyzer RCS0052 (Add newline before equals sign instead of after it (or vice versa))

  • Add analyzer RCS1248 (Use 'is null' pattern instead of comparison (or vice versa)) (issue)

  • Add analyzer RCS1247 (Fix documentation comment tag)

  • Add analyzer option RCS1207i (Convert method group to anonymous function)

  • Add analyzer option RCS1090i (Remove call to 'ConfigureAwait')

  • Add analyzer option RCS1018i (Remove accessibility modifiers) (issue)

  • Add analyzer option RCS1014i (Use implicitly typed array)

  • Add analyzer option RCS1014a (Use implicitly typed array (when type is obvious))

  • Add analyzer option RCS1078i (Use string.Empty instead of "")

  • Add analyzer option RCS1016a (Convert expression-body to block body when expression is multi-line)

  • Add analyzer option RCS1016b (Convert expression-body to block body when declaration is multi-line)

  • Disable by default analyzer RCS1207i (Convert method group to anonymous function)

  • Remove analyzer RCS1219 (Call 'Enumerable.Skip' and 'Enumerable.Any' instead of 'Enumerable.Count')

  • Rename analyzer "Avoid 'null' on left side of binary expression" to "Constant values should be placed on right side of comparisons" RCS1098

  • Rename analyzer "Simplify boolean expression" to "Unncessary null check" RCS1199 (issue)

  • More syntax is considered as having obvious type:

    • string literal
    • character literal
    • boolean literal
    • implicit array creation that contains only expressions whose type is obvious

v3.0.0

3 years ago

v2.9.0

4 years ago
  • Switch to Roslyn 3.x libraries
  • Add Directory.Build.props file
  • Add open configuration commands to Command Palette (VS Code) (PR)

Bug Fixes

  • Fix key duplication/handle camel case names in omnisharp.json (PR)
  • Use prefix unary operator instead of postfix unary operator (RCS1089) (issue)
  • Cast of this to its interface cannot be null (RCS1202) (issue)
  • Do not remove braces in switch section if it contains 'using variable' (RCS1031) (issue)

New Analyzers

  • RCS1242 (DoNotPassNonReadOnlyStructByReadOnlyReference).
  • RCS1243 (DuplicateWordInComment).
  • RCS1244 (SimplifyDefaultExpression).
  • RCS1245 (SimplifyConditionalExpression2) (issue).

Analyzers

  • Disable analyzer RCS1057 by default (issue).
  • Merge analyzer RCS1156 with RCS1113 (issue).
    • x == "" should be replaced with string.IsNullOrEmpty(x)
  • Improve analyzer RCS1215 (commit).
    • x == double.NaN should be replaced with double.IsNaN(x)
  • Enable RCS1169 and RCS1170 if the type is read-only struct (commit).
  • Improve analyzer RCS1077 (commit).
    • x.OrderBy(y => y).Reverse() can be simplified to x.OrderByDescending(y => y)
    • x.SelectMany(y => y).Count() can be simplified to x.Sum(y => y.Count) if x has Count or Length property
  • Improve analyzer RCS1161 - Declare explicit enum value using << operator (commit).
  • Improve analyzer RCS1036 - remove empty line between documentation comment and declaration (commit).
  • Improve analyzer RCS1037 - remove trailing white-space from documentation comment (commit).
  • Improve analyzer RCS1143 (commit)
    • x?.M() ?? default(int?) can be simplified to x?.M() if x is a nullable struct.
  • Improve analyzer RCS1206 (commit)
    • (x != null) ? x.M() : default(int?) can be simplified to x?.M() if x is a nullable struct.