summaryrefslogtreecommitdiff
path: root/support/texlab/crates/texlab/src/features/rename.rs
blob: b905a7105b21ff5d9d9f612291efee28d59b1a69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use base_db::Workspace;

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

pub fn prepare_rename_all(
    workspace: &Workspace,
    params: lsp_types::TextDocumentPositionParams,
) -> Option<lsp_types::Range> {
    let params = from_proto::rename_params(workspace, params)?;
    let range = rename::prepare_rename(&params)?;
    params.feature.document.line_index.line_col_lsp_range(range)
}

pub fn rename_all(
    workspace: &Workspace,
    params: lsp_types::RenameParams,
) -> Option<lsp_types::WorkspaceEdit> {
    let new_name = &params.new_name;
    let params = from_proto::rename_params(workspace, params.text_document_position)?;
    let result = rename::rename(params);
    Some(to_proto::workspace_edit(result, &new_name))
}