Releases: prodot/ReCommended-Extension
Releases · prodot/ReCommended-Extension
Compatibility Release
Ensures compatibility with ReSharper 2024.1.6
Compatibility Release
Ensures compatibility with ReSharper 2024.1.5
Compatibility Release
Ensures compatibility with ReSharper 2024.1.4
Compatibility Release
Ensures compatibility with ReSharper 2024.1.3
Compatibility Release
Ensures compatibility with ReSharper 2024.1.2
Compatibility Release
Ensures compatibility with ReSharper 2024.1.1
Feature Release
New Features
- Advanced disposable object analysis built around the
[MustDisposeResource]
and[HandlesResourceDisposal]
annotations.- Disposable type should now be annotated with the
[MustDisposeResource]
, which is inherited by derived types. Disposable ref structs cannot implement interfaces, their constructors (as well as primary constructors) should now be annotated with the[MustDisposeResource]
. - In rare cases, some disposable objects should not be disposed, such types should be annotated with the
[MustDisposeResource(false)]
, which is not inherited by derived types. - Methods returning disposable objects should also be annotated with the
[MustDisposeResource]
, which is inherited by derived types. - As with types, methods returning disposable objects that aren't intended to be disposed, should be annotated with the
[MustDisposeResource(false)]
, which is not inherited by derived types. - The same also applies to "out" parameters.
- The
[Pure]
,[MustUseReturnValue]
, and[MustDisposeResource]
annotations cannot be applied at the same time. - New warning when an overridden method changes its return type, which becomes disposable.
- New context action to apply the
[HandlesResourceDisposal]
annotation.
- Disposable type should now be annotated with the
- Collection expressions (require C# 12)
- Suggests replacing target-typed empty arrays (incl.
Array.Empty<T>()
expressions) with the empty collection expression[]
. - Suggests more cases to use collection expression, e.g. when the target type is
IEnumerable<T>
, but an array orList<T>
is constructed. - Suggests using empty collection expression
[]
when new empty collection objects are created and the target type is the collection type.
- Suggests replacing target-typed empty arrays (incl.
- New warning that an
[AttributeUsage]
annotations are missing on attribute classes (with a quick fix to apply the annotation). - New context action to apply the
[IgnoreSpellingAndGrammarErrors]
annotation - Equality analyzers
- New warning when a struct overrides the
Equals
without implementing theIEquatable<T>
interface. - New warning when a type implements the
IEquatable<T>
interface without overriding theEquals
method. - New suggestion to implement the
IEqualityOperators<T, T, bool>
interface when theIEquatable<T>
interface is implemented (with a quick fix). Records automatically implement theIEquatable<T>
interface and provide the equality operators. The analyzer requires .NET 7 or higher. - New suggestion to implement the
IComparisonOperators<T, T, bool>
interface when theIComparable<T>
interface is implemented (with a quick fix). The analyzer requires .NET 7 or higher.
- New warning when a struct overrides the
- New context actions for XML doc comments:
- advanced formatter for XML doc comments that knows doc comment tags and performs re-wrapping, reordering of top-level tags, and lots more. Just put the caret into a doc comment and select the Reflow context action.
- embeds the selection or the current word into the
<see cref="..."/>
,<paramref name="..."/>
, and<typeparamref name="..."/>
tags - embraces the selection or the current word with
<c>...</c>
Improved
- Analyzer that suggests replacing array made out of default values (
new T[] { default, default }
) with thenew T[n]
expression now supports collection expressions. - Analyzer that detects redundant captured context now supports the overloaded
ConfigureAwait
method introduced in .NET 8.0. - Context actions to apply
[LinqTunnel]
,[NonNegativeValue]
, and[ValueRange(...)]
now support local functions
Known Issues
- Currently, only
///
-style doc comments are supported for the Reflow context action. - The Reflow context action might remove empty lines in the
<code>...</code>
sections - Surrounding the selection doesn't check if the result becomes a valid XML.
Compatibility Release
Ensures compatibility with ReSharper 2024.1
Feature Release (RC5)
Improved
- Ensures compatibility with ReSharper 2023.3.4
Compatibility Release
Ensures compatibility with ReSharper 2023.3.4