mod include; use std::sync::Arc; use lsp_types::{DocumentLink, DocumentLinkParams, Url}; use rowan::TextRange; use crate::LineIndexExt; use self::include::find_include_links; use super::FeatureRequest; pub fn find_document_links(request: FeatureRequest) -> Vec { let document = request.main_document(); let mut results = Vec::new(); find_include_links(&request, &mut results); results .into_iter() .map(|result| DocumentLink { range: document.line_index.line_col_lsp_range(result.range), target: Some(result.target.as_ref().clone()), tooltip: None, data: None, }) .collect() } #[derive(Debug, Clone)] struct LinkResult { range: TextRange, target: Arc, }