mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-27 10:17:15 +00:00
Fix scip crate symbol name
This commit is contained in:
parent
50172919a6
commit
a329b6ac2c
1 changed files with 17 additions and 5 deletions
|
|
@ -289,7 +289,10 @@ fn def_to_non_local_moniker(
|
||||||
definition: Definition,
|
definition: Definition,
|
||||||
from_crate: Crate,
|
from_crate: Crate,
|
||||||
) -> Option<Moniker> {
|
) -> Option<Moniker> {
|
||||||
let module = definition.module(db)?;
|
let module = match definition {
|
||||||
|
Definition::Module(module) if module.is_crate_root() => module,
|
||||||
|
_ => definition.module(db)?,
|
||||||
|
};
|
||||||
let krate = module.krate();
|
let krate = module.krate();
|
||||||
let edition = krate.edition(db);
|
let edition = krate.edition(db);
|
||||||
|
|
||||||
|
|
@ -322,12 +325,18 @@ fn def_to_non_local_moniker(
|
||||||
name: name.display(db, edition).to_string(),
|
name: name.display(db, edition).to_string(),
|
||||||
desc: def_to_kind(db, def).into(),
|
desc: def_to_kind(db, def).into(),
|
||||||
});
|
});
|
||||||
} else if reverse_description.is_empty() {
|
|
||||||
// Don't allow the last descriptor to be absent.
|
|
||||||
return None;
|
|
||||||
} else {
|
} else {
|
||||||
match def {
|
match def {
|
||||||
Definition::Module(module) if module.is_crate_root() => {}
|
Definition::Module(module) if module.is_crate_root() => {
|
||||||
|
// only include `crate` namespace by itself because we prefer
|
||||||
|
// `rust-analyzer cargo foo . bar/` over `rust-analyzer cargo foo . crate/bar/`
|
||||||
|
if reverse_description.is_empty() {
|
||||||
|
reverse_description.push(MonikerDescriptor {
|
||||||
|
name: "crate".to_owned(),
|
||||||
|
desc: MonikerDescriptorKind::Namespace,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
tracing::error!(?def, "Encountered enclosing definition with no name");
|
tracing::error!(?def, "Encountered enclosing definition with no name");
|
||||||
}
|
}
|
||||||
|
|
@ -340,6 +349,9 @@ fn def_to_non_local_moniker(
|
||||||
};
|
};
|
||||||
def = next_def;
|
def = next_def;
|
||||||
}
|
}
|
||||||
|
if reverse_description.is_empty() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
reverse_description.reverse();
|
reverse_description.reverse();
|
||||||
let description = reverse_description;
|
let description = reverse_description;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue