bors
dd42c1457d
Auto merge of #16101 - Veykril:search-depedencies-fix, r=Veykril
...
fix: Fix `import_map::search_dependencies` getting confused by assoc and non assoc items with the same name
No test case as creating one is kind of tricky... Ideally the code should be restructured such that this collision wouldn't matter in the first place, its kind of a mess.
Fixes https://github.com/rust-lang/rust-analyzer/issues/16074
Fixes https://github.com/rust-lang/rust-analyzer/issues/16080
Fixes https://github.com/rust-lang/rust-analyzer/issues/15845
2023-12-12 14:51:25 +00:00
Lukas Wirth
ca995d765d
fix: Fix import_map::search_dependencies
getting confused by assoc and non assoc items with the same name
2023-12-12 15:45:42 +01:00
Lukas Wirth
1604ad1a6d
Bump DEFAULT_QUERY_SEARCH_LIMIT from 40 to 100
2023-12-12 15:36:22 +01:00
Lukas Wirth
34ec665ba1
Simplify and improve perf of import_assets::import_for_item
2023-12-12 11:35:34 +01:00
Lukas Wirth
18591ae5c8
Always render the path to be imported in the completion detail
2023-12-11 18:37:12 +01:00
riverbl
99b30ba22f
Don't trim trailing whitespace from doc comments
...
Don't trim trailing whitespace from doc comments as multiple trailing spaces indicates a hard line break in Markdown.
2023-12-10 20:54:22 +00:00
Lukas Wirth
35fbc0210c
Fallback to method resolution on unresolved field access with matching method name
2023-12-08 16:36:41 +01:00
Ryan Mehri
7e768cbe70
fix: prefer keeping Self if it is in the same impl def
2023-12-08 12:30:14 +01:00
Ryan Mehri
934358e95c
fix: resolve Self type references in delegate method assist
2023-12-08 12:29:34 +01:00
Lukas Wirth
9cb13b6efb
Allow navigation targets to be duplicated when the focus range lies in the macro definition site
2023-12-06 12:38:19 +01:00
Lukas Wirth
d2cd30007c
Implicit format args support
2023-12-05 17:07:00 +01:00
Lukas Wirth
5b8e386bae
Improve macro descension API
2023-12-05 17:06:57 +01:00
Igor Matuszewski
a7224c998d
Don't explicitly warn against semicolon_in_expressions_from_macros
...
This has been warn-by-default for two years now and has already been
added to the future-incompat lints in 1.68.
2023-12-05 11:35:09 +01:00
Lukas Wirth
81410ab500
Cleanup FileId stuff
2023-12-02 19:32:53 +01:00
Lukas Wirth
c11737cd63
Simplify include handling
2023-12-01 14:58:57 +01:00
Lukas Wirth
7a8c4c001b
Turn macro_expand from query to normal function
2023-11-28 17:23:51 +01:00
Lukas Wirth
92d447f976
🧹
2023-11-28 10:55:40 +01:00
Lukas Wirth
c43078f99d
Re-implement InFile wrappers as type aliases over generic InFileWrapper
2023-11-28 10:55:40 +01:00
Lukas Wirth
30093a6d81
spans always come from real file
2023-11-28 10:55:39 +01:00
Lukas Wirth
394d11b0fa
Fix float-split hack not setting up spans correctly
2023-11-28 10:55:39 +01:00
Lukas Wirth
05f375eae2
hygiene 2.0
2023-11-28 10:55:39 +01:00
Lukas Wirth
890eb17b4e
Replace ID based TokenMap with proper relative text-ranges / spans
2023-11-28 10:55:39 +01:00
Laurențiu Nicola
da24b6fb12
Bump memchr
2023-11-15 21:24:20 +02:00
Laurențiu Nicola
2814d646cb
Bump rayon
2023-11-15 21:14:56 +02:00
Laurențiu Nicola
b18ce4f8ea
Bump xshell
2023-11-15 21:12:18 +02:00
Laurențiu Nicola
1fc056ec93
Bump indexmap
2023-11-15 13:21:34 +02:00
Laurențiu Nicola
cb8434e594
Bump either
2023-11-15 13:07:36 +02:00
Laurențiu Nicola
f53368dd3f
Bump tracing
2023-11-15 13:00:32 +02:00
Laurențiu Nicola
f66df10f87
Bump itertools
2023-11-15 12:53:56 +02:00
Lukas Wirth
ba61766217
Add config for preferring / ignoring prelude modules in find_path
2023-11-11 14:56:38 +01:00
Young-Flash
e0276dc5dd
fix: find Self
reference
2023-11-10 19:54:43 +08:00
Young-Flash
b84940b199
make generate_mut_trait_impl assist trigged for std trait only
2023-11-05 12:27:10 +08:00
Young-Flash
a723acf346
simplify the code
2023-10-31 21:03:26 +08:00
Young-Flash
4f5f7e2800
feat: import trait with alias
2023-10-22 21:39:00 +08:00
bors
954fb1d673
Auto merge of #15727 - DaniPopes:lintgen-unstable-book, r=HKalbasi
...
feat: generate descriptors for all unstable features
Most unstable features don't have their own chapter in the unstable book, so a rustc helper tool (`src/tools/unstable-book-gen`) generates shims to fill the gaps.
Run this tool to generate the full unstable-book source before parsing it.
2023-10-20 16:42:23 +00:00
bors
dca63d1b21
Auto merge of #15713 - Veykril:flyimport-completions-short, r=Veykril
...
Do flyimport completions by prefix search for short paths
Fixes https://github.com/rust-lang/rust-analyzer/issues/15711
2023-10-09 07:56:02 +00:00
DaniPopes
0c4be03456
feat: generate descriptors for all unstable features
2023-10-09 09:36:47 +02:00
DaniPopes
c5d9bfaa52
internal: fix automatic rustc/rustdoc lint generation
2023-10-07 23:24:55 +02:00
Lukas Wirth
4af730eb26
Do flyimport completions by prefix search for short paths
2023-10-05 13:21:12 +02:00
DaniPopes
53f5c1c13f
internal: re-generate lints.rs
2023-09-29 14:20:17 +02:00
DaniPopes
588c7d9182
minor: hover_simple refactor
2023-09-24 22:47:29 +02:00
bors
5855bd8579
Auto merge of #15587 - dfireBird:fix-15128, r=Veykril
...
Fix autoimport does nothing when importing trait that is as _ imports
Potentially fixes #15128
There are two cases of imports:
1. With simple path
2. With use tree list (or say complex path).
On deeper inspection, the [`recursive_merge`](994df3d6a3/crates/ide-db/src/imports/merge_imports.rs (L87)
) function (called by [`try_merge_trees_mut`)](994df3d6a3/crates/ide-db/src/imports/merge_imports.rs (L69)
) is meaningful only in the case of complex path (i.e when the UseTree contains a UseTreeList).
The [`recursive_merge`](994df3d6a3/crates/ide-db/src/imports/merge_imports.rs (L87)
) function has [match with `Ok` arm](994df3d6a3/crates/ide-db/src/imports/merge_imports.rs (L106)
), that is only executed when both LHS and RHS has `PathSegment` with same `NameRef`. The removal of underscore is implemented in this arm in the case of complex path.
For simple paths, the underscore is removed by checking if both LHS and RHS are simple paths and if their `Path` is same (the check is done [here](994df3d6a3/crates/ide-db/src/imports/merge_imports.rs (L74)
)) and remove the underscore if one is found (I made an assumption here that RHS will always be what rust-analyzer suggests to import, because at this point I'm not sure how to remove underscore with help of `ted::replace`).
2023-09-22 07:39:11 +00:00
Laurențiu Nicola
d39b45a58d
Merge branch 'master' into sync-from-rust
2023-09-18 12:04:59 +03:00
bors
089ae47ebe
Auto merge of #15606 - Veykril:annotation-above-item-fi, r=Veykril
...
fix: Fix lens location "above_whole_item" breaking lenses
Fixes https://github.com/rust-lang/rust-analyzer/issues/15602
2023-09-13 20:02:06 +00:00
Lukas Wirth
712e67cf11
fix: Fix lens location "above_whole_item" breaking lenses
2023-09-13 22:01:04 +02:00
dfireBird
df1239bf92
add tests for insert use with renamed imports
...
Tested for two cases:
1. Simple Use
2. Complex Use
2023-09-11 17:43:53 +05:30
dfireBird
d79486529e
remove as _
on auto importing on trait that is aliased with _
2023-09-11 17:43:53 +05:30
Ali Bektas
0118741632
v4
2023-09-10 23:25:36 +02:00
Ali Bektas
a0c8bee35e
Add more comments as requested
2023-09-10 23:19:58 +02:00
Ali Bektas
6dc7fa9423
v3
2023-09-10 23:19:58 +02:00
Ali Bektas
43edb51b21
Generalize disallowing of definition renaming
2023-09-10 23:19:58 +02:00
Ali Bektas
7ae70a06ce
Disallow renaming of non-local structs
2023-09-10 23:19:58 +02:00
Andy Caldwell
7e786ea4cf
Rework no_coverage to coverage(off)
2023-09-08 12:46:06 +01:00
Lukas Wirth
ca6ddd8ea3
Enable rust_analyzer
for cfgs when code is being analyzed by rust-analyzer
2023-09-08 10:49:12 +02:00
Lukas Wirth
c0e402637e
Emit builtin#format_args in builtin format_args expander
2023-09-06 18:08:20 +02:00
Lukas Wirth
9b8eb807a3
Parse builtin# syntax
2023-09-05 10:36:35 +02:00
Lukas Wirth
81f0108067
Remove markdown module from rust-analyzer crate
2023-09-02 17:27:52 +02:00
Lukas Wirth
8eddc64f86
Simplify
2023-09-02 17:12:57 +02:00
Lukas Wirth
b1575528c0
Move doc comment handling into ide-db
2023-09-02 16:27:26 +02:00
Laurențiu Nicola
30d8aa1bec
Merge commit '9b3d03408c66749d56466bb09baf2a7177deb6ce' into sync-from-ra
2023-08-21 12:44:09 +03:00
Matthias Krüger
3ea1928fb2
Rollup merge of #114562 - Trolldemorted:thiscall, r=oli-obk
...
stabilize abi_thiscall
Closes https://github.com/rust-lang/rust/issues/42202 , stabilizing the use of the "thiscall" ABI.
FCP was substituted by a poll, and the poll has been accepted.
2023-08-07 16:47:57 +02:00
Benedikt Radtke
96b60ed278
stabilize abi_thiscall
2023-08-07 14:11:03 +02:00
Laurențiu Nicola
aa55ce9567
Merge commit 'baee6b338b0ea076cd7a9f18d47f175dd2ba0e5d' into sync-from-ra
2023-08-07 12:03:15 +03:00
Laurențiu Nicola
4704881b64
Merge commit '37f84c101bca43b11027f30ab0c2852f9325bc3d' into sync-from-ra
2023-07-17 16:49:15 +03:00
Laurențiu Nicola
9326cf7f0c
Merge commit 'cd3bf9fe51676b520c546460e6d8919b8c8ff99f' into sync-from-ra
2023-06-19 09:14:04 +03:00
Laurențiu Nicola
c48062fe2a
Merge commit 'aa9bc8612514d216f84eec218dfd19ab83f3598a' into sync-from-ra
2023-06-05 12:04:23 +03:00
Laurențiu Nicola
dbf04a5ee2
⬆️ rust-analyzer
2023-03-20 08:31:01 +02:00
Laurențiu Nicola
b2f6fd4f96
⬆️ rust-analyzer
2023-03-13 10:42:24 +02:00
Laurențiu Nicola
7e711da2f0
⬆️ rust-analyzer
2023-02-20 10:14:12 +02:00
Laurențiu Nicola
bc45c7659a
⬆️ rust-analyzer
2023-02-13 13:55:14 +02:00
Albert Larsan
3e0e51c108
Change src/test
to tests
in source files, fix tidy and tests
2023-01-11 09:32:13 +00:00
arcnmx
25242fe93f
⬆️ rust-analyzer
...
Merge commit '368e0bb32f1178cf162c2ce5f7e10b7ae211eb26'
2023-01-09 10:36:22 -08:00
Laurențiu Nicola
a2a1d99545
⬆️ rust-analyzer
2022-11-23 17:24:03 +02:00
Laurențiu Nicola
79923c382a
⬆️ rust-analyzer
2022-11-09 21:49:10 +02:00
Laurențiu Nicola
a99a48e786
⬆️ rust-analyzer
2022-10-18 09:12:49 +03:00
Laurențiu Nicola
4f55ebbd4f
⬆️ rust-analyzer
2022-10-11 10:37:35 +03:00
Petr Portnov
ed532e5a34
Fix duplicate usage of a
article.
...
This fixes a typo first appearing in #94624
in which test-macro diagnostic uses "a" article twice.
Since I searched sources for " a a " sequences,
I also fixed the same issue in a few source files where I found it.
Signed-off-by: Petr Portnov <gh@progrm-jarvis.ru>
2022-10-02 21:40:39 +03:00
Laurențiu Nicola
f5fde4df43
⬆️ rust-analyzer
2022-09-20 17:39:17 +03:00
Laurențiu Nicola
459bbb4222
⬆️ rust-analyzer
2022-09-13 15:38:11 +03:00
Laurențiu Nicola
65e1dc4d9c
⬆️ rust-analyzer
2022-09-06 21:20:49 +03:00
Laurențiu Nicola
3e358a6827
⬆️ rust-analyzer
2022-08-30 14:51:24 +03:00
Laurențiu Nicola
31519bb394
⬆️ rust-analyzer
2022-08-23 10:05:52 +03:00
Laurențiu Nicola
8231fee466
⬆️ rust-analyzer
2022-08-16 11:24:50 +03:00
Laurențiu Nicola
22c8c9c401
⬆️ rust-analyzer
2022-08-09 07:23:57 +03:00
Amos Wenger
a1f1b95d00
Merge commit 'e36a20c24f35a4cee82bbdc600289104c9237c22' into ra-sync-and-pms-component
2022-07-26 11:53:50 +02:00
Amos Wenger
7e285e1ef5
Run cargo fmt
2022-07-20 15:06:15 +02:00
Amos Wenger
816f7fe12a
Run cargo fix --edition-idioms
2022-07-20 15:02:08 +02:00
Amos Wenger
23d25a3094
Enable extra warnings required by rust-lang/rust
2022-07-20 15:00:17 +02:00
Lukas Wirth
bb4bfae422
fix: Fix search for associated trait items being inconsistent
2022-07-20 13:59:31 +02:00
Amos Wenger
1b416473a3
Upgrade to expect-test@1.4.0
...
cf. https://github.com/rust-analyzer/expect-test/issues/33
cf. https://github.com/rust-lang/rust/pull/99444#issuecomment-1188844202
2022-07-19 13:00:45 +02:00
bors
22e53f1d33
Auto merge of #12549 - bitgaoshu:goto_where_trait_m_impl, r=Veykril
...
feat: Go to implementation of trait methods
try goto where the trait method implies, #4558
2022-07-18 16:29:23 +00:00
Lukas Wirth
38c11bea21
Move convert_to_def_in_trait
into ide-db
2022-07-18 18:28:02 +02:00
bors
01d251789f
Auto merge of #12539 - soruh:instanciate_empty_structs, r=Veykril
...
Automatically instaciate trivially instaciable structs in "Generate new" and "Fill struct fields"
As proposed in #12535 this PR changes the "Generate new" and "Fill struct fields" assist/diagnostic to instanciate structs with no fields and enums with a single empty variant.
For example:
```rust
pub enum Bar {
Bar {},
}
struct Foo<T> {
a: usize,
bar: Bar,
_phantom: std::marker::PhantomData<T>,
}
impl<T> Foo<T> {
/* generate new */
fn random() -> Self {
Self { /* Fill struct fields */ }
}
}
```
was previously:
```rust
impl<T> Foo<T> {
fn new(a: usize, bar: Bar, _phantom: std::marker::PhantomData<T>) -> Self {
Self { a, bar, _phantom }
}
fn random() -> Self {
Self {
a: todo!(),
bar: todo!(),
_phantom: todo!(),
}
}
}
```
and is now:
```rust
impl<T> Foo<T> {
fn new(a: usize) -> Self {
Self {
a,
bar: Bar::Bar {},
_phantom: std::marker::PhantomData
}
}
fn random() -> Self {
Self {
a: todo!(),
bar: Bar::Bar {},
_phantom: std::marker::PhantomData,
}
}
}
```
I'd be happy about any suggestions.
## TODO
- [x] deduplicate `use_trivial_constructor` (unclear how to do as it's used in two separate crates)
- [x] write tests
Closes #12535
2022-07-16 16:36:57 +00:00
bors
ac526e029a
Auto merge of #12712 - harpsword:fix-rename-crate-root, r=Veykril
...
fix: ignore renames for crate root
close #12684 . I just ignore renames for crate root in `rename_mod` func.
2022-07-16 16:28:41 +00:00
bors
029184d977
Auto merge of #12765 - Veykril:import-insert-fix, r=Veykril
...
fix: Fix imports being inserted before doc comments in inline modules
Fixes https://github.com/rust-lang/rust-analyzer/issues/12758
2022-07-14 20:57:22 +00:00
Lukas Wirth
6b823b0234
fix: Fix imports being inserted before doc comments in inline modules
2022-07-14 22:56:56 +02:00
bors
fbba1d7acb
Auto merge of #12691 - Veykril:proc-macro-diag, r=Veykril
...
fix: Fix unresolved proc macro diagnostics pointing to macro expansions
Fixes https://github.com/rust-lang/rust-analyzer/issues/12657
2022-07-14 14:21:16 +00:00
harpsword
4b3164f129
fix: ignore renames for crate root
2022-07-10 10:45:03 +08:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
Lukas Wirth
976d07e53e
fix: Fix unresolved proc macro diagnostics pointing to macro expansions
2022-07-05 12:46:09 +02:00
Laurențiu Nicola
6669f388a2
Bump indexmap
2022-07-03 10:09:35 +03:00
Laurențiu Nicola
e6fcb23445
Bump either
2022-07-03 10:09:35 +03:00
Ryo Yoshida
36d2b43dfd
fix: improve whitespace insertion in pretty printer
2022-06-28 20:44:55 +09:00
bitgaoshu
900b4208fd
rename "trait_def" to "def_in_trait"
2022-06-24 23:04:35 +08:00
bitgaoshu
9ea8d5806d
fix test in qualify_method: stay in trait path
2022-06-24 23:04:35 +08:00
bitgaoshu
9e6bff79f4
fix some test due to resolve to where trait m impl
2022-06-24 19:15:16 +08:00
bitgaoshu
6ecabe352a
functions resolve to impl
2022-06-24 19:11:35 +08:00
bitgaoshu
1064c7513a
reformat code
2022-06-23 14:01:22 +02:00
bitgaoshu
1ef5e14c2c
goto where trait method impl
2022-06-23 14:01:22 +02:00
soruh
817082cad6
add doc strings to use_trivial_contructor.rs
2022-06-22 16:49:50 +02:00
soruh
f9379df630
add use_trivial_contructor.rs
2022-06-22 16:34:01 +02:00
soruh
f780145c4a
apply suggestions
2022-06-22 16:29:59 +02:00
Jeremy Banks
c32f133236
fix: inserted imports must come after a shebang if present
2022-06-15 19:42:43 +00:00
Jeremy Banks
f32ad8362f
add failing test: inserts_after_shebang
2022-06-15 19:42:43 +00:00
Lukas Wirth
76ae5434fa
internal: Bump Dependencies
2022-06-10 17:30:02 +02:00
iDawer
ea8899a445
Allow merging of multiple selected imports.
...
The selected imports have to have a common prefix in paths.
Before
```rust
$0use std::fmt::Display;
use std::fmt::Debug;$0
```
After
```rust
use std::fmt::{Display, Debug};
```
2022-06-02 23:15:55 +05:00
Nikita Podoliako
d98c04aac1
fix(ide-db): correct single-file module rename
2022-05-28 15:07:22 +03:00
Lukas Wirth
86d1d9067e
fix: Insert whitespace into trait-impl completions when coming from macros
2022-05-24 22:56:33 +02:00
andylizi
ebf8b1a96e
ide: insert whitespaces surrounding _
in macro expansion
2022-05-24 07:54:43 +08:00
bvanjoi
f6b8525b1d
feat: escape format specifier( close : #12258 )
2022-05-22 15:32:24 +08:00
Aleksey Kladov
7734a8b72f
dead code
2022-05-21 13:39:59 +01:00
Lukas Wirth
88e297e47d
minor: Simplify
2022-05-20 16:52:10 +02:00
Jonas Schievink
1df6560fd8
Improve "Generate Deref
impl" assist
2022-05-16 20:10:46 +02:00
Jake Heinz
4efc2a9df2
ide: insert whitespace between 'mut' and 'self' in macro expansion
2022-05-15 07:55:13 +00:00
Jonas Schievink
7e45915aa4
Resolve assoc. types of supertraits in the IDE layer
2022-05-09 17:30:49 +02:00
Lukas Wirth
c0feb389ed
fix: Fix import insertion inserting after last comment in a file
2022-05-09 12:12:41 +02:00
Lukas Wirth
61e074f016
fix: Allow auto importing starting segments of use items
2022-05-07 15:52:22 +02:00
Peh
1f011fa4a3
style: rename crates to kebab case
2022-05-01 10:48:58 +00:00