Benjamin Coenen
99c2ca8494
add support of use alias semantic in definition #4202
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-02 21:42:27 +02:00
Benjamin Coenen
19e28888aa
wip
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-01 16:26:22 +02:00
Aleksey Kladov
970dbf8717
Rename StructField -> Field
2020-04-25 14:23:34 +02:00
Aleksey Kladov
63a462f37c
Switch to TryFrom
2020-04-25 11:59:18 +02:00
Aleksey Kladov
dc2151085e
Cleanups
2020-04-25 11:59:18 +02:00
Aleksey Kladov
b1d5817dd1
Convert code to text-size
2020-04-25 11:59:18 +02:00
Aleksey Kladov
4176c03d12
Remove SyntaxPtr::range from more places
2020-04-23 16:33:01 +02:00
Aleksey Kladov
fa2ea8f494
Fix goto definition for record patterns
2020-04-18 22:11:49 +02:00
Aleksey Kladov
cae2498513
Don't expose SyntaxNodePtr impl details
2020-04-16 21:01:04 +02:00
Aleksey Kladov
7a39bc3ba2
Make records grammar more orthogonal
...
We used
name [: expr]
grammar before, now it is
[name :] expr
which makes things simpler
2020-04-11 19:20:41 +02:00
Laurențiu Nicola
52fd2c8e48
Fix unnecessary braces warnings
2020-04-06 17:21:33 +03:00
Kirill Bulatov
332799d914
Reload only the properties that do not affect vfs
2020-03-30 13:39:14 +03:00
Aleksey Kladov
9f53cec1da
Cleanup memory usage stats
2020-03-25 19:35:46 +01:00
Edwin Cheng
d606521723
Use visibility_of in search
2020-03-25 04:45:55 +08:00
Edwin Cheng
bcfb3700ce
Add ItemScope::visibility_of
2020-03-25 04:45:42 +08:00
Kirill Bulatov
944f28fe5b
Use more generic public api
2020-03-24 10:43:22 +02:00
Kirill Bulatov
d221ff4f9e
Auto import macros
2020-03-24 10:43:00 +02:00
Aleksey Kladov
a2f7ca27c0
Merge pull request #3678 from edwin0cheng/refactor-rename
...
Fix rename argument in macro call
2020-03-23 14:06:40 +01:00
Edwin Cheng
f647faac60
Refactor search
2020-03-22 19:52:45 +08:00
Edwin Cheng
bb22a4e386
Add support for macro in symbo_index
2020-03-22 15:00:44 +08:00
Aleksey Kladov
9faea2364d
Use dyn Trait
for working with databse
...
It improves compile time in `--release` mode quite a bit, it doesn't
really slow things down and, conceptually, it seems closer to what we
want the physical architecture to look like (we don't want to
monomorphise EVERYTHING in a single leaf crate).
2020-03-16 17:42:30 +01:00
CAD97
88c944f96b
Remove some TextUnit->usize escapees
2020-03-12 22:33:27 -04:00
bors[bot]
c48dcf7411
Merge #3549
...
3549: Implement env! macro r=matklad a=edwin0cheng
This PR implements `env!` macro by adding following things:
1. Added `additional_outdirs` settings in vscode. (naming to be bikeshed)
2. Added `ExternSourceId` which is a wrapping for SourceRootId but only used in extern sources. It is because `OUT_DIR` is not belonged to any crate and we have to access it behind an `AstDatabase`.
3. This PR does not implement the `OUT_DIR` parsing from `cargo check`. I don't have general design about this, @kiljacken could we reuse some cargo watch code for that ?
~~Block on [#3536 ]~~
PS: After this PR , we (kind of) completed the `include!(concat!(env!('OUT_DIR'), "foo.rs")` macro call combo. [Exodia Obliterate!](https://www.youtube.com/watch?v=RfqNH3FoGi0 )
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-03-11 10:51:07 +00:00
bors[bot]
bf77850c81
Merge #3542
...
3542: Renames work on struct field shorthands r=matklad a=m-n
When renaming either a local or a struct field, struct field shorthands are now renamed correctly.
Happy to refactor this if it doesn't fit the design of the code. Thanks for adding the suggestion of where to start on the issue.
I wasn't sure if I should also look at the behavior of renaming when placing the cursor at the field shorthand; the following describes the behavior with this patch:
```rust
#[test]
fn test_rename_field_shorthand_for_unspecified() {
// when renaming a shorthand, should we have a way to specify
// between renaming the field and the local?
//
// If not is this the correct default?
test_rename(
r#"
struct Foo {
i: i32,
}
impl Foo {
fn new(i: i32) -> Self {
Self { i<|> }
}
}
"#,
"j",
r#"
struct Foo {
i: i32,
}
impl Foo {
fn new(j: i32) -> Self {
Self { i: j }
}
}
"#,
);
}
```
Resolves #3431
Co-authored-by: Matt Niemeir <matt.niemeir@gmail.com>
2020-03-11 09:22:09 +00:00
Matt Niemeir
13ccbb2919
find_usages limited to actual usages again
2020-03-10 22:27:38 -05:00
Aleksey Kladov
14094e4477
Move FeatureFlags
2020-03-10 18:56:15 +01:00
Aleksey Kladov
bf582e77d6
Pull completion options up to the rust-analyzer
2020-03-10 18:47:09 +01:00
Edwin Cheng
22f064cca7
Add resolve_extern_path in DB
2020-03-11 01:06:01 +08:00
Aleksey Kladov
59a3ec5f33
⬆️ fst
2020-03-10 15:03:32 +01:00
Matt Niemeir
ce8121bd65
Renaming a local renames struct field shorthand
2020-03-09 22:14:17 -05:00
Matt Niemeir
a9b6aec8a7
Struct field rename renames field in constructor field shorthand
2020-03-09 22:14:17 -05:00
Kirill Bulatov
5cffef56e2
Consider crate declaration names
2020-03-08 23:00:50 +02:00
Kirill Bulatov
32f5276465
Show mod path in hover tooltip
2020-03-07 23:20:18 +02:00
Aleksey Kladov
9abf0d9659
Normalize waiting queries names
2020-03-07 00:18:04 +01:00
Florian Diebold
9ce30281f6
Don't reuse the Chalk solver
...
This slows down analysis-stats a bit (~5% in my measurement), but improves
incremental checking a lot because we can reuse trait solve results.
2020-03-06 23:04:14 +01:00
Aleksey Kladov
80909f7698
Don't creat public APIs with typos
2020-03-06 18:38:56 +01:00
Aleksey Kladov
95a2755aa8
Concise mode for parameter hints
...
This works around VS Code bug where it tries to cram everything in a
tiny popup, and brings experience closer to Intellij.
2020-03-06 18:35:30 +01:00
Aleksey Kladov
4e7f6c2354
Feature flag for arg snippets
2020-03-06 17:51:10 +01:00
Aleksey Kladov
4f50a37187
Fix docs
2020-03-04 12:48:50 +01:00
Aleksey Kladov
98d68fa6be
Cleanup API
2020-03-04 12:46:40 +01:00
Aleksey Kladov
072ec1a8ae
Fix tests
2020-03-04 12:24:28 +01:00
Aleksey Kladov
994000b5dd
Use method instead of a free function
2020-03-04 12:22:47 +01:00
Aleksey Kladov
f79719b8ae
Move find_refs_to_def
2020-03-04 12:22:47 +01:00
Aleksey Kladov
1874b6738a
Move ReferenceKind
2020-03-04 12:22:06 +01:00
Aleksey Kladov
a549da7e3e
Move SearchScope
2020-03-04 12:22:06 +01:00
Aleksey Kladov
19115e9fab
Support cross-crate marks
2020-03-04 11:55:25 +01:00
Aleksey Kladov
177229bfde
Move reference classification to ra_ide_db
...
Lost some marks along the way :-(
2020-03-03 18:50:15 +01:00
Aleksey Kladov
d49a4d1863
Rename NameDefinition -> Definition
2020-03-03 18:40:27 +01:00
Aleksey Kladov
7d71cc72b5
Refactor reference search a bit
2020-03-03 18:22:52 +01:00
Aleksey Kladov
1a6f51da66
Simplify: remove couple of useless functions
2020-03-02 19:03:46 +01:00
Aleksey Kladov
a1e1869554
Rename ast::ImplBlock -> ast::ImplDef
2020-02-29 21:33:15 +01:00
Aleksey Kladov
5ebfcb9cb7
Fix highlighting of const patterns
2020-02-28 16:38:36 +01:00
Aleksey Kladov
209eb32796
Classify name takes const patterns into account
2020-02-28 15:27:52 +01:00
Aleksey Kladov
da40149572
Fix union classification
2020-02-28 15:03:09 +01:00
Aleksey Kladov
8ed7e751b6
Ensure that semantic tokens are single-line
2020-02-27 16:06:46 +01:00
Shotaro Yamada
33de107ed9
Remove unused dependencies
2020-02-27 14:04:13 +09:00
Aleksey Kladov
c3a4c4429d
Refactor primary IDE API
...
This introduces the new type -- Semantics.
Semantics maps SyntaxNodes to various semantic info, such as type,
name resolution or macro expansions.
To do so, Semantics maintains a HashMap which maps every node it saw
to the file from which the node originated. This is enough to get all
the necessary hir bits just from syntax.
2020-02-26 12:55:50 +01:00
Aleksey Kladov
8046622871
Actually drop unicase dependency
2020-02-26 11:38:33 +01:00
Aleksey Kladov
372439dec8
Merge NameDefinition and NameKind
2020-02-19 14:56:22 +01:00
Aleksey Kladov
0d5ae89948
Derive visibility as well
2020-02-19 14:45:49 +01:00
Aleksey Kladov
86b66067f6
Don't store deriveable Module info in NameDefinition
2020-02-19 14:32:22 +01:00
Kirill Bulatov
f6816c253b
Update versions
2020-02-18 16:12:40 +02:00
Kirill Bulatov
b8ddcb0652
Run cargo +nightly fix --clippy -Z unstable-options
2020-02-18 16:03:08 +02:00
Aleksey Kladov
039f2039a4
Remove unicase dependency
2020-02-18 14:44:52 +01:00
Aleksey Kladov
c0fa5e2246
Rename the binary to rust-analyzer
2020-02-18 12:33:16 +01:00
Aleksey Kladov
57140f1730
Drop proptest tests
...
It takes waaay to long to compile.
We should add quickcheck tests when we touch the relevant code next
time.
2020-02-17 16:57:06 +01:00
Aleksey Kladov
11dda31941
Remove extra dep
2020-02-15 23:23:44 +01:00
Aleksey Kladov
ae70d07237
Rename
2020-02-07 14:26:59 +01:00
Aleksey Kladov
f55be75a17
Remove irrelevant distinction
2020-02-07 14:25:16 +01:00
Kirill Bulatov
f4a4fcf275
Remove the leftovers after ImportLocator removal
2020-02-06 19:27:48 +02:00
Aleksey Kladov
d1e8b8d134
Fix tests
2020-02-06 17:42:17 +01:00
Aleksey Kladov
a173e31890
Make assists use ImportsLocator directly
2020-02-06 16:40:28 +01:00
Aleksey Kladov
dfbe96750b
Move imports locator to ide_db
2020-02-06 16:26:43 +01:00
Aleksey Kladov
ec23030e16
Add a fixme note
2020-02-06 16:24:14 +01:00
Aleksey Kladov
271017e6bf
Move NameKind up
2020-02-06 16:23:28 +01:00
Aleksey Kladov
355c98fd08
Docs
2020-02-06 15:10:17 +01:00
Aleksey Kladov
8a39519e1c
Cleanup
2020-02-06 15:10:07 +01:00
Aleksey Kladov
88267c86c0
cleanup imports
2020-02-06 14:03:45 +01:00
Aleksey Kladov
939f05f3e3
Move to a crate
2020-02-06 12:43:56 +01:00