preferences.ts 6.3 KB
Newer Older
1 2 3 4 5
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

S
Sandeep Somavarapu 已提交
6 7
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
S
Sandeep Somavarapu 已提交
8
import { ISettingsEditorModel, ISearchResult } from 'vs/workbench/services/preferences/common/preferences';
9
import { IEditor } from 'vs/workbench/common/editor';
S
Sandeep Somavarapu 已提交
10
import { IKeybindingItemEntry } from 'vs/workbench/services/preferences/common/keybindingsEditorModel';
11
import { CancellationToken } from 'vs/base/common/cancellation';
12
import { Event } from 'vs/base/common/event';
S
Sandeep Somavarapu 已提交
13

14 15 16 17
export interface IWorkbenchSettingsConfiguration {
	workbench: {
		settings: {
			openDefaultSettings: boolean;
18 19 20
			naturalLanguageSearchEndpoint: string;
			naturalLanguageSearchKey: string;
			naturalLanguageSearchAutoIngestFeedback: boolean;
21
			useNaturalLanguageSearchPost: boolean;
22
			enableNaturalLanguageSearch: boolean;
23
			enableNaturalLanguageSearchFeedback: boolean;
24 25 26 27
		}
	};
}

S
Sandeep Somavarapu 已提交
28 29 30
export interface IEndpointDetails {
	urlBase: string;
	key?: string;
S
Sandeep Somavarapu 已提交
31
}
32

S
Sandeep Somavarapu 已提交
33
export const IPreferencesSearchService = createDecorator<IPreferencesSearchService>('preferencesSearchService');
34

S
Sandeep Somavarapu 已提交
35
export interface IPreferencesSearchService {
36 37
	_serviceBrand: any;

S
Sandeep Somavarapu 已提交
38
	getLocalSearchProvider(filter: string): ISearchProvider;
39
	getRemoteSearchProvider(filter: string, newExtensionsOnly?: boolean): ISearchProvider | undefined;
S
Sandeep Somavarapu 已提交
40 41
}

S
Sandeep Somavarapu 已提交
42
export interface ISearchProvider {
43
	searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise<ISearchResult | null>;
S
Sandeep Somavarapu 已提交
44
}
45

S
Sandeep Somavarapu 已提交
46 47
export interface IKeybindingsEditor extends IEditor {

48
	readonly activeKeybindingEntry: IKeybindingItemEntry | null;
49
	readonly onDefineWhenExpression: Event<IKeybindingItemEntry>;
S
Sandeep Somavarapu 已提交
50
	readonly onLayout: Event<void>;
S
Sandeep Somavarapu 已提交
51 52

	search(filter: string): void;
S
Sandeep Somavarapu 已提交
53
	focusSearch(): void;
S
Sandeep Somavarapu 已提交
54
	clearSearchResults(): void;
S
Sandeep Somavarapu 已提交
55
	focusKeybindings(): void;
S
Sandeep Somavarapu 已提交
56 57
	recordSearchKeys(): void;
	toggleSortByPrecedence(): void;
58 59 60
	selectKeybinding(keybindingEntry: IKeybindingItemEntry): void;
	defineKeybinding(keybindingEntry: IKeybindingItemEntry): Promise<void>;
	defineWhenExpression(keybindingEntry: IKeybindingItemEntry): void;
61
	updateKeybinding(keybindingEntry: IKeybindingItemEntry, key: string, when: string | undefined): Promise<any>;
J
Johannes Rieken 已提交
62 63
	removeKeybinding(keybindingEntry: IKeybindingItemEntry): Promise<any>;
	resetKeybinding(keybindingEntry: IKeybindingItemEntry): Promise<any>;
64 65
	copyKeybinding(keybindingEntry: IKeybindingItemEntry): Promise<void>;
	copyKeybindingCommand(keybindingEntry: IKeybindingItemEntry): Promise<void>;
66
	showSimilarKeybindings(keybindingEntry: IKeybindingItemEntry): void;
S
Sandeep Somavarapu 已提交
67 68 69
}

