Skip to content

Releases: prodot/ReCommended-Extension

Feature Release (RC4)

29 Feb 21:23
aea2058
Compare
Choose a tag to compare
Feature Release (RC4) Pre-release
Pre-release

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)

29 Jan 21:48
1fe5cf1
Compare
Choose a tag to compare
Feature Release (RC3) Pre-release
Pre-release

Improved

  • Does not suggest to use collection expressions in LINQ from clauses

Feature Release (RC2)

23 Jan 21:23
1e19933
Compare
Choose a tag to compare
Feature Release (RC2) Pre-release
Pre-release

Improved

  • Adds a hint regarding changing collection expression type to the quick fix
  • Ensures compatibility with ReSharper 2023.3.3

Compatibility Release

23 Jan 19:54
7c4c99c
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.3.3

Feature Release (RC1)

17 Jan 22:35
835ce82
Compare
Choose a tag to compare
Feature Release (RC1) Pre-release
Pre-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.
  • 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 or List<T> is constructed.
    • Suggests using empty collection expression [] when new empty collection objects are created and the target type is the collection type.
  • 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 the IEquatable<T> interface.
    • New warning when a type implements the IEquatable<T> interface without overriding the Equals method.
    • New suggestion to implement the IEqualityOperators<T, T, bool> interface when the IEquatable<T> interface is implemented (with a quick fix). Records automatically implement the IEquatable<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 the IComparable<T> interface is implemented (with a quick fix). The analyzer requires .NET 7 or higher.

Improved

  • Analyzer that suggests replacing array made out of default values (new T[] { default, default }) with the new 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

21 Dec 17:41
68dbc2d
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.3.2

Compatibility Release

13 Dec 21:31
95021c3
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.3.1

Compatibility Release

09 Dec 23:12
b081ab1
Compare
Choose a tag to compare
  • Ensures compatibility with ReSharper 2023.3
  • Removes analyzer for redundant await suggestions

Compatibility Release

03 Nov 19:09
369a3dd
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.2.3

Compatibility Release

26 Sep 23:19
f484343
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.2.2