Releases: prodot/ReCommended-Extension
Releases · prodot/ReCommended-Extension
Feature Release (RC4)
New Features
- 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>
Known Limitations
- 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 - The Reflow context action might be unavailable for types with a primary constructor with at least one parameter. This is an known issue of the ReSharper SDK.
- Surrounding the selection doesn't check if the result becomes a valid XML.
Feature Release (RC3)
Improved
- Does not suggest to use collection expressions in LINQ
from
clauses
Feature Release (RC2)
Improved
- Adds a hint regarding changing collection expression type to the quick fix
- Ensures compatibility with ReSharper 2023.3.3
Compatibility Release
Ensures compatibility with ReSharper 2023.3.3
Feature Release (RC1)
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
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
- Async methods that return disposable objects should be annotated with the
[MustUseReturnValue]
. Annotating them with[MustDisposeResource]
is not supported by ReSharper yet. The issue is reported to the ReSharper team.
Compatibility Release
Ensures compatibility with ReSharper 2023.3.2
Compatibility Release
Ensures compatibility with ReSharper 2023.3.1
Compatibility Release
- Ensures compatibility with ReSharper 2023.3
- Removes analyzer for redundant await suggestions
Compatibility Release
Ensures compatibility with ReSharper 2023.2.3
Compatibility Release
Ensures compatibility with ReSharper 2023.2.2