Skip to content

Releases: prodot/ReCommended-Extension

Compatibility Release

14 Aug 20:44
3e89785
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.6

Compatibility Release

12 Aug 16:24
41c56db
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.5

Compatibility Release

25 Jun 18:54
b2e6fb5
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.4

Compatibility Release

11 Jun 18:17
35edfd6
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.3

Compatibility Release

07 May 21:01
423331b
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.2

Compatibility Release

18 Apr 18:59
eda55ef
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1.1

Feature Release

15 Apr 19:50
240638b
Compare
Choose a tag to compare

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.
  • 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 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

  • 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

10 Apr 20:59
f453a05
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2024.1

Feature Release (RC5)

12 Mar 22:54
a703d9f
Compare
Choose a tag to compare
Feature Release (RC5) Pre-release
Pre-release

Improved

  • Ensures compatibility with ReSharper 2023.3.4

Compatibility Release

12 Mar 22:32
f60f4de
Compare
Choose a tag to compare

Ensures compatibility with ReSharper 2023.3.4