rust-analyzer/editors/code
bors 8011029d3a Auto merge of #13975 - DropDemBits:on-enter-after-dot-chains, r=DropDemBits
fix: Suppress extra indent after the end of field and function chains

(spurred on by <https://github.com/rust-lang/rust-analyzer/issues/4182#issuecomment-671275652>)

Caveat that this doesn't work for after tail expressions, although there shouldn't be anything after those anyways.

This also complicates when to reload the language configuration by nature of now always having a language configuration applicable.

Examples of indentation fixes:

```rs
fn main() {
    println!("Hello!"); // < enter here!
    // ... indents down here

    fs::read_to_string("soup") // < enter here!
    // ... still indents down here :(
        .map(|_| ())
        .map(|_| ()) // < enter here!
        // ... still indents down here :D
        .map_err(|_| ())
        .unwrap(); // < enter here!
    // ... indents down here :D

    // ... and subsequent enters stay at the same indent

    0.0f64
        .to_radians()
        .to_radians()
        .to_radians() // force semi on a new line
        ; // < enter here!
    // ... indents down here :D
}

fn tail_end() -> i32 {
    0i32.wrapping_abs()
        .wrapping_abs()
        .wrapping_abs()
        .wrapping_abs() // < enter here!
        // ... still indents here 🤷
}
```
2023-02-10 20:10:54 +00:00
..
src Auto merge of #13975 - DropDemBits:on-enter-after-dot-chains, r=DropDemBits 2023-02-10 20:10:54 +00:00
tests prettier run 2022-05-17 18:15:06 +01:00
.eslintignore vscode extension: use esbuild instead of rollup. 2021-08-10 10:18:08 +01:00
.eslintrc.js automate braceless return substitution for long lines 2022-05-17 18:31:51 +01:00
.gitignore Add experimental VSCode api 2022-03-04 07:45:51 +02:00
.prettierignore prettier config 2022-05-17 18:12:49 +01:00
.prettierrc.js prettier config 2022-05-17 18:12:49 +01:00
.vscodeignore Prepare Code extension for bundling 2021-12-18 17:44:16 +02:00
icon.png Extension icon 2020-01-15 16:07:39 +01:00
language-configuration.json Unify language config markers with server 2023-02-04 17:46:11 -08:00
LICENSE Add LICENSE file to make vsce happy 2021-12-04 12:29:27 +02:00
package-lock.json Bump package-lock.json 2023-01-23 13:52:13 +01:00
package.json Auto merge of #14112 - Veykril:vscode-untrusted, r=lnicola 2023-02-09 18:46:11 +00:00
ra_syntax_tree.tmGrammar.json prettier run 2022-05-17 18:15:06 +01:00
README.md Improve extension description and README 2022-05-13 18:15:33 +02:00
tsconfig.eslint.json prettier run 2022-05-17 18:15:06 +01:00
tsconfig.json prettier run 2022-05-17 18:15:06 +01:00

rust-analyzer

This extension provides support for the Rust programming language. It is recommended over and replaces rust-lang.rust.

Features

Quick start

  1. Install rustup.
  2. Install the rust-analyzer extension.

Configuration

This extension provides configurations through VSCode's configuration settings. All configurations are under rust-analyzer.*.

See the manual for more information on VSCode specific configurations.

Communication

For usage and troubleshooting requests, please use the "IDEs and Editors" category of the Rust forum.

Documentation

See rust-analyzer.github.io for more information.