New Features

  • Join lines deals with trailing commas smartly .GIF.

  • Semantic Highlighting is implemented for Rust (by @farodin91). Semantic highlighting, originally introduce in KDevelop, colors each local variable and parameter in a different color. Example.

  • Quick documentation for type parameters (by @Undin).

  • Create New Project dialog allows to create a library (by @Undin).

  • Type inference improvements:
    • derived traits know about Self type (by @Undin).
    • use type arguments when inferring function type (by @vlad20012).
    • don’t special case tuple struct constructor functions (by @vlad20012).
  • Code formatter automatically inserts ; after return statements (by @anton-okolelov).

Fixes

  • Parser correctly handles parenthesis in casts.

  • Indexing operation returns a value instead of a reference (by @Undin).

  • Fix invalid offset crash in Cargo check annotator.

  • Better filter compiler messages in Cargo check annotator.

  • Format logging and asserting macros (by @matklad and @farodin91).

  • Don’t warn about non-conventional names if #[allow(bad_style)] is present.

Internal Improvements

  • Expression type inference code cleaned up (by @Undin).

  • More uniform handling of generics in type inference (by @vlad20012).

  • Refactor grammar, PSI and stub structure for types.