bors[bot]
b356ab46f2
Merge #781
...
781: Refactor to allow for multiple assists r=matklad a=eulerdisk
This is necessary to allow assist "providers" (which currently are simple free function) to produce multiple assists. I'm not sure this is the best possible refactoring tough.
Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-02-11 17:30:53 +00:00
Andrea Pretto
5c9c0d3ae2
ra_assists: assist "providers" can produce multiple assists
2019-02-11 18:07:21 +01:00
bors[bot]
77ccac74f9
Merge #790
...
790: make macro-rules eq r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-02-11 16:24:39 +00:00
Aleksey Kladov
2efdf41bdb
make macro a NameOwner
2019-02-11 19:24:13 +03:00
Aleksey Kladov
e7b370226c
make macro-rules eq
2019-02-11 19:19:23 +03:00
Aleksey Kladov
dc951098f6
typo
2019-02-11 19:09:53 +03:00
Aleksey Kladov
bbcd3566de
remove useless hash
2019-02-11 19:09:53 +03:00
Aleksey Kladov
28fd228c70
remove query_definitions
2019-02-11 17:44:54 +03:00
Aleksey Kladov
8cafdb3a99
rename combine -> or
...
This way we match API of Option
https://doc.rust-lang.org/std/option/enum.Option.html#method.or
2019-02-11 17:29:20 +03:00
Aleksey Kladov
58ed8ee665
use extern prelude in Resolver
...
This fixes two bugs:
- completion for paths works again
- we handle extern prelude shadowing more correctly
2019-02-11 15:41:39 +03:00
bors[bot]
2babbbb978
Merge #784
...
784: WIP: improve multi-crate fixtures r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-02-11 10:54:27 +00:00
Aleksey Kladov
9923383d53
add graph fixture
2019-02-11 13:47:17 +03:00
Aleksey Kladov
dced2f4ed4
Handle SourceRoots automatically in fixtures
2019-02-11 12:53:10 +03:00
Ville Penttinen
710975ecd8
Fix typo in Cargo.toml authors
...
Fixes typo introduced in #782
2019-02-11 10:20:04 +02:00
Ville Penttinen
ab3d231b1d
Update authors field in Cargo.tomls to "rust-analyzer developers"
...
This closes #777
2019-02-11 08:55:35 +02:00
bors[bot]
ffd407afff
Merge #778
...
778: Glob imports r=matklad a=flodiebold
This implements glob imports, completing #231 :)
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-02-10 20:15:41 +00:00
bors[bot]
b952c270ee
Merge #762
...
762: "Dumb" auto import assist r=matklad a=eulerdisk
This adds a new assist to "add xxx::yyy to the current file" when the cursor is on a PATH. It manages correctly nested imports,`self` keyword and creates new nested imports if necessary. [See the tests]
It doesn't use name resolution so in that sense is 'dumb', but I have plans to do that. That in the future will be useful to auto import trait names in autocompletion for example.
It can easily be extended to provide multiple actions to select in which scope to import. That's another thing I plan to do.
@matklad I copied some indentation code from `ide_light`, I don't know at the moment if/how you want to refactor that code. This assist was meant to be in `ide_light`.
Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-02-10 19:00:36 +00:00
Florian Diebold
2f24e740db
Implement glob imports within the same crate
...
Fixes #231 .
2019-02-10 16:48:29 +01:00
Florian Diebold
2e1d739a80
Import glob imports from other crates
...
This is the easy part since we don't have to consider the fixpoint algorithm.
2019-02-10 16:20:01 +01:00
Florian Diebold
c1e295682e
Implement glob imports from enums
2019-02-10 16:20:01 +01:00
Florian Diebold
35cfb418ba
Add some tests
2019-02-10 16:20:01 +01:00
Florian Diebold
2e9194a621
Spell cases explicitly in Ty::walk{_mut}
2019-02-10 12:35:30 +01:00
Florian Diebold
b18863f987
Clean up a bit
2019-02-10 11:48:59 +01:00
Florian Diebold
6f81a372db
Add a smoke test for ra_batch
2019-02-10 11:44:53 +01: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
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
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
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
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
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
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
kjeremy
6753051a45
Some clippy cleanups
2019-02-06 15:50:26 -05:00
kjeremy
bcbee10b89
assists: compute edit
2019-02-06 11:15:18 -05:00
Aleksey Kladov
0c5fd8f7cb
move assists to a separate crate
2019-02-06 17:00:00 +03:00
Jeremy Kolb
d107926f86
Remove stray dbg!
2019-02-06 07:22:16 -05:00
kjeremy
852b083794
Fill deprecation for LSP
2019-02-05 17:05:46 -05:00
Jeremy Kolb
e696342afa
Rename assits to assists
2019-02-05 08:13:16 -05:00
bors[bot]
4183825475
Merge #740
...
740: Update dependencies r=kjeremy a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-02-05 12:16:25 +00:00
Jeremy Kolb
c73cc0ab8f
Remove unused imports
2019-02-05 07:15:15 -05:00
bors[bot]
4d4c46aff8
Merge #742
...
742: Extern crate r=matklad a=flodiebold
This implements `extern crate` declarations by lowering them to (absolute) imports, and adds support for absolute paths. It also extracts the extern prelude from the per-module item map, and handles the special case of extern crates in the crate root adding to the extern prelude.
This means we finally resolve `Arc`, so it fixes #523 😄
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-02-05 07:53:08 +00:00
bors[bot]
94d5d0d7e8
Merge #743
...
743: Move comment r=matklad a=kjeremy
As pointed out in https://github.com/rust-analyzer/rust-analyzer/pull/738/files#r253651450
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-02-05 07:36:51 +00:00
bors[bot]
d914ac0069
Merge #744
...
744: mbe: Ensure repetition separator matches r=matklad a=jrmuizel
Co-authored-by: Jeff Muizelaar <jrmuizel@gmail.com>
2019-02-05 07:28:31 +00:00
Jeff Muizelaar
a4b473226b
mbe: Ensure repetition separator matches
2019-02-04 20:19:23 -05:00
Florian Diebold
de4c5e381f
Fix ReachedFixedPoint value for unresolved external prelude items
2019-02-04 23:26:25 +01:00
kjeremy
7f92fd858a
Move comment
2019-02-04 16:34:02 -05:00
Florian Diebold
699ce06ac3
Complete extern prelude (again)
2019-02-04 22:09:56 +01:00
Florian Diebold
ccef48b6c3
Make it possible to have multiple crate in a mock analysis fixture
2019-02-04 21:49:34 +01:00
Florian Diebold
0c2fedc2cb
Add alloc to std deps
2019-02-04 21:49:34 +01:00
Florian Diebold
1056b480d6
Make extern crates in the root module add to the extern prelude
...
To accomplish this, separate the extern prelude from the per-module item maps.
2019-02-04 21:49:34 +01:00
Florian Diebold
d69023fc72
Lower extern crates to imports
...
This is probably not completely correct, but it kind of works.
2019-02-04 21:49:34 +01:00
Florian Diebold
397d84ee29
Add test for extern crate renames
2019-02-04 21:49:34 +01:00
Florian Diebold
e163c908ac
Add AST for extern crate
...
Also change it to parse the crate name as a NAME_REF, not a NAME.
2019-02-04 21:49:34 +01:00
bors[bot]
77a824c6a0
Merge #741
...
741: Test more Self inference r=flodiebold a=kjeremy
These cases didn't look covered.
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-02-04 20:28:09 +00:00
kjeremy
5227102c12
Test more Self inference
2019-02-04 14:44:06 -05:00
kjeremy
8ec4b84013
Bump insta and proptest to latest
2019-02-04 14:11:51 -05:00
kjeremy
20e9aa2364
Future proof by explicitly matching against None
2019-02-04 12:49:29 -05:00
kjeremy
0f7a714c63
Add comment
2019-02-04 10:26:43 -05:00
Jeremy Kolb
6ac4cca6c1
Implement lens for impls and support resolving lenses.
2019-02-04 08:45:33 -05:00
Jeff Muizelaar
0000f00787
mbe: Add support matching for matching idents
2019-02-03 19:43:37 -05:00
Jeff Muizelaar
1997797adc
Factor out rules parsing
2019-02-03 19:43:35 -05:00
Aleksey Kladov
dbf9820e35
make HirDatabase object-safe
2019-02-03 22:15:31 +03:00
bors[bot]
395965351d
Merge #733
...
733: fill match arms r=matklad a=gfreezy
fixed #626
Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-02-03 18:11:06 +00:00
gfreezy
bfaefed3f6
fill match arm
2019-02-04 00:27:36 +08:00
Laurențiu Nicola
cbc2ac5d09
Add core to STD_DEPS
...
See #731 .
2019-02-03 17:35:42 +02:00
Jeff Muizelaar
dbc3074556
Make sure we match the entire pattern
2019-02-03 10:07:57 -05:00
bors[bot]
f370393bba
Merge #728
...
728: add postfix completion for `dbg!()` with `.dbg` r=matklad a=hdhoang
closes #716
Co-authored-by: Hoàng Đức Hiếu <code@hdhoang.space>
2019-02-03 13:26:37 +00:00
Hoàng Đức Hiếu
9dd7ccf609
fold complete_postfix tests into one
2019-02-03 20:12:57 +07:00
bors[bot]
02bacf70fa
Merge #727
...
727: Fix macro_rules separator parsing. r=matklad a=jrmuizel
macro_rules rules are separated by ';' including an optional ';' at the end
Co-authored-by: Jeff Muizelaar <jrmuizel@gmail.com>
2019-02-03 07:32:59 +00:00
Jeff Muizelaar
0bb8456e7d
Fill out test a little more
...
This factors out an assert_expansion function to make things
more managable.
2019-02-02 22:39:45 -05:00