mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-27 10:48:28 +01:00
Fix #31037
This commit is contained in:
@@ -107,7 +107,6 @@
|
||||
}
|
||||
|
||||
.monaco-editor .settings-header-widget .title-container {
|
||||
padding-left: 12px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
@@ -128,7 +127,6 @@
|
||||
}
|
||||
|
||||
.monaco-editor .settings-header-widget .title-container .message {
|
||||
padding-left: 12px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,12 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
|
||||
this.editSettingActionRenderer = this._register(this.instantiationService.createInstance(EditSettingRenderer, this.editor, this.preferencesModel, this.settingHighlighter));
|
||||
this._register(this.editSettingActionRenderer.onUpdateSetting(({ key, value, source }) => this.updatePreference(key, value, source)));
|
||||
this._register(this.editor.getModel().onDidChangeContent(() => this.modelChangeDelayer.trigger(() => this.onModelChanged())));
|
||||
|
||||
this.createHeader();
|
||||
}
|
||||
|
||||
protected createHeader(): void {
|
||||
this._register(new SettingsHeaderWidget(this.editor, '')).setMessage(nls.localize('emptyUserSettingsHeader', "Place your settings here to overwrite the Default Settings."));
|
||||
}
|
||||
|
||||
public render(): void {
|
||||
@@ -178,6 +184,10 @@ export class WorkspaceSettingsRenderer extends UserSettingsRenderer implements I
|
||||
this.untrustedSettingRenderer = this._register(instantiationService.createInstance(UnsupportedWorkspaceSettingsRenderer, editor, preferencesModel));
|
||||
}
|
||||
|
||||
protected createHeader(): void {
|
||||
this._register(new SettingsHeaderWidget(this.editor, '')).setMessage(nls.localize('emptyWorkspaceSettingsHeader', "Place your settings here to overwrite the User Settings."));
|
||||
}
|
||||
|
||||
public render(): void {
|
||||
super.render();
|
||||
this.untrustedSettingRenderer.render();
|
||||
@@ -200,6 +210,10 @@ export class FolderSettingsRenderer extends UserSettingsRenderer implements IPre
|
||||
this.unsupportedWorkbenchSettingsRenderer = this._register(instantiationService.createInstance(UnsupportedWorkbenchSettingsRenderer, editor, preferencesModel));
|
||||
}
|
||||
|
||||
protected createHeader(): void {
|
||||
this._register(new SettingsHeaderWidget(this.editor, '')).setMessage(nls.localize('emptyFolderSettingsHeader', "Place your folder settings here to overwrite those from the Workspace Settings."));
|
||||
}
|
||||
|
||||
public render(): void {
|
||||
super.render();
|
||||
this.unsupportedWorkbenchSettingsRenderer.render();
|
||||
@@ -210,7 +224,7 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
|
||||
|
||||
private _associatedPreferencesModel: IPreferencesEditorModel<ISetting>;
|
||||
private settingHighlighter: SettingHighlighter;
|
||||
private settingsHeaderRenderer: SettingsHeaderRenderer;
|
||||
private settingsHeaderRenderer: DefaultSettingsHeaderRenderer;
|
||||
private settingsGroupTitleRenderer: SettingsGroupTitleRenderer;
|
||||
private filteredMatchesRenderer: FilteredMatchesRenderer;
|
||||
private hiddenAreasRenderer: HiddenAreasRenderer;
|
||||
@@ -234,7 +248,7 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
|
||||
) {
|
||||
super();
|
||||
this.settingHighlighter = this._register(instantiationService.createInstance(SettingHighlighter, editor, this._onFocusPreference, this._onClearFocusPreference));
|
||||
this.settingsHeaderRenderer = this._register(instantiationService.createInstance(SettingsHeaderRenderer, editor));
|
||||
this.settingsHeaderRenderer = this._register(instantiationService.createInstance(DefaultSettingsHeaderRenderer, editor, preferencesModel.configurationScope));
|
||||
this.settingsGroupTitleRenderer = this._register(instantiationService.createInstance(SettingsGroupTitleRenderer, editor));
|
||||
this.filteredMatchesRenderer = this._register(instantiationService.createInstance(FilteredMatchesRenderer, editor));
|
||||
this.editSettingActionRenderer = this._register(instantiationService.createInstance(EditSettingRenderer, editor, preferencesModel, this.settingHighlighter));
|
||||
@@ -369,18 +383,19 @@ export class StaticContentHidingRenderer extends Disposable implements HiddenAre
|
||||
|
||||
}
|
||||
|
||||
class SettingsHeaderRenderer extends Disposable {
|
||||
class DefaultSettingsHeaderRenderer extends Disposable {
|
||||
|
||||
private settingsHeaderWidget: SettingsHeaderWidget;
|
||||
|
||||
constructor(private editor: ICodeEditor) {
|
||||
constructor(private editor: ICodeEditor, scope: ConfigurationScope) {
|
||||
super();
|
||||
this.settingsHeaderWidget = this._register(new SettingsHeaderWidget(editor, nls.localize('defaultSettingsTitle', "Default Settings")));
|
||||
const title = scope === ConfigurationScope.RESOURCE ? nls.localize('defaultFolderSettingsTitle', "Default Folder Settings") : nls.localize('defaultSettingsTitle', "Default Settings");
|
||||
this.settingsHeaderWidget = this._register(new SettingsHeaderWidget(editor, title));
|
||||
}
|
||||
|
||||
public render(settingsGroups: ISettingsGroup[]) {
|
||||
if (settingsGroups.length) {
|
||||
this.settingsHeaderWidget.setMessage(nls.localize('defaultSettingsMessage', "Place your settings in the file to the right to overwrite."));
|
||||
this.settingsHeaderWidget.setMessage('');
|
||||
} else {
|
||||
this.settingsHeaderWidget.setMessage(nls.localize('noSettingsFound', "No Settings Found."));
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@ interface IWorkbenchSettingsConfiguration {
|
||||
};
|
||||
}
|
||||
|
||||
const emptyEditableSettingsContent = '{\n}';
|
||||
|
||||
export class PreferencesService extends Disposable implements IPreferencesService {
|
||||
|
||||
_serviceBrand: any;
|
||||
@@ -299,24 +301,12 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
||||
const model = reference.object.textEditorModel;
|
||||
const settingsContent = WorkspaceConfigModel.getSettingsContentFromConfigContent(model.getValue());
|
||||
reference.dispose();
|
||||
return TPromise.as(settingsContent ? settingsContent : this.getEmptyEditableSettingsContent(ConfigurationTarget.WORKSPACE));
|
||||
return TPromise.as(settingsContent ? settingsContent : emptyEditableSettingsContent);
|
||||
});
|
||||
}
|
||||
return TPromise.as(null);
|
||||
}
|
||||
|
||||
private getEmptyEditableSettingsContent(target: ConfigurationTarget): string {
|
||||
if (target === ConfigurationTarget.USER) {
|
||||
const emptySettingsHeader = nls.localize('emptySettingsHeader', "Place your settings in this file to overwrite the default settings");
|
||||
return '// ' + emptySettingsHeader + '\n{\n}';
|
||||
}
|
||||
return [
|
||||
'// ' + nls.localize('emptySettingsHeader1', "Place your settings in this file to overwrite default and user settings."),
|
||||
'{',
|
||||
'}'
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
private getEditableSettingsURI(configurationTarget: ConfigurationTarget, resource?: URI): URI {
|
||||
switch (configurationTarget) {
|
||||
case ConfigurationTarget.USER:
|
||||
@@ -345,8 +335,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
||||
if (this.contextService.hasMultiFolderWorkspace() && target === ConfigurationTarget.WORKSPACE) {
|
||||
return TPromise.as(null);
|
||||
}
|
||||
const editableSettingsEmptyContent = this.getEmptyEditableSettingsContent(target);
|
||||
return this.createIfNotExists(resource, editableSettingsEmptyContent).then(() => { });
|
||||
return this.createIfNotExists(resource, emptyEditableSettingsContent).then(() => { });
|
||||
}
|
||||
|
||||
private createIfNotExists(resource: URI, contents: string): TPromise<boolean> {
|
||||
|
||||
@@ -66,8 +66,13 @@ export class SettingsHeaderWidget extends Widget implements IViewZone {
|
||||
this._domNode = DOM.$('.settings-header-widget');
|
||||
|
||||
this.titleContainer = DOM.append(this._domNode, DOM.$('.title-container'));
|
||||
DOM.append(this.titleContainer, DOM.$('.title')).textContent = this.title;
|
||||
if (this.title) {
|
||||
DOM.append(this.titleContainer, DOM.$('.title')).textContent = this.title;
|
||||
}
|
||||
this.messageElement = DOM.append(this.titleContainer, DOM.$('.message'));
|
||||
if (this.title) {
|
||||
this.messageElement.style.paddingLeft = '12px';
|
||||
}
|
||||
|
||||
this.editor.changeViewZones(accessor => {
|
||||
this.id = accessor.addZone(this);
|
||||
@@ -82,6 +87,9 @@ export class SettingsHeaderWidget extends Widget implements IViewZone {
|
||||
private layout(): void {
|
||||
const configuration = this.editor.getConfiguration();
|
||||
this.titleContainer.style.fontSize = configuration.fontInfo.fontSize + 'px';
|
||||
if (!configuration.contribInfo.folding) {
|
||||
this.titleContainer.style.paddingLeft = '12px';
|
||||
}
|
||||
}
|
||||
|
||||
public dispose() {
|
||||
|
||||
@@ -598,7 +598,7 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements
|
||||
private _content: string;
|
||||
private _contentByLines: string[];
|
||||
|
||||
constructor(private _uri: URI, private _mostCommonlyUsedSettingsKeys: string[], private configurationScope: ConfigurationScope) {
|
||||
constructor(private _uri: URI, private _mostCommonlyUsedSettingsKeys: string[], readonly configurationScope: ConfigurationScope) {
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user