Commit Graph

3322 Commits

Author SHA1 Message Date
Aleksey Kladov
6846ac2a16 shorten name :-) 2019-01-31 22:23:30 +02:00
Aleksey Kladov
b8f56f89c6 start token tree module 2019-01-31 22:23:30 +02:00
bors[bot]
1bf47d43db Merge #715
715: Use "▶" for test code lens r=matklad a=kjeremy

I find that this makes code lenses stand out more otherwise they can be easy to miss.

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-31 13:04:03 +00:00
Jeremy Kolb
76c0d0b94d format 2019-01-31 07:44:26 -05:00
bors[bot]
97ade89993 Merge #692
692: [WIP] Correctly parse attributes  r=matklad a=DJMcNab

Reference - https://doc.rust-lang.org/reference/attributes.html
This fixes/investigates inner attributes for:

- [x] `impl` blocks
- [x] `extern` blocks
- [x] `fn`s (fixes #689)
- [x] `mod`s (already supported)
- [x] 'block expressions' (the long text just describes all 'blocks' used as statements)

This also investigates/fixes outer attributes for:

- [ ] 'most statements' (see also: #685, https://doc.rust-lang.org/reference/expressions.html#expression-attributes)
- [x] Enum variants, Struct and Union fields (Fixed in #507)
- [ ] 'Match expression arms' (@matklad can you provide a test case which explains what this means?)
- [ ] 'Generic lifetime or type parameters'
- [ ] 'Elements of array expressions, tuple expressions, call expressions, tuple-style struct and enum variant expressions'
- [ ] 'The tail expression of block expressions'

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-31 07:06:31 +00:00
bors[bot]
777c79ce6b Merge #712
712:  Fix #667 and improvements to introduce_variable r=matklad a=eulerdisk

Fix #667 (but not re-indenting currently), plus many other improvements.
@matklad I'm not sure how to handle re-indenting here.

Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-01-31 07:00:11 +00:00
Jeremy Kolb
57899d66fa Use "▶" for test code lens
I find that this makes code lenses stand out more.
2019-01-30 22:09:27 -05:00
Andrea Pretto
a5fe4a08fb Some improvements to introduce_variable. 2019-01-30 23:01:01 +01:00
bors[bot]
28fdb8d03c Merge #701
701: Minor type inference tweaks r=flodiebold a=marcusklaas

Pass down expectation for reference expressions and type the guard in match expressions.

I wasn't able to add a test for the former addition because the type variable previously introduced would always resolve to the right type in the things I tried!

Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-30 20:51:47 +00:00
bors[bot]
db17e06c2e Merge #711
711: Rename FnScopes and move them below the expr module r=matklad a=flodiebold

Extracted from #693 to reduce the diff and make rebasing easier for me 😉 

The scopes belong to a body, which could be that of a function, but also a constant, static or array size. So this moves them to a submodule of `expr`.

Also move the `expr_scopes` query from `query_definitions` to that module.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-30 20:45:35 +00:00
Florian Diebold
1acff307fe Move expr_scopes query to its module 2019-01-30 21:39:34 +01:00
Andrea Pretto
7a1494ced5 Fix #667 2019-01-30 21:31:29 +01:00
Florian Diebold
65864d85f9 Rename FnScopes -> ExprScopes
The reason for this is that it describes scopes for any body expression, not
just that of a function. It did not actually refer to functions at all anymore.
2019-01-30 21:23:50 +01:00
Marcus Klaas de Vries
13cb4a1b37 Add test for passing on ref expectations 2019-01-30 21:14:26 +01:00
bors[bot]
c65e6cdcb3 Merge #709
709: Use Crate instead of CrateId r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-30 19:37:48 +00:00
Aleksey Kladov
ef7eb8c257 Use Crate instead of CrateId 2019-01-30 22:37:20 +03:00
Aleksey Kladov
95aa7e46fc move item_map_query 2019-01-30 22:36:22 +03:00
bors[bot]
b704ce803b Merge #702
702: Go to Implementation r=matklad a=kjeremy

First half of #620

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-01-30 19:19:31 +00:00
bors[bot]
897e74f089 Merge #704 #705
704: Feat/jinstall lsp r=matklad a=DJMcNab

Add `cargo jinstall-lsp` as a shorthand to include jemalloc support

Also activate the extension when the commands are run which is makes sense to activate.

I still need to work out what `Run` actually does to give it a better name, and other extensions through some voodoo magic are able to hide their commands from the command palette before the extension is activated, which would be a better fix.

705: Pass Documentation up to LSP and add "rust" to our codeblocks there r=matklad a=kjeremy

Fixes #699

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-30 19:08:06 +00:00
bors[bot]
42ee08f140 Merge #708
708: Clear the console when running single tasks r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-01-30 18:54:53 +00:00
kjeremy
63edfaa9a0 Clear the console when running single tasks 2019-01-30 13:46:31 -05:00
kjeremy
04eb15856b Resolve crate 2019-01-30 13:18:21 -05:00
Jeremy Kolb
b88ba007cc Pass Documentation up to LSP and add "rust" to our codeblocks there 2019-01-29 21:39:09 -05:00
Jeremy Kolb
3c17643b30 Go to Implementation for structs and enums 2019-01-29 19:13:02 -05:00
DJMcNab
ce939795ed Add category to the commands 2019-01-29 17:16:14 +00:00
DJMcNab
377ee9d333 Start the extension when rust-analyzer status is run 2019-01-29 17:08:02 +00:00
DJMcNab
b42b7450a2 Add cargo jinstall-lsp as a shorthand to include jemalloc support 2019-01-29 17:02:06 +00:00
Marcus Klaas de Vries
3daca3eb4d Infer type of match guard 2019-01-28 23:09:14 +01:00
bors[bot]
48d2acb297 Merge #698
698: Added support for primitive types type inference with std::ops::Not r=flodiebold a=WizardOfMenlo

On the guideline of #544 , this allows for type inference for all primitive types implementing [std::ops::Not](https://doc.rust-lang.org/beta/std/ops/trait.Not.html). I think this should be relevant #394 as well?

Co-authored-by: WizardOfMenlo <giacomofenzi@outlook.com>
2019-01-28 20:43:13 +00:00
DJMcNab
00e6b5d26c Parse and validate attributes in blocks 2019-01-28 20:03:56 +00:00
WizardOfMenlo
ec32b2e39c Use match-all instead of individual branches 2019-01-28 17:17:04 +00:00
bors[bot]
a238cb519a Merge #700
700: Update insta r=matklad a=kjeremy

Fixes windows build

Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-28 17:05:10 +00:00
Jeremy A. Kolb
092adc0afa Update insta
Fixes windows build
2019-01-28 12:00:01 -05:00
WizardOfMenlo
9416904d14 Added support for primitive types type inference when using std::ops::Not 2019-01-28 14:52:43 +00:00
bors[bot]
ebb19bb95c Merge #697
697: opt-in jemalloc r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-28 12:52:45 +00:00
Aleksey Kladov
2ee08098a6 opt-in jemalloc 2019-01-28 15:52:21 +03:00
bors[bot]
3432c4366f Merge #695
695: align command naming r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-28 12:01:56 +00:00
Aleksey Kladov
d1a67c1174 align command naming 2019-01-28 15:01:22 +03:00
bors[bot]
7abe1f422c Merge #678
678: WIP: automatically collect garbage r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-28 11:39:02 +00:00
Aleksey Kladov
53e3e82d91 update salsa 2019-01-28 13:53:32 +03:00
bors[bot]
6e36d3f653 Merge #694
694: Sort completions in tests r=matklad a=flodiebold



Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-27 21:54:34 +00:00
Florian Diebold
cf5c99271d Sort completions in tests 2019-01-27 22:51:20 +01:00
Aleksey Kladov
c4ceea3417 use salsa from my repo 2019-01-27 22:57:18 +03:00
Aleksey Kladov
b4c8baadb1 tweak words 2019-01-27 22:57:18 +03:00
Aleksey Kladov
c7f4e3a401 show jemalloc 2019-01-27 22:57:18 +03:00
Aleksey Kladov
09b5dc8e02 drop obsolete comment 2019-01-27 22:57:18 +03:00
Aleksey Kladov
7801f6b50f automatically collect garbage 2019-01-27 22:57:18 +03:00
bors[bot]
19f77603c0 Merge #661
661: Implement type generics for functions r=flodiebold a=marcusklaas

Pretty printing of function types isn't as nice any more since the current implementation does not store its argument types directly. We could store some more information to print more information on the argument and return types, at a cost of course.

Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-27 18:00:08 +00:00
Marcus Klaas de Vries
6249989e6c Process second review 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
f6eb44cd9e Use type information from the turbofish 2019-01-27 17:59:21 +01:00