diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 577374b2a5..a8c8d248df 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -354,8 +354,8 @@ { "context": "vim_mode == insert && !(showing_code_actions || showing_completions)", "bindings": { - "ctrl-p": "editor::ShowCompletions", - "ctrl-n": "editor::ShowCompletions" + "ctrl-p": "editor::ShowWordCompletions", + "ctrl-n": "editor::ShowWordCompletions" } }, { diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 24103c4995..5299e6c9d4 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -4377,7 +4377,7 @@ impl Editor { ); let words = match completion_settings.words { - WordsCompletionMode::Disabled => Task::ready(HashMap::default()), + WordsCompletionMode::Disabled => Task::ready(BTreeMap::default()), WordsCompletionMode::Enabled | WordsCompletionMode::Fallback => cx .background_spawn(async move { buffer_snapshot.words_in_range(WordsQuery { @@ -4404,7 +4404,7 @@ impl Editor { let sort_completions = provider .as_ref() - .map_or(true, |provider| provider.sort_completions()); + .map_or(false, |provider| provider.sort_completions()); let filter_completions = provider .as_ref() @@ -4421,7 +4421,7 @@ impl Editor { if let Some(provided_completions) = provided_completions.await.log_err().flatten() { completions.extend(provided_completions); if completion_settings.words == WordsCompletionMode::Fallback { - words = Task::ready(HashMap::default()); + words = Task::ready(BTreeMap::default()); } } diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index f0d3a44687..51ce39f07d 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -4120,10 +4120,10 @@ impl BufferSnapshot { } } - pub fn words_in_range(&self, query: WordsQuery) -> HashMap> { + pub fn words_in_range(&self, query: WordsQuery) -> BTreeMap> { let query_str = query.fuzzy_contents; if query_str.map_or(false, |query| query.is_empty()) { - return HashMap::default(); + return BTreeMap::default(); } let classifier = CharClassifier::new(self.language.clone().map(|language| LanguageScope { @@ -4135,7 +4135,7 @@ impl BufferSnapshot { let query_chars = query_str.map(|query| query.chars().collect::>()); let query_len = query_chars.as_ref().map_or(0, |query| query.len()); - let mut words = HashMap::default(); + let mut words = BTreeMap::default(); let mut current_word_start_ix = None; let mut chunk_ix = query.range.start; for chunk in self.chunks(query.range, false) {