export const CONTEXT_SETTINGS_EDITOR = new RawContextKey<boolean>('inSettingsEditor', false);
70
export const CONTEXT_SETTINGS_JSON_EDITOR = new RawContextKey<boolean>('inSettingsJSONEditor', false);
S
Sandeep Somavarapu 已提交
71
export const CONTEXT_SETTINGS_SEARCH_FOCUS = new RawContextKey<boolean>('inSettingsSearch', false);
72
export const CONTEXT_TOC_ROW_FOCUS = new RawContextKey<boolean>('settingsTocRowFocus', false);
S
Sandeep Somavarapu 已提交
73
export const CONTEXT_KEYBINDINGS_EDITOR = new RawContextKey<boolean>('inKeybindings', false);
S
Sandeep Somavarapu 已提交
74
export const CONTEXT_KEYBINDINGS_SEARCH_FOCUS = new RawContextKey<boolean>('inKeybindingsSearch', false);
S
Sandeep Somavarapu 已提交
75 76
export const CONTEXT_KEYBINDING_FOCUS = new RawContextKey<boolean>('keybindingFocus', false);

S
Sandeep Somavarapu 已提交
77
export const SETTINGS_EDITOR_COMMAND_SEARCH = 'settings.action.search';
S
Sandeep Somavarapu 已提交
78 79 80
export const SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS = 'settings.action.clearSearchResults';
export const SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING = 'settings.action.focusNextSetting';
export const SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING = 'settings.action.focusPreviousSetting';
S
Sandeep Somavarapu 已提交
81
export const SETTINGS_EDITOR_COMMAND_FOCUS_FILE = 'settings.action.focusSettingsFile';
82
export const SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING = 'settings.action.editFocusedSetting';
83
export const SETTINGS_EDITOR_COMMAND_FOCUS_SETTINGS_FROM_SEARCH = 'settings.action.focusSettingsFromSearch';
84
export const SETTINGS_EDITOR_COMMAND_FOCUS_SETTINGS_LIST = 'settings.action.focusSettingsList';
85
export const SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU = 'settings.action.showContextMenu';
86

87
export const SETTINGS_EDITOR_COMMAND_SWITCH_TO_JSON = 'settings.switchToJSON';
88 89 90
export const SETTINGS_EDITOR_COMMAND_FILTER_MODIFIED = 'settings.filterByModified';
export const SETTINGS_EDITOR_COMMAND_FILTER_ONLINE = 'settings.filterByOnline';

S
Sandeep Somavarapu 已提交
91
export const KEYBINDINGS_EDITOR_COMMAND_SEARCH = 'keybindings.editor.searchKeybindings';
S
Sandeep Somavarapu 已提交
92
export const KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS = 'keybindings.editor.clearSearchResults';
S
Sandeep Somavarapu 已提交
93 94
export const KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS = 'keybindings.editor.recordSearchKeys';
export const KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE = 'keybindings.editor.toggleSortByPrecedence';
S
Sandeep Somavarapu 已提交
95
export const KEYBINDINGS_EDITOR_COMMAND_DEFINE = 'keybindings.editor.defineKeybinding';
96
export const KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN = 'keybindings.editor.defineWhenExpression';
97
export const KEYBINDINGS_EDITOR_COMMAND_REMOVE = 'keybindings.editor.removeKeybinding';
98
export const KEYBINDINGS_EDITOR_COMMAND_RESET = 'keybindings.editor.resetKeybinding';
S
Sandeep Somavarapu 已提交
99
export const KEYBINDINGS_EDITOR_COMMAND_COPY = 'keybindings.editor.copyKeybindingEntry';
100
export const KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND = 'keybindings.editor.copyCommandKeybindingEntry';
S
Sandeep Somavarapu 已提交
101
export const KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR = 'keybindings.editor.showConflicts';
102
export const KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS = 'keybindings.editor.focusKeybindings';
S
Sandeep Somavarapu 已提交
103
export const KEYBINDINGS_EDITOR_CLEAR_INPUT = 'keybindings.editor.showDefaultKeybindings';
104 105
export const KEYBINDINGS_EDITOR_SHOW_DEFAULT_KEYBINDINGS = 'keybindings.editor.showDefaultKeybindings';
export const KEYBINDINGS_EDITOR_SHOW_USER_KEYBINDINGS = 'keybindings.editor.showUserKeybindings';
106

107
export const DEFAULT_SETTINGS_EDITOR_SETTING = 'workbench.settings.openDefaultSettings';
108

R
Rob Lourens 已提交
109
export const MODIFIED_SETTING_TAG = 'modified';
P
Peng Lyu 已提交
110
export const EXTENSION_SETTING_TAG = 'ext:';
R
Rob Lourens 已提交
111 112

export const SETTINGS_COMMAND_OPEN_SETTINGS = 'workbench.action.openSettings';
P
Peng Lyu 已提交
113 114

export const KEYBOARD_LAYOUT_OPEN_PICKER = 'workbench.action.openKeyboardLayoutPicker';