Commit Graph

2723 Commits

Author SHA1 Message Date
DJMcNab
9138317021 Add support for a seperate output channel for trace messages 2019-02-10 10:06:33 +00:00
Florian Diebold
6964a88e8c Add an ra_cli command that analyses all crates in the current workspace
... and prints various stats about how many expressions have a type etc.
2019-02-10 10:56:58 +01:00
Florian Diebold
43e52ac9e2 Implement BatchDatabase construction 2019-02-10 10:56:58 +01:00
Florian Diebold
15224dfcd5 Add new crate 2019-02-10 10:56:58 +01:00
bors[bot]
166c720425 Merge #770
770: Fix introduce var duplicating newlines r=matklad a=vipentti

This fixes #713.

If the block before the statement we want to use introduce var on, had empty
lines these empty lines would also be added between the let-statement and
the current line where the new variable is used.

This fixes that by trimming excess newlines from the start of the indent chunk
and simply adding a single newline (when the chunk had newlines) between the
let-statement and the current statement. If there were no newlines this
matches the previous behaviour.

Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
2019-02-10 08:16:08 +00:00
bors[bot]
a8a4f8012e Merge #773
773: Crash fixes r=matklad a=flodiebold

This fixes a bunch of crashes found while running type inference on the whole rustc repo 😅 
 - avoid infinite recursion with ref bind patterns
 - avoid another infinite recursion
 - handle literal patterns, add a new LITERAL_PAT syntax node for this
 - fix an expect that's wrong on some invalid code

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-02-10 08:04:49 +00:00
Florian Diebold
c098a3fda5 Add comment and mark 2019-02-09 22:03:01 +01:00
Florian Diebold
a28d4befaf Fix another crash, and try harder to prevent stack overflows 2019-02-09 21:53:55 +01:00
Florian Diebold
c0c3b37255 Fix another crash found when analyzing rustc 2019-02-09 21:37:30 +01:00
Florian Diebold
f1afc93353 Fix handling of literal patterns
Wrap them in a LiteralPat node so they can be distinguished from literal
expressions.
2019-02-09 21:37:30 +01:00
Florian Diebold
7ebde241c0 Fix two crashes found by running inference on all of rustc 2019-02-09 21:37:09 +01:00
bors[bot]
8bcb84ea68 Merge #771
771: update notify with fix for hight cpu usage r=matklad a=vemoo

Should fix the ocasional 100% CPU hangs.

I've tried `yes > test.rs` which would cause it before, and now on my computer it stays below 10%, and stops as soon as I interrupt the command, unlike previously which would stay at 100% for a while.

Co-authored-by: Bernardo <berublan@gmail.com>
2019-02-09 16:51:25 +00:00
Bernardo
c3c2e166b0 update notify with fix for hight cpu usage 2019-02-09 17:18:26 +01:00
Ville Penttinen
7b9aefc29d Fix introduce var duplicating newlines
This fixes #713.

If the block before the statement we want to use introduce var on, had empty
lines these empty lines would also be added between the let-statement and
the current line where the new variable is used.

This fixes that by trimming excess newlines from the start of the indent chunk
and simply adding a single newline (when the chunk had newlines) between the
let-statement and the current statement. If there were no newlines this
matches the previous behaviour.
2019-02-09 13:52:01 +02:00
Andrea Pretto
1a4faaffd7 auto_import: use ra_fmt 2019-02-09 11:47:23 +01:00
Andrea Pretto
ee9b0c89e6 auto_import: struct variants for ImportAction 2019-02-09 11:30:09 +01:00
Andrea Pretto
1866fb2dda auto_import: remove PathSegmentsMatch 2019-02-09 11:30:09 +01:00
Andrea Pretto
6d8832359e auto_import: Removed Empty in favor of Partial(0)
auto_import: Removed unecessary lifetimes
2019-02-09 11:30:09 +01:00
Andrea Pretto
5580cf239d auto_import assist 2019-02-09 11:29:59 +01:00
bors[bot]
d0a32627a7 Merge #767
767: Extract project model to separate crate r=matklad a=flodiebold

I'm looking into creating a separate crate that would allow getting a HIR db for a project for 'batch' analyses, and this seems to be an obvious first step. We'd probably want to change the error handling to not rely on failure, though, right?

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-02-09 10:21:13 +00:00
Florian Diebold
e91a46eb0c Clean up a bit 2019-02-09 11:15:25 +01:00
Florian Diebold
50fd860471 Remove Vfs from project model 2019-02-09 11:15:25 +01:00
Florian Diebold
12c70871cc Remove SmolStr from project model 2019-02-09 11:15:25 +01:00
Florian Diebold
ddbf43b630 Move crate graph generation to ra_project_model 2019-02-09 11:15:25 +01:00
Florian Diebold
fcd615e4b7 Extract project model to separate crate 2019-02-09 11:15:25 +01:00
bors[bot]
34398a8756 Merge #766
766: Formatting code into ra_fmt r=matklad a=eulerdisk

As discussed https://github.com/rust-analyzer/rust-analyzer/pull/762#discussion_r254905885

I did only move the code without other improvements.

Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-02-09 09:56:54 +00:00
bors[bot]
3e8351fb06 Merge #768
768: Sort assists by the range of the affected element r=matklad a=robojumper

Closes #763.

3be98f2ac9/crates/ra_assists/src/lib.rs (L233-L236)

This could be made more robust by a) adding a way to identify actions by things other than their label and b) allowing arbitrary actions to appear in the list as long as the tested actions are there in the correct order. Let me know if I should do any of that.


Co-authored-by: robojumper <robojumper@gmail.com>
2019-02-09 08:52:09 +00:00
robojumper
4fdeb54bb5 Improve sorting delegate 2019-02-09 01:57:08 +01:00
robojumper
a70589712a Remove unused import 2019-02-09 00:54:07 +01:00
robojumper
3be98f2ac9 Add tests for action target ranges 2019-02-09 00:34:26 +01:00
robojumper
a3622eb629 Add some assist ranges 2019-02-08 22:43:13 +01:00
Andrea Pretto
02dd0cfd8c Refactor formatting code out of ra_ida_api_light into ra_fmt. 2019-02-08 18:58:27 +01:00
Aleksey Kladov
12e3b4c70b reformat the world 2019-02-08 14:49:43 +03:00
Aleksey Kladov
5cb1d41a30 enable "small heuristics" 2019-02-08 14:49:26 +03:00
bors[bot]
b5fc999e7d Merge #765
765: Jettison `imp` module r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-02-08 11:37:05 +00:00
Aleksey Kladov
884f04670a diagnostics is now a function 2019-02-08 14:34:30 +03:00
Aleksey Kladov
8328e196dd move diagnostics to a separate file 2019-02-08 14:34:30 +03:00
Aleksey Kladov
e4a6343e47 move index_resolve to symbol index 2019-02-08 14:34:30 +03:00
Aleksey Kladov
5173c6295b move find_references to references 2019-02-08 14:34:30 +03:00
Aleksey Kladov
f5bb704568 avoid 'ignored' in test output 2019-02-08 14:34:30 +03:00
Aleksey Kladov
4d0e58afef rename rename to references 2019-02-08 14:34:30 +03:00
Aleksey Kladov
bddd124298 move crate for 2019-02-08 14:34:30 +03:00
Aleksey Kladov
842e8001b2 move changes to a separate file 2019-02-08 14:34:30 +03:00
bors[bot]
9a1d2a46c2 Merge #760
760: Add new assist to remove dbg!() calls r=matklad a=vipentti

This fixes #758.

Currently we try to maintain the cursor position relative to the statement under
cursor, if the cursor is inside the dbg! macro call.

Meaning:
```rust
let foo = dbg!(some.complex<|>().expression());
```
Should turn into:
```rust
let foo = some.complex<|>().expression();
```
With the cursor staying in place.

Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
2019-02-07 22:56:14 +00:00
bors[bot]
7e3776ca56 Merge #761
761: Update npm packages r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-02-07 20:13:17 +00:00
kjeremy
2c7a07e4e8 Update npm packages 2019-02-07 14:55:09 -05:00
Ville Penttinen
be7c5eecc4 Remove unnecessary dbg! calls 2019-02-07 20:42:00 +02:00
Ville Penttinen
6cbf83c946 Add new assist to remove dbg!() calls
This fixes #758.

Currently we try to maintain the cursor position relative to the statement under
cursor, if the cursor is inside the dbg! macro call.

Meaning:

let foo = dbg!(some.complex<|>().expression());

Should turn into:

let foo = some.complex<|>().expression();

With the cursor staying in place.
2019-02-07 20:34:33 +02:00
bors[bot]
d0fd05142f Merge #755
755: Add new configuration "enableEnhancedTyping" to control registering of "type" command r=matklad a=vipentti

This further fixes problems when having a VIM extension (at least vscodevim)
enabled, by not calling `overrideCommand('type', commands.onEnter.handle)` when
enableEnhancedTyping is set to `false`.

The problem is dependent on the order in which extensions are activated, if
rust-analyzer is activated before `vscodevim`, rust-analyzer will register the
`type` command, and when `vscodevim` finally attempts to activate, it will fail
to register the command. This causes `vscodevim` to stop working properly.

This setting allows users to disable the registerCommand `type` in
rust-analyzer, allowing `vscodevim` to work. The setting defaults to `true`.

Currently changing the setting requires reloading of the window.

Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
2019-02-07 12:42:53 +00:00
Ville Penttinen
a4d0aebcb8 Run prettier 2019-02-07 12:54:41 +02:00