Fix clipping when using label-only completions
This commit is contained in:
parent
ba009724dd
commit
fe8e06e781
1 changed files with 15 additions and 11 deletions
|
@ -2373,13 +2373,6 @@ impl Project {
|
||||||
};
|
};
|
||||||
|
|
||||||
cx.spawn(|_, cx| async move {
|
cx.spawn(|_, cx| async move {
|
||||||
let clipped_position = source_buffer_handle
|
|
||||||
.read_with(&cx, |this, _| this.clip_point_utf16(position, Bias::Left));
|
|
||||||
if clipped_position != position {
|
|
||||||
log::info!("Completion position out of date");
|
|
||||||
return Ok(Default::default());
|
|
||||||
}
|
|
||||||
|
|
||||||
let completions = lang_server
|
let completions = lang_server
|
||||||
.request::<lsp::request::Completion>(lsp::CompletionParams {
|
.request::<lsp::request::Completion>(lsp::CompletionParams {
|
||||||
text_document_position: lsp::TextDocumentPositionParams::new(
|
text_document_position: lsp::TextDocumentPositionParams::new(
|
||||||
|
@ -2412,10 +2405,21 @@ impl Project {
|
||||||
Some(lsp::CompletionTextEdit::Edit(edit)) => {
|
Some(lsp::CompletionTextEdit::Edit(edit)) => {
|
||||||
(range_from_lsp(edit.range), edit.new_text.clone())
|
(range_from_lsp(edit.range), edit.new_text.clone())
|
||||||
}
|
}
|
||||||
None => (
|
None => {
|
||||||
this.common_prefix_at(position, &lsp_completion.label),
|
let clipped_position =
|
||||||
lsp_completion.label.clone(),
|
this.clip_point_utf16(position, Bias::Left);
|
||||||
),
|
if position != clipped_position {
|
||||||
|
log::info!("completion out of expected range");
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
(
|
||||||
|
this.common_prefix_at(
|
||||||
|
clipped_position,
|
||||||
|
&lsp_completion.label,
|
||||||
|
),
|
||||||
|
lsp_completion.label.clone(),
|
||||||
|
)
|
||||||
|
}
|
||||||
Some(lsp::CompletionTextEdit::InsertAndReplace(_)) => {
|
Some(lsp::CompletionTextEdit::InsertAndReplace(_)) => {
|
||||||
log::info!("unsupported insert/replace completion");
|
log::info!("unsupported insert/replace completion");
|
||||||
return None;
|
return None;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue