feat: make join lines behavior configurable

closes #9492
This commit is contained in:
Aleksey Kladov
2021-07-05 23:31:44 +03:00
parent 91bfa4b154
commit b8a6ea5ab5
6 changed files with 171 additions and 84 deletions

View File

@@ -233,12 +233,15 @@ pub(crate) fn handle_join_lines(
params: lsp_ext::JoinLinesParams,
) -> Result<Vec<lsp_types::TextEdit>> {
let _p = profile::span("handle_join_lines");
let config = snap.config.join_lines();
let file_id = from_proto::file_id(&snap, &params.text_document.uri)?;
let line_index = snap.file_line_index(file_id)?;
let mut res = TextEdit::default();
for range in params.ranges {
let range = from_proto::text_range(&line_index, range);
let edit = snap.analysis.join_lines(FileRange { file_id, range })?;
let edit = snap.analysis.join_lines(&config, FileRange { file_id, range })?;
match res.union(edit) {
Ok(()) => (),
Err(_edit) => {
@@ -246,8 +249,8 @@ pub(crate) fn handle_join_lines(
}
}
}
let res = to_proto::text_edit_vec(&line_index, res);
Ok(res)
Ok(to_proto::text_edit_vec(&line_index, res))
}
pub(crate) fn handle_on_enter(