bors[bot] [Thu, 28 May 2020 13:37:37 +0000 (13:37 +0000)]
Merge #4640
4640: Add `inRustProject` when-clause for commands in vscode r=vsrs a=vsrs
At the moment all rust-analyzer commands always visible in the command palette, even if there is no rust project opened.
This PR adds special [when-clause](https://code.visualstudio.com/docs/getstarted/keybindings#_when-clause-contexts) context. This context also might be used in key bindings.
bors[bot] [Wed, 27 May 2020 12:41:38 +0000 (12:41 +0000)]
Merge #4596
4596: Strip leading underscores of argument names in function/method r=matklad a=kuy
Closes #4510
### Goal
When I select a function/method from completions, I get a snippet that doesn't contain leading underscores of argument names.
### Solution
- Option 1: All signatures don't contain underscores
- Option 2: Keep same signature, but inserted snippet doesn't contain underscores
I choose Option 2 because I think that leading underscores is a part of "signature". Users should get correct signatures. On the other hand, trimming underscores is an assist by IDE.
### Other impls.
rls: Complete argument names with underscores (same as actual ra)
IntelliJ Rust: Doesn't complete argument names
VSCode (TypeScript): Doesn't complete argument names
### Working example
![Screen Shot 2020-05-25 at 0 03 21](https://user-images.githubusercontent.com/151614/82757771-a05e5b80-9e1d-11ea-9dbc-1263c960e2ae.png)
See the comment in https://github.com/rust-analyzer/rust-analyzer/issues/4608#issuecomment-63424257
It partially fixes the left side of diff view (the one where old code is displayed), but the diff editor with new code changes still has `file` scheme and will proceed displaying inlay hints...
4629: Fix the `should_panic` snippet r=matklad a=eminence
Closes #4628
Co-authored-by: veetaha <veetaha2@gmail.com> Co-authored-by: Andrew Chin <achin@eminence32.net>
To make it easier to wrap an expression with Ok/Some/Rc::new etc.
Note I agree with conclusion of the discussion in #1431 that adding many completions is not the way to go. However, this PR still could be justified due to versatility of use.
bors[bot] [Tue, 26 May 2020 07:20:56 +0000 (07:20 +0000)]
Merge #4617
4617: Hover tooltip module name is monospace once again r=matklad a=aloucks
The line separator is also moved below the function signature to split regions between the docs. This is very similar to how IntelliJ displays tooltips. Adding an additional separator between the module name and function signature currently has rendering issues.
Fixes #4594
Alternative to #4615
@kjeremy @Veetaha
Note that I have semantic coloring disabled so ignore any differences due to that.
Aaron Loucks [Tue, 26 May 2020 03:18:45 +0000 (23:18 -0400)]
Hover tooltip module name is monospace once again
The line separator is moved below the function signature to split
regions between the docs. This is very similar to how IntelliJ
displays tooltips. Adding an additional separator between the module
name and function signature currently has rendering issues.
Some FIXMEs were outdated:
* Done at line 243: "Add validation of `crate` keyword not appearing in the middle of the symbol path"
* Already happened: "Remove validation of unterminated literals (it is already implemented in `tokenize()`)"
* Happens in `unescape()`: "Add validation of character literal containing only a single char"
* Missing: "raw string literals and raw byte string literals"
bors[bot] [Sat, 23 May 2020 11:32:26 +0000 (11:32 +0000)]
Merge #4555 #4575
4555: VSCode: added patchelf after download for NixOS support r=matklad a=cab404
This adds Nix support, and fixes #4542
4575: Use Chalk's built-in representations for fn items and pointers r=matklad a=flodiebold
The `TypeName::FnDef` was just added; the function pointer variant has existed for a while, I just forgot about it because it's special (because fn pointers can be higher-ranked over lifetimes).
We *could* also make `FnPtr` a separate `Ty` variant instead of a `TypeCtor` variant, which would make the conversion code a bit less special-casey, but it doesn't seem worth doing right now.
bors[bot] [Sat, 23 May 2020 11:09:24 +0000 (11:09 +0000)]
Merge #4559
4559: Module name on hover shows another newline after it r=matklad a=Arthamys
This changes the display of hover information to add a newline between the module path of the item and the signature of the item, as suggested in #3813
Florian Diebold [Fri, 22 May 2020 17:13:17 +0000 (19:13 +0200)]
Use Chalk's Ty::Function for function pointer types
Function pointers can be 'higher-ranked' over lifetimes, which is why they're
not an application type in Chalk, but since we don't model lifetimes it doesn't
matter for us yet.
bors[bot] [Fri, 22 May 2020 18:16:28 +0000 (18:16 +0000)]
Merge #4573
4573: Chalk cleanups r=matklad a=flodiebold
- split off the `Interner` impl and the conversion code into their own modules
- use `TypeCtorId` as `AdtId` directly (instead of raw `InternId`s), and rename the type alias `StructId` -> `AdtId`
- provide missing Chalk debug impls