提交 cde60042 编写于 作者: R Rob Lourens

"Edit in settings.json" searches for the selected setting

上级 f1756b42
......@@ -41,6 +41,7 @@ import { DefaultSettingsEditorModel } from 'vs/workbench/services/preferences/co
import { editorBackground, foreground } from 'vs/platform/theme/common/colorRegistry';
import { settingsHeaderForeground } from 'vs/workbench/parts/preferences/browser/settingsWidgets';
import { Separator } from 'vs/base/browser/ui/actionbar/actionbar';
import { PreferencesEditor } from 'vs/workbench/parts/preferences/browser/preferencesEditor';
const $ = DOM.$;
......@@ -351,7 +352,13 @@ export class SettingsEditor2 extends BaseEditor {
const renderer = this.instantiationService.createInstance(SettingsRenderer, this.settingsTreeContainer);
this._register(renderer.onDidChangeSetting(e => this.onDidChangeSetting(e.key, e.value)));
this._register(renderer.onDidOpenSettings(() => this.openSettingsFile()));
this._register(renderer.onDidOpenSettings(settingKey => {
this.openSettingsFile().then(editor => {
if (editor instanceof PreferencesEditor && settingKey) {
editor.focusSearch(settingKey);
}
});
}));
this._register(renderer.onDidClickSettingLink(settingName => this.revealSetting(settingName)));
this.settingsTree = this.instantiationService.createInstance(SettingsTree,
......
......@@ -537,8 +537,8 @@ export class SettingsRenderer implements ITreeRenderer {
private readonly _onDidChangeSetting: Emitter<ISettingChangeEvent> = new Emitter<ISettingChangeEvent>();
public readonly onDidChangeSetting: Event<ISettingChangeEvent> = this._onDidChangeSetting.event;
private readonly _onDidOpenSettings: Emitter<void> = new Emitter<void>();
public readonly onDidOpenSettings: Event<void> = this._onDidOpenSettings.event;
private readonly _onDidOpenSettings: Emitter<string> = new Emitter<string>();
public readonly onDidOpenSettings: Event<string> = this._onDidOpenSettings.event;
private readonly _onDidClickSettingLink: Emitter<string> = new Emitter<string>();
public readonly onDidClickSettingLink: Event<string> = this._onDidClickSettingLink.event;
......@@ -917,7 +917,7 @@ export class SettingsRenderer implements ITreeRenderer {
const openSettingsButton = new Button(common.controlElement, { title: true, buttonBackground: null, buttonHoverBackground: null });
common.toDispose.push(openSettingsButton);
common.toDispose.push(openSettingsButton.onDidClick(() => this._onDidOpenSettings.fire()));
common.toDispose.push(openSettingsButton.onDidClick(() => template.onChange(null)));
openSettingsButton.label = localize('editInSettingsJson', "Edit in settings.json");
openSettingsButton.element.classList.add('edit-in-settings-button');
......@@ -1126,8 +1126,7 @@ export class SettingsRenderer implements ITreeRenderer {
private renderComplexSetting(dataElement: SettingsTreeSettingElement, isSelected: boolean, template: ISettingComplexItemTemplate): void {
template.button.element.tabIndex = isSelected ? 0 : -1;
template.onChange = () => this._onDidOpenSettings.fire();
template.onChange = () => this._onDidOpenSettings.fire(dataElement.setting.key);
}
disposeTemplate(tree: ITree, templateId: string, template: IDisposableTemplate): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册