summaryrefslogtreecommitdiff
path: root/support/texlab/crates/links/src/include.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/crates/links/src/include.rs')
-rw-r--r--support/texlab/crates/links/src/include.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/support/texlab/crates/links/src/include.rs b/support/texlab/crates/links/src/include.rs
index 1392b16eaa..2a049d0b14 100644
--- a/support/texlab/crates/links/src/include.rs
+++ b/support/texlab/crates/links/src/include.rs
@@ -1,23 +1,25 @@
-use base_db::{DocumentLocation, FeatureParams};
+use base_db::{
+ deps::{self, EdgeData},
+ DocumentLocation, FeatureParams,
+};
pub(super) fn find_links<'a>(
params: &FeatureParams<'a>,
results: &mut Vec<DocumentLocation<'a>>,
) -> Option<()> {
let document = params.document;
- let parent = *params
- .workspace
- .parents(document)
+ let parent = *deps::parents(params.workspace, document)
.iter()
.next()
.unwrap_or(&document);
- let graph = base_db::graph::Graph::new(params.workspace, parent);
+ let graph = &params.workspace.graphs()[&parent.uri];
for edge in &graph.edges {
- if edge.source == document {
- if let Some(weight) = &edge.weight {
- results.push(DocumentLocation::new(edge.target, weight.link.path.range));
+ if edge.source == document.uri {
+ if let EdgeData::DirectLink(data) = &edge.data {
+ let target = params.workspace.lookup(&edge.target).unwrap();
+ results.push(DocumentLocation::new(target, data.link.path.range));
}
}
}