diff options
Diffstat (limited to 'support/texlab/crates/links/src/include.rs')
-rw-r--r-- | support/texlab/crates/links/src/include.rs | 18 |
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 = ¶ms.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)); } } } |