rust-analyzer/crates/ide-completion/src
bors 15ff8a5a9f Auto merge of #13715 - feniljain:fix_completions, r=jonas-schievink
fix: breaking snippets on typed incomplete suggestions

Possible fix for #7929

Fix the case where if a user types `&&42.o`, snippet completion was still applying &&Ok(42). Note this was fixed previously on `&&42.` but this still remained a problem for this case

Previous relevant PR: #13517

### Points to help in review:

- The main problem why everything broke on adding an extra `o` was, earlier `dot_receiver` was `42.` which was a `LITERAL` but now `42.o` becomes a `FIELD_EXPR`

- Till now `include_references` was just checking for parent of `LITERAL` and if it was a `REF_EXPR`, but now we consider `FIELD_EXPR` and traverse all of them, finally to reach `REF_EXPR`. If `REF_EXPR` is not found we  just return the original `initial_element`

- We are constructing a new node during `include_references` because if we rely on `dot_receiver` solely we would get `&&42.o` to be replaced with, but we want `&&42` to be replaced with

### Output Video:

https://user-images.githubusercontent.com/49019259/205420166-efbdef78-5b3a-4aef-ab4b-d892dac056a0.mov

Hope everything I wrote makes sense 😅

Also interestingly previous PR's number was `13517` and this PR's number is `13715`, nicee
2022-12-12 14:37:45 +00:00
..
completions fix: breaking snippets on typed incomplete suggestions 2022-12-03 08:43:13 +05:30
context fix: Fix item completions not working properly after unit structs and outline modules 2022-11-08 08:37:45 +01:00
render fix: Fix reference autocompletions using incorrect offsets in macro inputs 2022-08-23 14:29:59 +02:00
tests fix: also exclude 2 coloncolon in a row 2022-11-27 02:39:38 +09:00
completions.rs Add stub for cargo environment variables auto completion 2022-10-06 16:32:19 +02:00
config.rs Restructure find_path into a separate functions for modules and non-module items 2022-09-13 15:15:27 +02:00
context.rs fix: also exclude 2 coloncolon in a row 2022-11-27 02:39:38 +09:00
item.rs Record derive helper attributes, resolve them in IDE layer 2022-07-26 09:26:51 +02:00
lib.rs fix: filter unnecessary completions after colon 2022-11-12 22:33:40 +09:00
render.rs fix: Fix reference autocompletions using incorrect offsets in macro inputs 2022-08-23 14:29:59 +02:00
snippet.rs Restructure find_path into a separate functions for modules and non-module items 2022-09-13 15:15:27 +02:00
tests.rs Restructure find_path into a separate functions for modules and non-module items 2022-09-13 15:15:27 +02:00