mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-29 09:43:49 +01:00
Fix #52887 - aggressive keybinding takes over enter key in settings.json
This commit is contained in:
@@ -33,7 +33,7 @@ import { SearchWidget, SettingsTarget, SettingsTargetsWidget } from 'vs/workbenc
|
||||
import { commonlyUsedData, tocData } from 'vs/workbench/parts/preferences/browser/settingsLayout';
|
||||
import { ISettingsEditorViewState, NonExpandableTree, resolveExtensionsSettings, resolveSettingsTree, SearchResultIdx, SearchResultModel, SettingsAccessibilityProvider, SettingsDataSource, SettingsRenderer, SettingsTreeController, SettingsTreeElement, SettingsTreeFilter, SettingsTreeGroupElement, SettingsTreeModel, SettingsTreeSettingElement } from 'vs/workbench/parts/preferences/browser/settingsTree';
|
||||
import { TOCDataSource, TOCRenderer, TOCTreeModel } from 'vs/workbench/parts/preferences/browser/tocTree';
|
||||
import { CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_FIRST_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, IPreferencesSearchService, ISearchProvider } from 'vs/workbench/parts/preferences/common/preferences';
|
||||
import { CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_FIRST_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, IPreferencesSearchService, ISearchProvider, CONTEXT_SETTINGS_ROW_FOCUS } from 'vs/workbench/parts/preferences/common/preferences';
|
||||
import { IPreferencesService, ISearchResult, ISettingsEditorModel } from 'vs/workbench/services/preferences/common/preferences';
|
||||
import { SettingsEditor2Input } from 'vs/workbench/services/preferences/common/preferencesEditorInput';
|
||||
import { DefaultSettingsEditorModel } from 'vs/workbench/services/preferences/common/preferencesModels';
|
||||
@@ -76,6 +76,7 @@ export class SettingsEditor2 extends BaseEditor {
|
||||
private searchResultModel: SearchResultModel;
|
||||
|
||||
private firstRowFocused: IContextKey<boolean>;
|
||||
private rowFocused: IContextKey<boolean>;
|
||||
private inSettingsEditorContextKey: IContextKey<boolean>;
|
||||
private searchFocusContextKey: IContextKey<boolean>;
|
||||
|
||||
@@ -101,6 +102,7 @@ export class SettingsEditor2 extends BaseEditor {
|
||||
this.inSettingsEditorContextKey = CONTEXT_SETTINGS_EDITOR.bindTo(contextKeyService);
|
||||
this.searchFocusContextKey = CONTEXT_SETTINGS_SEARCH_FOCUS.bindTo(contextKeyService);
|
||||
this.firstRowFocused = CONTEXT_SETTINGS_FIRST_ROW_FOCUS.bindTo(contextKeyService);
|
||||
this.rowFocused = CONTEXT_SETTINGS_ROW_FOCUS.bindTo(contextKeyService);
|
||||
|
||||
this._register(configurationService.onDidChangeConfiguration(e => {
|
||||
this.onConfigUpdate();
|
||||
@@ -359,12 +361,19 @@ export class SettingsEditor2 extends BaseEditor {
|
||||
this.selectedElement = e.focus;
|
||||
}));
|
||||
|
||||
this._register(this.settingsTree.onDidBlur(() => {
|
||||
this.rowFocused.set(false);
|
||||
this.firstRowFocused.set(false);
|
||||
}));
|
||||
|
||||
this._register(this.settingsTree.onDidChangeSelection(e => {
|
||||
this.updateTreeScrollSync();
|
||||
|
||||
let firstRowFocused = false;
|
||||
let rowFocused = false;
|
||||
const selection: SettingsTreeElement = e.selection[0];
|
||||
if (selection) {
|
||||
rowFocused = true;
|
||||
if (this.searchResultModel) {
|
||||
firstRowFocused = selection.id === this.searchResultModel.getChildren()[0].id;
|
||||
} else {
|
||||
@@ -373,6 +382,7 @@ export class SettingsEditor2 extends BaseEditor {
|
||||
}
|
||||
}
|
||||
|
||||
this.rowFocused.set(rowFocused);
|
||||
this.firstRowFocused.set(firstRowFocused);
|
||||
}));
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ export interface IKeybindingsEditor extends IEditor {
|
||||
export const CONTEXT_SETTINGS_EDITOR = new RawContextKey<boolean>('inSettingsEditor', false);
|
||||
export const CONTEXT_SETTINGS_SEARCH_FOCUS = new RawContextKey<boolean>('inSettingsSearch', false);
|
||||
export const CONTEXT_SETTINGS_FIRST_ROW_FOCUS = new RawContextKey<boolean>('firstSettingRowFocused', false);
|
||||
export const CONTEXT_SETTINGS_ROW_FOCUS = new RawContextKey<boolean>('settingRowFocused', false);
|
||||
export const CONTEXT_KEYBINDINGS_EDITOR = new RawContextKey<boolean>('inKeybindings', false);
|
||||
export const CONTEXT_KEYBINDINGS_SEARCH_FOCUS = new RawContextKey<boolean>('inKeybindingsSearch', false);
|
||||
export const CONTEXT_KEYBINDING_FOCUS = new RawContextKey<boolean>('keybindingFocus', false);
|
||||
|
||||
@@ -22,7 +22,7 @@ import { KeybindingsEditor } from 'vs/workbench/parts/preferences/browser/keybin
|
||||
import { OpenRawDefaultSettingsAction, OpenSettingsAction, OpenGlobalSettingsAction, OpenGlobalKeybindingsFileAction, OpenWorkspaceSettingsAction, OpenFolderSettingsAction, ConfigureLanguageBasedSettingsAction, OPEN_FOLDER_SETTINGS_COMMAND, OpenGlobalKeybindingsAction, OpenSettings2Action } from 'vs/workbench/parts/preferences/browser/preferencesActions';
|
||||
import {
|
||||
IKeybindingsEditor, IPreferencesSearchService, CONTEXT_KEYBINDING_FOCUS, CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_SEARCH,
|
||||
KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SEARCH, CONTEXT_SETTINGS_EDITOR, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_SEARCH_FROM_SETTINGS, SETTINGS_EDITOR_COMMAND_FOCUS_SETTINGS_FROM_SEARCH, CONTEXT_SETTINGS_FIRST_ROW_FOCUS
|
||||
KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SEARCH, CONTEXT_SETTINGS_EDITOR, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_SEARCH_FROM_SETTINGS, SETTINGS_EDITOR_COMMAND_FOCUS_SETTINGS_FROM_SEARCH, CONTEXT_SETTINGS_FIRST_ROW_FOCUS, CONTEXT_SETTINGS_ROW_FOCUS
|
||||
} from 'vs/workbench/parts/preferences/common/preferences';
|
||||
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
|
||||
@@ -346,7 +346,6 @@ class StartSearchDefaultSettingsCommand extends SettingsCommand {
|
||||
preferencesEditor.focusSearch();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const startSearchCommand = new StartSearchDefaultSettingsCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_SEARCH,
|
||||
@@ -363,7 +362,6 @@ class FocusSearchFromSettingsCommand extends SettingsCommand {
|
||||
preferencesEditor.focusSearch();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const focusSearchFromSettingsCommand = new FocusSearchFromSettingsCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_FOCUS_SEARCH_FROM_SETTINGS,
|
||||
@@ -381,7 +379,6 @@ class ClearSearchResultsCommand extends SettingsCommand {
|
||||
preferencesEditor.clearSearchResults();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const clearSearchResultsCommand = new ClearSearchResultsCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS,
|
||||
@@ -423,7 +420,6 @@ class FocusNextSearchResultCommand extends SettingsCommand {
|
||||
preferencesEditor.focusNextResult();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const focusNextSearchResultCommand = new FocusNextSearchResultCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING,
|
||||
@@ -440,7 +436,6 @@ class FocusPreviousSearchResultCommand extends SettingsCommand {
|
||||
preferencesEditor.focusPreviousResult();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const focusPreviousSearchResultCommand = new FocusPreviousSearchResultCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING,
|
||||
@@ -457,7 +452,6 @@ class EditFocusedSettingCommand extends SettingsCommand {
|
||||
preferencesEditor.editFocusedPreference();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
const editFocusedSettingCommand = new EditFocusedSettingCommand({
|
||||
id: SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING,
|
||||
@@ -474,12 +468,11 @@ class EditFocusedSettingCommand2 extends SettingsCommand {
|
||||
preferencesEditor.editSelectedSetting();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const editFocusedSettingCommand2 = new EditFocusedSettingCommand2({
|
||||
id: SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING,
|
||||
precondition: CONTEXT_SETTINGS_EDITOR,
|
||||
precondition: ContextKeyExpr.and(CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_ROW_FOCUS),
|
||||
kbOpts: { primary: KeyCode.Enter }
|
||||
});
|
||||
KeybindingsRegistry.registerCommandAndKeybindingRule(editFocusedSettingCommand2.toCommandAndKeybindingRule(KeybindingsRegistry.WEIGHT.workbenchContrib()));
|
||||
|
||||
Reference in New Issue
Block a user