summaryrefslogtreecommitdiff
path: root/support/texlab/crates/texlab/src/features/link.rs
blob: 5b4de5f70519e606d37e0c3b0419a8344be040c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use base_db::Workspace;

use crate::util::{from_proto, to_proto};

pub fn find_all(
    workspace: &Workspace,
    params: lsp_types::DocumentLinkParams,
) -> Option<Vec<lsp_types::DocumentLink>> {
    let params = from_proto::feature_params(workspace, params.text_document)?;
    let links = links::find_links(&params)
        .into_iter()
        .filter_map(|link| to_proto::document_link(link, &params.document.line_index))
        .collect();

    Some(links)
}