mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-15 01:17:27 +00:00
e5fb33a946
879: Fixes to goto definition r=vipentti a=vipentti Previously goto definition would fail when the cursor was over the name of the definition. Now we should properly resolve to a `NavigationTarget` when on top of the name of a definition. In addition this adds `name_range` field to `FileSymbol`, this further fixes goto_definition and symbol based navigation by allowing the `NavigationTarget` to actually have a `focus_range`, meaning instead of focusing on the start of the `full_range`, we can have the cursor focus on the name. e.g. goto definition ```rust fn bar() { fn foo() { } foo<|>(); } ``` Previously this would put the cursor at the start of the FN_DEF: ```rust fn bar() { <|>fn foo() { } foo(); } ``` Now when using the symbol based resolving, we'll have a proper focus range and instead put the cursor at the start of the name. ```rust fn bar() { fn <|>foo() { } foo(); } ``` This fixes #877 but doesn't contain the refactoring of the return type for `goto_definition` Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com> |
||
---|---|---|
.. | ||
gen_lsp_server | ||
ra_arena | ||
ra_assists | ||
ra_batch | ||
ra_cli | ||
ra_db | ||
ra_fmt | ||
ra_hir | ||
ra_ide_api | ||
ra_ide_api_light | ||
ra_lsp_server | ||
ra_mbe | ||
ra_parser | ||
ra_project_model | ||
ra_syntax | ||
ra_text_edit | ||
ra_tt | ||
test_utils | ||
thread_worker | ||
tools |