texlab/
features.rs

1mod build;
2mod completion;
3mod cursor;
4mod definition;
5mod execute_command;
6mod folding;
7mod formatting;
8mod forward_search;
9mod highlight;
10mod hover;
11mod inlay_hint;
12mod link;
13mod lsp_kinds;
14mod reference;
15mod rename;
16mod symbol;
17
18use std::sync::Arc;
19
20use lsp_types::Url;
21
22use crate::{Document, Workspace};
23
24pub use self::{
25    build::{BuildEngine, BuildParams, BuildResult, BuildStatus},
26    completion::{complete, CompletionItemData, COMPLETION_LIMIT},
27    definition::goto_definition,
28    execute_command::execute_command,
29    folding::find_foldings,
30    formatting::format_source_code,
31    forward_search::{ForwardSearch, ForwardSearchResult, ForwardSearchStatus},
32    highlight::find_document_highlights,
33    hover::find_hover,
34    inlay_hint::find_inlay_hints,
35    link::find_document_links,
36    reference::find_all_references,
37    rename::{prepare_rename_all, rename_all},
38    symbol::{find_document_symbols, find_workspace_symbols},
39};
40
41#[derive(Clone)]
42pub struct FeatureRequest<P> {
43    pub params: P,
44    pub workspace: Workspace,
45    pub uri: Arc<Url>,
46}
47
48impl<P> FeatureRequest<P> {
49    pub fn main_document(&self) -> Document {
50        self.workspace.get(&self.uri).unwrap()
51    }
52}