mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Merge pull request #183954 from microsoft/joh/overwhelming-tuna
joh/overwhelming tuna
This commit is contained in:
commit
070168f694
|
@ -4134,6 +4134,10 @@ export interface ISuggestOptions {
|
||||||
* Enable graceful matching. Defaults to true.
|
* Enable graceful matching. Defaults to true.
|
||||||
*/
|
*/
|
||||||
filterGraceful?: boolean;
|
filterGraceful?: boolean;
|
||||||
|
/**
|
||||||
|
* Prevent quick suggestions when a snippet is active. Defaults to true.
|
||||||
|
*/
|
||||||
|
snippetsPreventQuickSuggestions?: boolean;
|
||||||
/**
|
/**
|
||||||
* Favors words that appear close to the cursor.
|
* Favors words that appear close to the cursor.
|
||||||
*/
|
*/
|
||||||
|
@ -4295,6 +4299,7 @@ class EditorSuggest extends BaseEditorOption<EditorOption.suggest, ISuggestOptio
|
||||||
const defaults: InternalSuggestOptions = {
|
const defaults: InternalSuggestOptions = {
|
||||||
insertMode: 'insert',
|
insertMode: 'insert',
|
||||||
filterGraceful: true,
|
filterGraceful: true,
|
||||||
|
snippetsPreventQuickSuggestions: false,
|
||||||
localityBonus: false,
|
localityBonus: false,
|
||||||
shareSuggestSelections: false,
|
shareSuggestSelections: false,
|
||||||
selectionMode: 'always',
|
selectionMode: 'always',
|
||||||
|
@ -4373,6 +4378,11 @@ class EditorSuggest extends BaseEditorOption<EditorOption.suggest, ISuggestOptio
|
||||||
default: defaults.selectionMode,
|
default: defaults.selectionMode,
|
||||||
markdownDescription: nls.localize('suggest.selectionMode', "Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")
|
markdownDescription: nls.localize('suggest.selectionMode', "Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")
|
||||||
},
|
},
|
||||||
|
'editor.suggest.snippetsPreventQuickSuggestions': {
|
||||||
|
type: 'boolean',
|
||||||
|
default: defaults.snippetsPreventQuickSuggestions,
|
||||||
|
description: nls.localize('suggest.snippetsPreventQuickSuggestions', "Controls whether an active snippet prevents quick suggestions.")
|
||||||
|
},
|
||||||
'editor.suggest.showIcons': {
|
'editor.suggest.showIcons': {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: defaults.showIcons,
|
default: defaults.showIcons,
|
||||||
|
@ -4563,6 +4573,7 @@ class EditorSuggest extends BaseEditorOption<EditorOption.suggest, ISuggestOptio
|
||||||
return {
|
return {
|
||||||
insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, ['insert', 'replace']),
|
insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, ['insert', 'replace']),
|
||||||
filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),
|
filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),
|
||||||
|
snippetsPreventQuickSuggestions: boolean(input.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),
|
||||||
localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),
|
localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),
|
||||||
shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),
|
shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),
|
||||||
selectionMode: stringSet(input.selectionMode, this.defaultValue.selectionMode, ['always', 'never', 'whenQuickSuggestion', 'whenTriggerCharacter']),
|
selectionMode: stringSet(input.selectionMode, this.defaultValue.selectionMode, ['always', 'never', 'whenQuickSuggestion', 'whenTriggerCharacter']),
|
||||||
|
|
|
@ -246,9 +246,8 @@ export class SuggestController implements IEditorContribution {
|
||||||
|
|
||||||
let noFocus = false;
|
let noFocus = false;
|
||||||
if (e.triggerOptions.auto) {
|
if (e.triggerOptions.auto) {
|
||||||
// don't "focus" item when configured to do so or when in snippet mode (and configured to do so)
|
// don't "focus" item when configured to do
|
||||||
const options = this.editor.getOption(EditorOption.suggest);
|
const options = this.editor.getOption(EditorOption.suggest);
|
||||||
|
|
||||||
if (options.selectionMode === 'never' || options.selectionMode === 'always') {
|
if (options.selectionMode === 'never' || options.selectionMode === 'always') {
|
||||||
// simple: always or never
|
// simple: always or never
|
||||||
noFocus = options.selectionMode === 'never';
|
noFocus = options.selectionMode === 'never';
|
||||||
|
@ -777,7 +776,7 @@ registerEditorCommand(new SuggestCommand({
|
||||||
kbOpts: [{
|
kbOpts: [{
|
||||||
// normal tab
|
// normal tab
|
||||||
primary: KeyCode.Tab,
|
primary: KeyCode.Tab,
|
||||||
kbExpr: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus, SnippetController2.InSnippetMode.toNegated()),
|
kbExpr: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus),
|
||||||
weight,
|
weight,
|
||||||
}, {
|
}, {
|
||||||
// accept on enter has special rules
|
// accept on enter has special rules
|
||||||
|
@ -811,7 +810,7 @@ registerEditorCommand(new SuggestCommand({
|
||||||
precondition: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus, SuggestContext.HasFocusedSuggestion),
|
precondition: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus, SuggestContext.HasFocusedSuggestion),
|
||||||
kbOpts: {
|
kbOpts: {
|
||||||
weight: weight,
|
weight: weight,
|
||||||
kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, SnippetController2.InSnippetMode.toNegated()),
|
kbExpr: EditorContextKeys.textInputFocus,
|
||||||
primary: KeyMod.Shift | KeyCode.Enter,
|
primary: KeyMod.Shift | KeyCode.Enter,
|
||||||
secondary: [KeyMod.Shift | KeyCode.Tab],
|
secondary: [KeyMod.Shift | KeyCode.Tab],
|
||||||
},
|
},
|
||||||
|
|
|
@ -35,6 +35,7 @@ suite('CompletionModel', function () {
|
||||||
|
|
||||||
const defaultOptions = <InternalSuggestOptions>{
|
const defaultOptions = <InternalSuggestOptions>{
|
||||||
insertMode: 'insert',
|
insertMode: 'insert',
|
||||||
|
snippetsPreventQuickSuggestions: true,
|
||||||
filterGraceful: true,
|
filterGraceful: true,
|
||||||
localityBonus: false,
|
localityBonus: false,
|
||||||
shareSuggestSelections: false,
|
shareSuggestSelections: false,
|
||||||
|
|
4
src/vs/monaco.d.ts
vendored
4
src/vs/monaco.d.ts
vendored
|
@ -4543,6 +4543,10 @@ declare namespace monaco.editor {
|
||||||
* Enable graceful matching. Defaults to true.
|
* Enable graceful matching. Defaults to true.
|
||||||
*/
|
*/
|
||||||
filterGraceful?: boolean;
|
filterGraceful?: boolean;
|
||||||
|
/**
|
||||||
|
* Prevent quick suggestions when a snippet is active. Defaults to true.
|
||||||
|
*/
|
||||||
|
snippetsPreventQuickSuggestions?: boolean;
|
||||||
/**
|
/**
|
||||||
* Favors words that appear close to the cursor.
|
* Favors words that appear close to the cursor.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue