Merge pull request #668 from zed-industries/no-lsp-when-following

Avoid making LSP requests when moving cursor due to following
This commit is contained in:
Max Brunsfeld 2022-03-23 11:54:45 -07:00 committed by GitHub
commit 8f7966bf35
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5064,37 +5064,40 @@ impl Editor {
cx, cx,
); );
let completion_menu = match self.context_menu.as_mut() { if local {
Some(ContextMenu::Completions(menu)) => Some(menu), let completion_menu = match self.context_menu.as_mut() {
_ => { Some(ContextMenu::Completions(menu)) => Some(menu),
self.context_menu.take(); _ => {
None self.context_menu.take();
} None
}; }
};
if let Some(completion_menu) = completion_menu { if let Some(completion_menu) = completion_menu {
let cursor_position = new_cursor_position.to_offset(&buffer); let cursor_position = new_cursor_position.to_offset(&buffer);
let (word_range, kind) = let (word_range, kind) =
buffer.surrounding_word(completion_menu.initial_position.clone()); buffer.surrounding_word(completion_menu.initial_position.clone());
if kind == Some(CharKind::Word) && word_range.to_inclusive().contains(&cursor_position) if kind == Some(CharKind::Word)
&& word_range.to_inclusive().contains(&cursor_position)
{
let query = Self::completion_query(&buffer, cursor_position);
cx.background()
.block(completion_menu.filter(query.as_deref(), cx.background().clone()));
self.show_completions(&ShowCompletions, cx);
} else {
self.hide_context_menu(cx);
}
}
if old_cursor_position.to_display_point(&display_map).row()
!= new_cursor_position.to_display_point(&display_map).row()
{ {
let query = Self::completion_query(&buffer, cursor_position); self.available_code_actions.take();
cx.background()
.block(completion_menu.filter(query.as_deref(), cx.background().clone()));
self.show_completions(&ShowCompletions, cx);
} else {
self.hide_context_menu(cx);
} }
self.refresh_code_actions(cx);
self.refresh_document_highlights(cx);
} }
if old_cursor_position.to_display_point(&display_map).row()
!= new_cursor_position.to_display_point(&display_map).row()
{
self.available_code_actions.take();
}
self.refresh_code_actions(cx);
self.refresh_document_highlights(cx);
self.pause_cursor_blinking(cx); self.pause_cursor_blinking(cx);
cx.emit(Event::SelectionsChanged { local }); cx.emit(Event::SelectionsChanged { local });
} }