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

Settings editor - fix search results

上级 0abbd7e4
......@@ -126,6 +126,11 @@
width: 200px;
}
.settings-editor > .settings-body .settings-toc-container .monaco-tree-row .settings-toc-entry {
overflow: hidden;
text-overflow: ellipsis;
}
.settings-editor > .settings-body .settings-tree-container {
flex: 1;
border-spacing: 0;
......
......@@ -239,8 +239,10 @@ export class SettingsEditor2 extends BaseEditor {
});
this._register(this.tocTree.onDidChangeSelection(e => {
const element = this.settingsTreeModel.getElementById(e.selection[0] && e.selection[0].id);
this.settingsTree.reveal(element, 0);
if (this.settingsTreeModel) {
const element = this.settingsTreeModel.getElementById(e.selection[0] && e.selection[0].id);
this.settingsTree.reveal(element, 0);
}
}));
}
......
......@@ -47,7 +47,7 @@ registerThemingParticipant((theme: ITheme, collector: ICssStyleCollector) => {
export abstract class SettingsTreeElement {
id: string;
parent: SettingsTreeElement;
parent: any; // SearchResultModel or group element... TODO search should be more similar to the normal case
}
export class SettingsTreeGroupElement extends SettingsTreeElement {
......@@ -108,38 +108,43 @@ export class SettingsTreeModel {
}
private createSettingsTreeSettingElement(setting: ISetting, parent: SettingsTreeGroupElement): SettingsTreeSettingElement {
const element = new SettingsTreeSettingElement();
element.id = setting.key;
element.parent = parent;
const element = createSettingsTreeSettingElement(setting, parent, this.viewState.settingsTarget, this.configurationService);
this._treeElementsById.set(element.id, element);
return element;
}
}
const { isConfigured, inspected, targetSelector } = inspectSetting(setting.key, this.viewState.settingsTarget, this.configurationService);
function createSettingsTreeSettingElement(setting: ISetting, parent: any, settingsTarget: SettingsTarget, configurationService: IConfigurationService): SettingsTreeSettingElement {
const element = new SettingsTreeSettingElement();
element.id = setting.key;
element.parent = parent;
const displayValue = isConfigured ? inspected[targetSelector] : inspected.default;
const overriddenScopeList = [];
if (targetSelector === 'user' && typeof inspected.workspace !== 'undefined') {
overriddenScopeList.push(localize('workspace', "Workspace"));
}
const { isConfigured, inspected, targetSelector } = inspectSetting(setting.key, settingsTarget, configurationService);
if (targetSelector === 'workspace' && typeof inspected.user !== 'undefined') {
overriddenScopeList.push(localize('user', "User"));
}
const displayValue = isConfigured ? inspected[targetSelector] : inspected.default;
const overriddenScopeList = [];
if (targetSelector === 'user' && typeof inspected.workspace !== 'undefined') {
overriddenScopeList.push(localize('workspace', "Workspace"));
}
const displayKeyFormat = settingKeyToDisplayFormat(setting.key, parent.id);
element.setting = setting;
element.displayLabel = displayKeyFormat.label;
element.displayCategory = displayKeyFormat.category;
element.isExpanded = false;
if (targetSelector === 'workspace' && typeof inspected.user !== 'undefined') {
overriddenScopeList.push(localize('user', "User"));
}
element.value = displayValue;
element.isConfigured = isConfigured;
element.overriddenScopeList = overriddenScopeList;
element.description = setting.description.join('\n');
element.enum = setting.enum;
element.valueType = setting.type;
const displayKeyFormat = settingKeyToDisplayFormat(setting.key, parent.id);
element.setting = setting;
element.displayLabel = displayKeyFormat.label;
element.displayCategory = displayKeyFormat.category;
element.isExpanded = false;
this._treeElementsById.set(element.id, element);
return element;
}
element.value = displayValue;
element.isConfigured = isConfigured;
element.overriddenScopeList = overriddenScopeList;
element.description = setting.description.join('\n');
element.enum = setting.enum;
element.valueType = setting.type;
return element;
}
function inspectSetting(key: string, target: SettingsTarget, configurationService: IConfigurationService): { isConfigured: boolean, inspected: any, targetSelector: string } {
......@@ -214,6 +219,12 @@ function getFlatSettings(settingsGroups: ISettingsGroup[]) {
export class SettingsDataSource implements IDataSource {
constructor(
private viewState: ISettingsEditorViewState,
@IConfigurationService private configurationService: IConfigurationService
) {
}
getId(tree: ITree, element: SettingsTreeElement): string {
return element.id;
}
......@@ -232,7 +243,7 @@ export class SettingsDataSource implements IDataSource {
private getSearchResultChildren(searchResult: SearchResultModel): SettingsTreeSettingElement[] {
return searchResult.getFlatSettings()
.map(s => this.getSettingElement(s, searchResult, 'searchResult'));
.map(s => createSettingsTreeSettingElement(s, searchResult, this.viewState.settingsTarget, this.configurationService));
}
getChildren(tree: ITree, element: SettingsTreeElement): TPromise<any, any> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册