This commit is contained in:
Sandeep Somavarapu
2017-07-25 20:02:27 +05:30
parent 4ddda54c6a
commit 13cd8ca477
5 changed files with 35 additions and 25 deletions
@@ -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();
}