mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 06:11:35 +00:00
Remove confusing API
This commit is contained in:
parent
34072d53b6
commit
af7e300041
4 changed files with 32 additions and 27 deletions
|
@ -330,11 +330,12 @@ pub(crate) fn handle_workspace_symbol(
|
|||
fn exec_query(snap: &GlobalStateSnapshot, query: Query) -> Result<Vec<SymbolInformation>> {
|
||||
let mut res = Vec::new();
|
||||
for nav in snap.analysis.symbol_search(query)? {
|
||||
let container_name = nav.container_name().map(|v| v.to_string());
|
||||
let info = SymbolInformation {
|
||||
name: nav.name().to_string(),
|
||||
kind: to_proto::symbol_kind(nav.kind()),
|
||||
location: to_proto::location(snap, nav.file_range())?,
|
||||
container_name: nav.container_name().map(|v| v.to_string()),
|
||||
location: to_proto::location_from_nav(snap, nav)?,
|
||||
container_name,
|
||||
deprecated: None,
|
||||
};
|
||||
res.push(info);
|
||||
|
@ -1213,8 +1214,8 @@ fn show_impl_command_link(
|
|||
let position = to_proto::position(&line_index, position.offset);
|
||||
let locations: Vec<_> = nav_data
|
||||
.info
|
||||
.iter()
|
||||
.filter_map(|it| to_proto::location(snap, it.file_range()).ok())
|
||||
.into_iter()
|
||||
.filter_map(|nav| to_proto::location_from_nav(snap, nav).ok())
|
||||
.collect();
|
||||
let title = implementation_title(locations.len());
|
||||
let command = show_references_command(title, &uri, position, locations);
|
||||
|
|
|
@ -446,6 +446,18 @@ pub(crate) fn location(
|
|||
Ok(loc)
|
||||
}
|
||||
|
||||
/// Perefer using `location_link`, if the client has the cap.
|
||||
pub(crate) fn location_from_nav(
|
||||
snap: &GlobalStateSnapshot,
|
||||
nav: NavigationTarget,
|
||||
) -> Result<lsp_types::Location> {
|
||||
let url = url(snap, nav.file_id());
|
||||
let line_index = snap.analysis.file_line_index(nav.file_id())?;
|
||||
let range = range(&line_index, nav.full_range());
|
||||
let loc = lsp_types::Location::new(url, range);
|
||||
Ok(loc)
|
||||
}
|
||||
|
||||
pub(crate) fn location_link(
|
||||
snap: &GlobalStateSnapshot,
|
||||
src: Option<FileRange>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue