Lukas Wirth
f49a2fed3f
internal: Move out WithFixture
into dev-dep only crate
2023-12-18 15:24:08 +01:00
Lukas Wirth
35620306a6
internal: Move proc-macro knowledge out of base-db
2023-12-18 12:37:18 +01:00
unexge
0e4902467f
Add missing docs string
2023-12-16 17:10:11 +00:00
unexge
b986d8ac92
Complete exported macros in #[macro_use($0)]
2023-12-16 16:19:58 +00:00
Lukas Wirth
18591ae5c8
Always render the path to be imported in the completion detail
2023-12-11 18:37:12 +01:00
Lukas Wirth
cf083fefc4
fix: Fix completion failing in format_args! with invalid template
2023-12-08 20:35:33 +01:00
bors
b03a0bda18
Auto merge of #15627 - jmintb:sort_imports, r=Veykril
...
feat: Prioritize import suggestions based on the expected type
Hi, this is a draft PR to solve #15384 . `Adt` types work and now I have a few questions :)
1. What other types make sense in this context? Looking at [ModuleDef](05666441ba/crates/hir/src/lib.rs (L275)
) I am thinking everything except Modules.
2. Is there an existing way of converting between `ModeuleDef` and `hir::Type` in the rustanalyzer code base?
3. Does this approach seem sound to you?
Ups: Upon writing this I just realised that the enum test is invalided as there are no enum variants and this no variant is passed as a function argument.
2023-12-08 12:39:23 +00:00
Lukas Wirth
1475848250
Cleanup
2023-12-08 13:31:31 +01:00
Jessie Chatham Spencer
6abba17a5b
Implement function type matching
2023-12-08 12:37:26 +01:00
Jessie Chatham Spencer
14a7a614c1
WIP - Sort suggested imports by type for data types
2023-12-08 12:37:26 +01:00
Lukas Wirth
d54745aed3
fix: Fix item tree lowering pub(self) to pub()
2023-12-08 11:59:44 +01:00
dfireBird
7089eb8457
Make callable fields not complete in method access no parens case
2023-12-08 16:23:45 +05:30
petr-tik
2d879e0431
Stop offering private functions in completions
...
Before
Private functions have RawVisibility module, but were
missed because take_types returned None early. After resolve_visibility
returned None, Visibility::Public was set instead and private functions
ended up being offered in autocompletion.
Choosing such a function results in an immediate error diagnostic
about using a private function.
After
Pattern match of take_types that returns None and
query for Module-level visibility from the original_module
Fix #15134 - tested with a unit test and a manual end-to-end
test of building rust-analyzer from my branch and opening
the reproduction repository
REVIEW
Refactor to move scope_def_applicable and check function visibility
from a module
Please let me know what's the best way to add a unit tests to
nameres, which is where the root cause was
2023-12-08 11:38:54 +01:00
bors
afc1ae1aa3
Auto merge of #16016 - dfireBird:regression-fix-15879, r=lnicola
...
fix: Insert fn call parens only if the parens inserted around field name
Fixes #16014 .
Sorry I missed it in previous PR. I've added a test as level to prevent regressions again.
Give any suggestions to improve the test if anything.
2023-12-05 14:53:29 +00: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
bors
e91fdf7860
Auto merge of #15959 - Veykril:macro-shower3, r=lnicola
...
TokenMap -> SpanMap rewrite
Opening early so I can have an overview over the full diff more easily, still very unfinished and lots of work to be done.
The gist of what this PR does is move away from assigning IDs to tokens in arguments and expansions and instead gives the subtrees the text ranges they are sourced from (made relative to some item for incrementality). This means we now only have a single map per expension, opposed to map for expansion and arguments.
A few of the things that are not done yet (in arbitrary order):
- [x] generally clean up the current mess
- [x] proc-macros, have been completely ignored so far
- [x] syntax fixups, has been commented out for the time being needs to be rewritten on top of some marker SyntaxContextId
- [x] macro invocation syntax contexts are not properly passed around yet, so $crate hygiene does not work in all cases (but most)
- [x] builtin macros do not set spans properly, $crate basically does not work with them rn (which we use)
~~- [ ] remove all uses of dummy spans (or if that does not work, change the dummy entries for dummy spans so that tests will not silently pass due to havin a file id for the dummy file)~~
- [x] de-queryfy `macro_expand`, the sole caller of it is `parse_macro_expansion`, and both of these are lru-cached with the same limit so having it be a query is pointless
- [x] docs and more docs
- [x] fix eager macro spans and other stuff
- [x] simplify include! handling
- [x] Figure out how to undo the sudden `()` expression wrapping in expansions / alternatively prioritize getting invisible delimiters working again
- [x] Simplify InFile stuff and HirFIleId extensions
~~- [ ] span crate containing all the file ids, span stuff, ast ids. Then remove the dependency injection generics from tt and mbe~~
Fixes https://github.com/rust-lang/rust-analyzer/issues/10300
Fixes https://github.com/rust-lang/rust-analyzer/issues/15685
2023-12-04 19:59:53 +00:00
dfireBird
20c6f27024
Insert fn call parens only if the parens inserted around field name
2023-12-04 22:37:34 +05:30
dfireBird
b7effe54ee
fix close parens position to move after field access
2023-12-01 18:55:26 +05:30
dfireBird
21c09eb544
update dot tests function with check_edit
2023-11-28 22:21:57 +05:30
dfireBird
5c0c8ceaf7
refactor complete_fn_fields
function and correct branch checks
2023-11-28 22:21:57 +05:30
dfireBird
8296b16f38
fix the insertion of the surronding parens
...
Before it was inserting whenever function field is found but it should
happend only in the case of function call.
2023-11-28 22:21:57 +05:30
dfireBird
aa1cf8d357
add tests for tuple fields and expect fn type cases
2023-11-28 22:21:57 +05:30
dfireBird
eedeb58a4e
refactor obtaining receivers into idiomatic way
...
variable name change for clearer usage indication
2023-11-28 22:21:57 +05:30
dfireBird
5bcafd7dc0
add tests for the completion of the callable field
2023-11-28 22:21:57 +05:30
dfireBird
7cf3ab4bd2
implement completion render for callable fields
2023-11-28 22:21:57 +05:30
dfireBird
a0e690a7e9
add different completion for fn fields
2023-11-28 22:21:57 +05:30
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
30093a6d81
spans always come from real file
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
austaras
2411f1383a
fix variant resolve for type alias
2023-11-26 21:00:11 +08:00
Andrew Hlynskyi
94cea4663a
fix: add fallback for completion label details
2023-11-25 13:25:42 +02:00
Andrew Hlynskyi
f0adf8c4ec
Update tests
2023-11-24 14:38:00 +02:00
Andrew Hlynskyi
615abb3c92
Improve completion label details display
2023-11-24 14:38:00 +02:00
austaras
e95ec55273
fix: better resolve assoc item with type bound
2023-11-16 23:17:00 +08: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
Lukas Wirth
4af730eb26
Do flyimport completions by prefix search for short paths
2023-10-05 13:21:12 +02:00
bors
4791a5de21
Auto merge of #15692 - Veykril:underscore-completions, r=Veykril
...
fix: Typing underscore should not trigger completions in types or patterns
2023-09-29 19:08:15 +00:00
Lukas Wirth
ae5d74dffb
typing underscore should not trigger completions in types or patterns
2023-09-29 21:06:47 +02:00
DaniPopes
53f5c1c13f
internal: re-generate lints.rs
2023-09-29 14:20:17 +02:00
vxpm
10fae62820
split detail function
2023-09-23 19:43:19 -03:00
vxpm
9f3d627681
add tests for full signatures
2023-09-23 19:39:42 -03:00
vxpm
6b487ed4be
fix & run tests
2023-09-08 22:03:42 -03:00
vxpm
6afa5b0ba2
better handling of spaces & newlines
2023-09-08 22:03:42 -03:00
vxpm
23ffda1a97
full function signatures option
2023-09-08 22:03:42 -03:00
Lukas Wirth
853f8a21f7
Fix cfg completions not working
2023-09-08 10:49:15 +02:00
Lukas Wirth
c0e402637e
Emit builtin#format_args in builtin format_args expander
2023-09-06 18:08:20 +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
dirreke
465aaed1cf
fix the wrong number in const KNOWN_ARCH
2023-08-14 23:02:37 +08:00
Dirreke
93b6838158
add a csky-unknown-linux-gnuabiv2 target
2023-08-14 23:02:36 +08:00
Seth Pellegrino
c9bc45f6fd
feat: riscv-interrupt-{m,s}
calling conventions
...
Similar to prior support added for the mips430, avr, and x86 targets
this change implements the rough equivalent of clang's
[`__attribute__((interrupt))`][clang-attr] for riscv targets, enabling
e.g.
```rust
static mut CNT: usize = 0;
pub extern "riscv-interrupt-m" fn isr_m() {
unsafe {
CNT += 1;
}
}
```
to produce highly effective assembly like:
```asm
pub extern "riscv-interrupt-m" fn isr_m() {
420003a0: 1141 addi sp,sp,-16
unsafe {
CNT += 1;
420003a2: c62a sw a0,12(sp)
420003a4: c42e sw a1,8(sp)
420003a6: 3fc80537 lui a0,0x3fc80
420003aa: 63c52583 lw a1,1596(a0) # 3fc8063c <_ZN12esp_riscv_rt3CNT17hcec3e3a214887d53E.0>
420003ae: 0585 addi a1,a1,1
420003b0: 62b52e23 sw a1,1596(a0)
}
}
420003b4: 4532 lw a0,12(sp)
420003b6: 45a2 lw a1,8(sp)
420003b8: 0141 addi sp,sp,16
420003ba: 30200073 mret
```
(disassembly via `riscv64-unknown-elf-objdump -C -S --disassemble ./esp32c3-hal/target/riscv32imc-unknown-none-elf/release/examples/gpio_interrupt`)
This outcome is superior to hand-coded interrupt routines which, lacking
visibility into any non-assembly body of the interrupt handler, have to
be very conservative and save the [entire CPU state to the stack
frame][full-frame-save]. By instead asking LLVM to only save the
registers that it uses, we defer the decision to the tool with the best
context: it can more accurately account for the cost of spills if it
knows that every additional register used is already at the cost of an
implicit spill.
At the LLVM level, this is apparently [implemented by] marking every
register as "[callee-save]," matching the semantics of an interrupt
handler nicely (it has to leave the CPU state just as it found it after
its `{m|s}ret`).
This approach is not suitable for every interrupt handler, as it makes
no attempt to e.g. save the state in a user-accessible stack frame. For
a full discussion of those challenges and tradeoffs, please refer to
[the interrupt calling conventions RFC][rfc].
Inside rustc, this implementation differs from prior art because LLVM
does not expose the "all-saved" function flavor as a calling convention
directly, instead preferring to use an attribute that allows for
differentiating between "machine-mode" and "superivsor-mode" interrupts.
Finally, some effort has been made to guide those who may not yet be
aware of the differences between machine-mode and supervisor-mode
interrupts as to why no `riscv-interrupt` calling convention is exposed
through rustc, and similarly for why `riscv-interrupt-u` makes no
appearance (as it would complicate future LLVM upgrades).
[clang-attr]: https://clang.llvm.org/docs/AttributeReference.html#interrupt-risc-v
[full-frame-save]: 9281af2ecf/src/lib.rs (L440-L469)
[implemented by]: b7fb2a3fec/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp (L61-L67)
[callee-save]: 973f1fe7a8/llvm/lib/Target/RISCV/RISCVCallingConv.td (L30-L37)
[rfc]: https://github.com/rust-lang/rfcs/pull/3246
2023-08-08 18:09:56 -07: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
bors
544b4cfe4d
Auto merge of #109069 - lnicola:rust-analyzer-2023-03-13, r=lnicola
...
⬆️ `rust-analyzer`
r? `@ghost`
2023-03-13 16:54:43 +00:00
Laurențiu Nicola
b2f6fd4f96
⬆️ rust-analyzer
2023-03-13 10:42:24 +02:00
clubby789
c6da2f9d96
Remove uses of box_syntax
in rustc and tools
2023-03-12 13:19:46 +00: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
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
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
9d2cb42a41
⬆️ rust-analyzer
2022-08-02 09:05:16 +03:00
Amos Wenger
a1f1b95d00
Merge commit 'e36a20c24f35a4cee82bbdc600289104c9237c22' into ra-sync-and-pms-component
2022-07-26 11:53:50 +02:00
Dorian Scheidt
13c83f90ac
fix: Don't add braces to 'if' completion in match guard position
...
When the cursor is in a match arm, but before the fat arrow (=>) token, don't
add braces when autocompleting "if".
fixes #12823
2022-07-23 12:25:02 -05: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
bors
f3e9b38e26
Auto merge of #12646 - lowr:fix/11897, r=lowr
...
fix: escape receiver texts in completion
This PR fixes #11897 by escaping '\\' and '$' in the text of the receiver position expression. See [here](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#snippet_syntax ) for the specification of the snippet syntax (especially [this section](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#grammar ) discusses escaping).
Although not all occurrences of '\\' and '$' have to be replaced, I chose to replace all as that's simpler and easier to understand. There *are* more clever ways to implement it, but I thought they were premature optimization for the time being (maybe I should put FIXME notes?).
2022-07-20 10:51:31 +00:00
Ryo Yoshida
cfc52adc65
Add comments
2022-07-20 19:11:14 +09:00
bors
0e7135615f
Auto merge of #12800 - hi-rustin:rustin-patch-issue-12717, r=hi-rustin
...
Find original as node before compute ref match
part of https://github.com/rust-lang/rust-analyzer/issues/12717
2022-07-20 00:17:09 +00: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
hi-rustin
15016bc09f
Find original as node before compute ref match
...
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-07-18 23:24:19 +08:00
iDawer
a0fd58bbbe
Check for local IDs belong to same definition
2022-07-17 11:43:08 +05:00
bors
96481b7786
Auto merge of #12773 - Veykril:self-compl, r=Veykril
...
fix: Improve self param completion applicability
Fixes https://github.com/rust-lang/rust-analyzer/issues/9522
2022-07-16 10:28:52 +00:00
Lukas Wirth
b96f8f18b0
fix: Improve self param completion applicability
2022-07-16 12:28:41 +02:00
Lukas Wirth
7ff6c36716
fix: Don't show qualified path completions for private items
2022-07-15 13:30:43 +02:00
bors
5af3ef527c
Auto merge of #12735 - feniljain:fix-completions, r=feniljain
...
fix(completion): `super::` completion at crate root and module depth aware
- should close #12439
- Suggest super according to the depth in tree
2022-07-14 11:53:29 +00:00
feniljain
4cbde4ed8f
fix(completion): super::
completion at crate root and module depth
...
aware
2022-07-14 17:07:43 +05:30
TonalidadeHidrica
e3bde579c4
Fix obsolete completion.snippets
config
2022-07-11 17:00:40 +09:00
TonalidadeHidrica
eaebead296
Fix config keys regarding imports in docs
2022-07-11 15:43:25 +09:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
Hongxu Xu
3248601a03
fix default type param value position
2022-07-07 07:28:55 +08:00
Hongxu Xu
0360ed53cf
check arg_idx >= n_params only if arg_idx >= n_required_params
2022-07-07 00:54:46 +08:00
Hongxu Xu
75fb3de310
Handle generic args per arg index
...
Add more test cases for generic args
2022-07-07 00:45:22 +08:00
Hongxu Xu
0f2eba54db
Show only assoc type args in the correct arg pos
2022-07-06 22:58:27 +08:00
Hongxu Xu
441e659aa1
Complete associated type only in trait generic arg
...
Fix tidy check does not work for marks in multiline
2022-07-05 21:48:28 +08:00
Laurențiu Nicola
791f2a0bec
Bump smallvec
2022-07-03 10:09:35 +03:00
bors
d101439c77
Auto merge of #12627 - yue4u:fix/struct-variant-patterns, r=Veykril
...
fix: complete enum variants as patterns in pattern path
close #12593
2022-07-02 17:18:24 +00:00
bors
d4b79ad77b
Auto merge of #12678 - Veykril:flyimport, r=Veykril
...
fix: Trigger flyimport completions in item lists again
Fixes https://github.com/rust-lang/rust-analyzer/issues/12656
2022-07-02 14:20:36 +00:00
Lukas Wirth
cd42b20ce3
fix: Trigger flyimport completions in item lists again
2022-07-02 16:20:26 +02:00
yue4u
ea7ea7079c
fix: escape for enum variant
2022-07-02 23:17:29 +09:00
yue4u
622b516c74
fix: variants rendering in pattern path
2022-07-02 20:31:24 +09:00
bors
994f3cf74d
Auto merge of #12636 - xuhongxu96:fix-12148, r=Veykril
...
complete raw identifier with "r#" prefix
Fix #12148
Escape Names and Paths used in `insert_text`/`insert_snippet` while rendering the completion items.
2022-07-01 14:55:51 +00:00
Lukas Wirth
531e152390
fix: Simplify macro statement expansion handling
2022-07-01 14:49:30 +02:00
Ryo Yoshida
80cc0ef1bc
Fix typo
2022-06-27 23:20:26 +09:00
Ryo Yoshida
393a18b8ce
fix: escape receiver texts in format string completion
2022-06-27 23:20:23 +09:00
Ryo Yoshida
491e6eaf9e
fix: escape ${receiver} when completing with custom snippets
2022-06-27 23:20:17 +09:00
bors
9eaf96c9ea
Auto merge of #12643 - Veykril:macro-compl, r=Veykril
...
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 12:40:46 +00:00
Lukas Wirth
bdbffdd463
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 14:39:44 +02:00
bors
4c3954682d
Auto merge of #12635 - antogilbert:tgt_feat, r=Veykril
...
Correct target_feature completion
I changed the `target_feature` to match the description given in #12616 .
2022-06-27 12:28:36 +00:00
Manas
7f1fac7c26
fix: deduplicate cfg completions
...
cfg completions are duplicated if they are set with multiple values.
This patch deduplicates them.
2022-06-27 16:17:06 +05:30
Antonello Palazzi
bef89e95e7
Udate unit tests
2022-06-27 09:04:42 +01:00
Hongxu Xu
f536766efb
complete raw identifier with "r#" prefix
2022-06-26 14:45:30 +08:00
Antonello Palazzi
e4e2a46773
Correct target_feature completion
2022-06-26 00:50:41 +01:00
yue4u
472ae16bfb
fix: completes non exhaustive variant within the defining crate
2022-06-24 00:00:51 +09:00
Lukas Wirth
7a0774defa
internal: Simplify some completions
2022-06-20 21:55:33 +02:00
Lukas Wirth
8b078986dc
Reimplement auto-ref completions for fields
2022-06-20 20:22:51 +02:00
Lukas Wirth
46d22719fc
Remove pattern rendering hack
2022-06-20 20:16:40 +02:00
Lukas Wirth
06ee4d6222
fix: Fix auto-ref completions inserting into wrong locations
2022-06-20 18:59:57 +02:00
Lukas Wirth
1f028403cd
fix: Don't trigger pattern completions when typing a wildcard pattern
2022-06-20 18:03:09 +02:00
Lukas Wirth
6e9c963348
internal: Lift out IdentContext from CompletionContext
2022-06-20 17:41:04 +02:00
Lukas Wirth
bcf10cde13
internal: Remove previous_token
field from CompletionContext
2022-06-20 15:07:48 +02:00
Lukas Wirth
90483321ee
Remove some usages of Completions::add_resolution
2022-06-20 14:47:30 +02:00
Lukas Wirth
7685245282
Even more completion context filtering
2022-06-20 14:23:46 +02:00
Lukas Wirth
ce5859e387
Lift out PathKind variant fields into structs
2022-06-20 13:29:13 +02:00
Lukas Wirth
5c69df93df
Split remaining completion calls on the context kinds
2022-06-20 13:17:30 +02:00
Lukas Wirth
f271b18129
Consider walking up macro expansions when searching for surrounding entities in completion analysis
2022-06-18 11:19:36 +02:00
Lukas Wirth
c1446a2743
Move CompletionContext::impl_def
into corresponding entities
2022-06-18 10:45:53 +02:00
Lukas Wirth
83e8f3ac30
Move CompletionContext::incomplete_let
into PathKind::Expr
2022-06-18 10:19:04 +02:00
Lukas Wirth
7369e5120d
Move CompletionContext::function_def
into PathKind::Expr
2022-06-18 09:54:03 +02:00
Lukas Wirth
309ecdd71c
internal: NameRefKind classification is not optional
2022-06-18 08:58:47 +02:00
Lukas Wirth
0665428b4e
minor: Simplify
2022-06-18 01:15:08 +02:00
Lukas Wirth
173bb10a76
internal: Split flyimport into its 3 applicable contexts
2022-06-18 00:47:28 +02:00
Lukas Wirth
00fdb4a3d8
Only run completion functions if their corresponding context is active
2022-06-17 23:36:39 +02:00
Lukas Wirth
d97a8ee865
Remove superfluous early returns
2022-06-17 17:49:25 +02:00
Lukas Wirth
85b68b1f7d
Inline PathQualifierCtx
2022-06-17 17:27:12 +02:00
Lukas Wirth
d6f161ffa9
internal: Collapse lift is_infer_qualifier into Qualified
variant
2022-06-17 17:15:29 +02:00
Lukas Wirth
2f2ea77d88
Move existing_derives into PathKind::Derive
2022-06-17 16:56:21 +02:00
Lukas Wirth
531060f103
internal: Collapse completion ctx path qualifier and is_absolute_path into enum
2022-06-17 16:36:22 +02:00
Lukas Wirth
85363d18e8
Simplify
2022-06-17 16:22:51 +02:00
Lukas Wirth
f35a9a1dcc
Split out tests
2022-06-17 15:19:09 +02:00
Lukas Wirth
a2537e591a
Split completion context module into definitions and analysis parts
2022-06-17 15:16:20 +02:00
Lukas Wirth
f201a40492
Remove ImmediateLocation in favor of PathKind::Type
2022-06-17 15:09:48 +02:00
Lukas Wirth
6b246292ca
Move more ImmediateLocation::TypeAnnotation into PathKind::Type
2022-06-17 11:31:36 +02:00
Lukas Wirth
6e07b17f69
Introduce NameRefKind for completions
2022-06-17 10:45:19 +02:00
bors
7322a982f9
Auto merge of #12554 - XFFXFF:fix_11959, r=Veykril
...
fix: local items should not be completed in parent signature
fixes #11959
> We get a Bar completion for the following snippet which is wrong as the item is not visible in that position.
> ``` rust
> fn foo() -> $0 {
> struct Bar;
> }
> ```
I investigated the problem and found that the scope of the cursor offset, also `CompletionContext.scope` is the body of the function
2022-06-16 12:48:33 +00:00
XFFXFF
6df969f5f4
the offset used for the completion cursor should always be relative to the original file and not to the marco file
2022-06-16 20:34:37 +08:00
XFFXFF
fbf8e12234
the scope of the return type is not the body of the function
2022-06-16 16:24:18 +08:00
Hongxu Xu
534d71a852
disable private editable in TEST_CONFIG by default
...
adjust test_visibility_filter test case
2022-06-16 08:52:57 +08:00
Hongxu Xu
ded412d56b
implement inherited_visibility in collector
2022-06-14 23:23:15 +08:00
Hongxu Xu
d7eebd9706
add test cases to complete fn generated by macro in pub trait
2022-06-14 21:41:09 +08:00
bors
9ef01d0895
Auto merge of #12490 - yue4u:fix/show-enum-in-fresh-use-tree, r=Veykril
...
fix: complete non-std enum at the start of `use` completions
close : #12421
2022-06-10 20:33:17 +00:00
bors
0bbead9fa0
Auto merge of #12473 - yue4u:fix/no-enum-parens-in-use, r=Veykril
...
fix: avoid adding enum parens in use path
close #12420
2022-06-10 20:03:29 +00:00
Lukas Wirth
76ae5434fa
internal: Bump Dependencies
2022-06-10 17:30:02 +02:00
yue4u
2942863709
feat: append :: after
2022-06-09 16:45:46 +09:00
yue4u
55bc693356
fix: show non-std enum in a fresh use tree completion
2022-06-08 20:55:16 +09:00
Lukas Wirth
0be31d945e
fix: Fix trait impl completions using wrong insert position
2022-06-05 20:29:36 +02:00
yue4u
11693dad88
fix: avoid adding enum parens in use
2022-06-06 01:34:01 +09:00
Lukas Wirth
a2a74bf278
Remove some of the unnecessary helpfer functions from CompletionContext
2022-06-03 20:49:25 +02:00
Lukas Wirth
a0c1816e3a
Simplify
2022-06-03 19:55:30 +02:00
Lukas Wirth
98c0578f15
Move trait_impl completion analysis into CompletionContext
2022-06-03 19:49:02 +02:00
Lukas Wirth
2a60b8452e
Deduplicate
2022-06-03 16:33:37 +02:00
Lukas Wirth
522f66545f
Remove prev-sibling completion machinery
2022-06-03 16:25:37 +02:00
Lukas Wirth
6550a241fb
More precise where keyword completions
2022-06-03 16:11:26 +02:00
Lukas Wirth
c522669f00
Remove dead code
2022-06-03 15:46:17 +02:00
Lukas Wirth
c5dcc77b40
Fix visibility mods not being completed for field defs
2022-06-03 15:42:28 +02:00
Lukas Wirth
519ac81b57
internal: Move most remaining keyword completions to item list completions
2022-06-03 15:15:21 +02:00
Lukas Wirth
1234d8647f
minor: Remove unused code
2022-05-31 20:21:50 +02:00
Lukas Wirth
0327df224b
More precise completion filtering
2022-05-30 16:01:17 +02:00
Lukas Wirth
ea594c4c44
Use char for trigger character
2022-05-30 14:17:58 +02:00
yue4u
1b5f0462ed
fix: visibility completion
2022-05-30 00:06:48 +09:00
Lukas Wirth
86d1d9067e
fix: Insert whitespace into trait-impl completions when coming from macros
2022-05-24 22:56:33 +02:00
Lukas Wirth
6f006b7524
Simplify
2022-05-24 21:58:47 +02:00
Lukas Wirth
6a8b8a6039
internal: Refactor our record pat/expr handling in completion context
2022-05-24 13:24:36 +02:00
Lukas Wirth
697ade6f8d
internal: Simplify DotAccess representation in completions
2022-05-24 11:54:50 +02:00
Lukas Wirth
2aa22730f1
fix: Fix completions not working after attributes
2022-05-23 17:22:48 +02:00
Lukas Wirth
018975b041
fix: Fix incorrect expected type in completions for match arms
2022-05-19 12:33:25 +02:00
Lukas Wirth
3577c44dee
fix: Fix fill-arguments completions not working
2022-05-13 19:52:44 +02:00
Jonas Schievink
0831f3123b
Fix tests
2022-05-13 15:54:46 +02:00
Jonas Schievink
9bd11459ba
Revert "Auto merge of #12149 - jonas-schievink:literally-just-a-literal, r=jonas-schievink"
...
This reverts commit cc9ae2b89e
, reversing
changes made to 7dfd1cb572
.
2022-05-13 15:08:14 +02:00
bors
254bfdd2c3
Auto merge of #12204 - Veykril:completions, r=Veykril
...
internal: Move keyword expressions to expr completions module
2022-05-10 13:08:27 +00:00
Lukas Wirth
b2abe1bca1
Move keyword expressions to expr completions module
2022-05-10 15:00:58 +02:00
bors
4a4e9c0ae0
Auto merge of #12203 - Veykril:completions, r=Veykril
...
internal: Simplify
2022-05-10 12:36:46 +00:00
Lukas Wirth
40bb8006cd
Don't parse files in module completion
2022-05-10 14:31:43 +02:00
Lukas Wirth
26fef97d59
Simplify
2022-05-10 14:31:28 +02:00
Jonas Schievink
5a2398d775
Don't show assoc. type binding completions when invalid
2022-05-09 18:12:12 +02:00
Jonas Schievink
2156815f12
Make completion work too
2022-05-09 17:39:13 +02:00
bors
3d2d209638
Auto merge of #11983 - jhpratt:remove-rustc_deprecated, r=lnicola
...
Remove handling of `#[rustc_deprecated]`
This should be merged along with rust-lang/rust#95960 .
Because the attribute still exists in rustc, I've left the definition here. With that said, any use of it is an error, so I've removed any handling of `#[rustc_deprecated]`.
2022-05-09 08:33:18 +00:00
Lukas Wirth
a0fc649269
fix unreachable pub
2022-05-07 15:50:01 +02:00
Lukas Wirth
44c3cc100b
Merge the different identifier contexts into one enum
2022-05-07 15:06:59 +02:00
Lukas Wirth
99fa37d6e3
Split namelike into the corresponding completion contexts
2022-05-07 14:16:03 +02:00
Lukas Wirth
6a045c7029
Introduce NameRefContext
2022-05-07 13:46:43 +02:00
Lukas Wirth
1dc83f5a90
minor: Move inferred type completions
2022-05-07 12:59:26 +02:00
Lukas Wirth
0ce620686c
fix: Fix snippets triggering where they shouldn't
2022-05-06 15:44:41 +02:00
Lukas Wirth
582f99d293
internal: Improve completion tests by checking that the offset is included in the source_range of items
2022-05-06 13:11:50 +02:00
Lukas Wirth
57a9915c1f
internal: completion PathKind is not optional
2022-05-06 12:04:41 +02:00
bors
dd3f5e0993
Auto merge of #12168 - Veykril:completion-rev, r=Veykril
...
internal: Remove unqualified_path completions module
2022-05-05 20:22:30 +00:00