diff options
Diffstat (limited to 'support/texlab/crates/texlab/src/features/hover.rs')
-rw-r--r-- | support/texlab/crates/texlab/src/features/hover.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/support/texlab/crates/texlab/src/features/hover.rs b/support/texlab/crates/texlab/src/features/hover.rs index bde71261c3..1aac645488 100644 --- a/support/texlab/crates/texlab/src/features/hover.rs +++ b/support/texlab/crates/texlab/src/features/hover.rs @@ -1,17 +1,14 @@ -use base_db::Workspace; +use base_db::{FeatureParams, Workspace}; use hover::{HoverData, HoverParams}; use crate::util::line_index_ext::LineIndexExt; -pub fn find( - workspace: &Workspace, - uri: &lsp_types::Url, - position: lsp_types::Position, -) -> Option<lsp_types::Hover> { - let document = workspace.lookup(uri)?; - let offset = document.line_index.offset_lsp(position); - let params = HoverParams::new(workspace, document, offset); - let hover = ::hover::find(¶ms)?; +pub fn find(workspace: &Workspace, params: lsp_types::HoverParams) -> Option<lsp_types::Hover> { + let uri_and_pos = ¶ms.text_document_position_params; + let document = workspace.lookup(&uri_and_pos.text_document.uri)?; + let feature = FeatureParams::new(workspace, document); + let offset = document.line_index.offset_lsp(uri_and_pos.position)?; + let hover = ::hover::find(HoverParams { feature, offset })?; let contents = match hover.data { HoverData::Citation(text) => lsp_types::MarkupContent { @@ -42,6 +39,6 @@ pub fn find( Some(lsp_types::Hover { contents: lsp_types::HoverContents::Markup(contents), - range: Some(document.line_index.line_col_lsp_range(hover.range)), + range: document.line_index.line_col_lsp_range(hover.range), }) } |