blob: f0c9d147fb48c7636c1b5f3505e488798997d8a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
use crate::{
db::{dependency_graph, Document, Workspace},
Db,
};
use super::LinkBuilder;
pub(super) fn find_links(db: &dyn Db, document: Document, builder: &mut LinkBuilder) -> Option<()> {
let workspace = Workspace::get(db);
let parent = workspace
.parents(db, document)
.iter()
.next()
.copied()
.unwrap_or(document);
let graph = dependency_graph(db, parent);
for edge in graph.edges.iter().filter(|edge| edge.source == document) {
if let Some(origin) = edge.origin {
builder.push(origin.link.range(db), edge.target);
}
}
Some(())
}
|