Commit Graph

6560 Commits

Author SHA1 Message Date
Aleksey Kladov
ce7144a93d
Merge pull request #4474 from georgewfraser/color_attrs
Color attribute functions
2020-05-24 15:32:31 +02:00
Julian Wollersberger
ff9d553fe3 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"
2020-05-24 13:17:16 +02:00
Julian Wollersberger
cd4ffc1945 Update to rustc_lexer version 660.
Change `unescape_*()` to `unescape_literal()`.
2020-05-24 13:12:16 +02:00
bors[bot]
4cc2ff6e39
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.

Co-authored-by: Vladimir Serov <me@cab404.ru>
Co-authored-by: Cabia Rangris <me@cab404.ru>
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
2020-05-23 11:32:26 +00:00
bors[bot]
ca5e4596a0
Merge #4578
4578: Remove unnecessary clone that prevented clippy from moving on r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-05-23 11:24:28 +00:00
bors[bot]
88c292b1c2
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 

**Before**

![before_3813](https://user-images.githubusercontent.com/11710698/82609224-5d517d80-9bbc-11ea-9a08-0a1558409c6b.png)

**After**

![after_3813](https://user-images.githubusercontent.com/11710698/82609208-562a6f80-9bbc-11ea-8cb6-4430269c5800.png)

Co-authored-by: Galilée 'Bill' Enguehard <galilee.enguehard@gmail.com>
2020-05-23 11:09:24 +00:00
Galilée 'Bill' Enguehard
6197a960df Fix resolve_proc_macro heavy test 2020-05-23 08:59:51 +02:00
kjeremy
7a46a99490 And a few drive-bys 2020-05-22 17:26:31 -04:00
kjeremy
d8af45472e Remove unnecessary clone that prevented clippy from moving on 2020-05-22 17:13:14 -04:00
Florian Diebold
194dd9eb0d 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.
2020-05-22 21:05:28 +02:00
Florian Diebold
bfbc210bc1 Use Chalk's built-in representation of function item types 2020-05-22 21:05:13 +02:00
Galilée 'Bill' Enguehard
d688215f25 Update tests to accept new hover formatting 2020-05-22 20:11:24 +02:00
Galilée 'Bill' Enguehard
910ac5a213 Fix formatting error when no modpath is present 2020-05-22 20:10:37 +02:00
Florian Diebold
ea265aad64 Provide missing Chalk debug methods 2020-05-22 19:52:06 +02:00
Florian Diebold
27fe68ad5c Use TypeCtorId as AdtId directly, and rename the type alias StructId -> AdtId 2020-05-22 19:52:06 +02:00
Florian Diebold
1d0e27254d Split up chalk module a bit 2020-05-22 19:52:06 +02:00
bors[bot]
b38f9a5810
Merge #4570
4570: Use Chalk's built-in impls r=matklad a=flodiebold

This contains two changes:
 - Chalk has begun adding built-in representations of primitive types; use these in our type conversion logic. There's one somewhat 'iffy' part here, namely references; we don't keep track of lifetimes, but Chalk does, so it will expect a lifetime parameter on references. If we didn't provide that, it could cause crashes in Chalk code that expects the lifetime, so I rather hackily add an (always the same) lifetime placeholder during conversion. I expect that we'll fully switch to using Chalk's types everywhere before we add lifetime support, so I think this is the best solution for now.
 - let Chalk know about well-known traits (from lang items), so it can apply its built-in impls.

Before:
```
Total expressions: 181485
Expressions of unknown type: 2940 (1%)
Expressions of partially unknown type: 2884 (1%)
Type mismatches: 901
Inference: 37.821210245s, 0b allocated 0b resident
Total: 53.399467609s, 0b allocated 0b resident
```

After:
```
Total expressions: 181485
Expressions of unknown type: 2923 (1%)
Expressions of partially unknown type: 2879 (1%)
Type mismatches: 734
Inference: 39.157752509s, 0b allocated 0b resident
Total: 54.110767621s, 0b allocated 0b resident
```

(I will start splitting up `chalk.rs` in a separate PR, since it's getting pretty big...)

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
2020-05-22 17:31:39 +00:00
Galilée 'Bill' Enguehard
5043c9ce9c Modify hover info to show module path separated by a line 2020-05-22 19:04:39 +02:00
Florian Diebold
e0f978018a Add some tests for Chalk built-in trait impls 2020-05-22 18:52:07 +02:00
bors[bot]
a95bb1355d
Merge #4571
4571: KISS SourceChange r=matklad a=matklad

The idea behind requiring the label is a noble one, but we are not
really using it consistently anyway, and it should be easy to retrofit
later, should we need it.

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-22 16:09:37 +00:00
Aleksey Kladov
2c04aad2d2 KISS SourceChange
The idea behind requiring the label is a noble one, but we are not
really using it consistently anyway, and it should be easy to retrofit
later, should we need it.
2020-05-22 18:04:26 +02:00
bors[bot]
2a36a2a3cc
Merge #4569
4569: CodeAction groups r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-22 15:33:12 +00:00
Florian Diebold
02c2beaa8c Provide Chalk well-known traits 2020-05-22 17:32:49 +02:00
Florian Diebold
e81c76a95a Use Chalk's built-in representations of primitive types
For references, we make sure Chalk actually gets a lifetime here.
2020-05-22 17:32:49 +02:00
Aleksey Kladov
2075e77ee5 CodeAction groups 2020-05-22 17:32:46 +02:00
Florian Diebold
06ed140fc7 Update Chalk
As always, this just makes compilation work, we don't use the newly available
functionality yet.
2020-05-22 16:40:42 +02:00
bors[bot]
5aa3a4c04f
Merge #4516
4516: LSP: Two stage initialization r=kjeremy a=kjeremy

Fills in server information.

Derives CodeAction capabilities from the client. If code action literals
are unsupported we fall back to the "simple support" which just sends back
commands (this is already supported in our config). The difference being
that we did not adjust our server capabilities so that if the client was
checking for `CodeActionProvider: "true"` in the response that would have failed.

Part of #144
Fixes #4130 (the specific case called out in that issue)

Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-05-22 13:12:57 +00:00
Aleksey Kladov
5ef4ebff20 Use WorkspaceEdit for ssr 2020-05-22 00:28:49 +02:00
Galilée 'Bill' Enguehard
7fece3bdd2 Merge branch 'master' of github.com:rust-analyzer/rust-analyzer into modname_spacing 2020-05-21 23:27:38 +02:00
Galilée 'Bill' Enguehard
db926218b2 Add extra newline after module path in hover info
Closes issue #3813
2020-05-21 23:26:09 +02:00
Aleksey Kladov
5b5ebec440 Formalize JoinLines protocol extension 2020-05-21 20:05:33 +02:00
Aleksey Kladov
ef0da3bbec Cleanup 2020-05-21 16:11:37 +02:00
Aleksey Kladov
5f57491c98 Cleanup TextEdit 2020-05-21 15:56:18 +02:00
Aleksey Kladov
ff28c79ebd Remove dead code for handling cursor positions 2020-05-21 15:08:03 +02:00
Aleksey Kladov
4b495da368 Transition OnEnter to WorkspaceSnippetEdit
This also changes our handiling of snippet edits on the client side.
`editor.insertSnippet` unfortunately forces indentation, which we
really don't want to have to deal with. So, let's just implement our
manual hacky way of dealing with a simple subset of snippets we
actually use in rust-analyzer
2020-05-21 15:08:03 +02:00
Aleksey Kladov
4fdb1eac08 Remove unused cursor positions 2020-05-21 10:37:11 +02:00
bors[bot]
42dd0ce51f
Merge #4506
4506: Make `find_path_inner` a query r=matklad a=jonas-schievink

This eliminates the remaining performance problems in the "Implement default members" assist (at least those that I've found).

Closes https://github.com/rust-analyzer/rust-analyzer/issues/4498

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-05-20 23:48:02 +00:00
Aleksey Kladov
04a8daaa33 Remove unused cursor positions 2020-05-21 00:46:08 +02:00
Aleksey Kladov
70930d3bb2 Remove set_cursor 2020-05-21 00:03:42 +02:00
Aleksey Kladov
4ac0abd296 Snippetify unwrap -> match 2020-05-21 00:01:08 +02:00
Jonas Schievink
6cdfd1c3cf Make find_path_inner a query
This eliminates any remaining performance problems in the
"Implement default members" assist (at least that I've found).
2020-05-20 23:54:50 +02:00
Aleksey Kladov
8300132ed0 More snippets 2020-05-20 23:50:42 +02:00
bors[bot]
4677cea719
Merge #4540
4540: More snippets r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-05-20 21:33:36 +00:00
Aleksey Kladov
5e13e4eba1 More snippets 2020-05-20 23:33:03 +02:00
bors[bot]
64afbf8d95
Merge #4526
4526: Use a flat play icon instead of the blue emoji with test code lens r=kjeremy a=aloucks

@lnicola 

Restores this commit:
55e914a2a1

That was effectively wiped out by this code formatting commit:
dc217bdf90
3d445256fe

Co-authored-by: Aaron Loucks <aloucks@cofront.net>
2020-05-20 21:23:13 +00:00
Aleksey Kladov
fd77170718 Snippetify introduce/inline var 2020-05-20 23:07:17 +02:00
Aleksey Kladov
65fa586410 Relax cursor position tests in assists
Those will be replaced with snippets anyway
2020-05-20 22:55:37 +02:00
Aleksey Kladov
ba3a58d1b2 Snippetify fix_visibility 2020-05-20 14:13:17 +02:00
Aleksey Kladov
c446fd76a2 Snippetify fill_match_arms 2020-05-20 14:01:10 +02:00
Aleksey Kladov
a622b54ac0 Don't set cursor in change_visibility 2020-05-20 13:48:31 +02:00