From d77341bf14253c329f907c62e70c8d92437fb390 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 11 Jun 2019 13:50:24 +0200 Subject: [PATCH] use URI for appSettingsHome --- src/vs/code/node/cliProcessMain.ts | 2 +- src/vs/platform/environment/common/environment.ts | 2 +- .../platform/environment/node/environmentService.ts | 11 ++++++----- src/vs/workbench/browser/web.main.ts | 2 +- src/vs/workbench/browser/web.simpleservices.ts | 2 +- .../browser/localizations.contribution.ts | 5 ++--- .../localizations/browser/localizationsActions.ts | 5 ++--- .../contrib/snippets/browser/configureSnippets.ts | 8 ++++---- .../contrib/snippets/browser/snippetsService.ts | 3 +-- .../extensions/electron-browser/extensionHost.ts | 2 +- .../services/textfile/common/textFileEditorModel.ts | 7 +++---- .../services/textfile/node/textFileService.ts | 2 +- 12 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 2692b182b53..dafebd1c91f 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -283,7 +283,7 @@ export async function main(argv: ParsedArgs): Promise { process.once('exit', () => logService.dispose()); logService.info('main', argv); - await Promise.all([environmentService.appSettingsHome, environmentService.extensionsPath].map(p => mkdirp(p))); + await Promise.all([environmentService.appSettingsHome.fsPath, environmentService.extensionsPath].map(p => mkdirp(p))); const configurationService = new ConfigurationService(environmentService.settingsResource); await configurationService.initialize(); diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index 9567ad124c1..0b9a8cb7d17 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -96,7 +96,7 @@ export interface IEnvironmentService { appNameLong: string; appQuality?: string; - appSettingsHome: string; + appSettingsHome: URI; settingsResource: URI; appKeybindingsPath: string; diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index b6c62b6fa2d..1e52a101105 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -8,6 +8,7 @@ import * as crypto from 'crypto'; import * as paths from 'vs/base/node/paths'; import * as os from 'os'; import * as path from 'vs/base/common/path'; +import * as resources from 'vs/base/common/resources'; import { memoize } from 'vs/base/common/decorators'; import pkg from 'vs/platform/product/node/package'; import product from 'vs/platform/product/node/product'; @@ -108,10 +109,10 @@ export class EnvironmentService implements IEnvironmentService { get appQuality(): string | undefined { return product.quality; } @memoize - get appSettingsHome(): string { return path.join(this.userDataPath, 'User'); } + get appSettingsHome(): URI { return URI.file(path.join(this.userDataPath, 'User')); } @memoize - get settingsResource(): URI { return URI.file(path.join(this.appSettingsHome, 'settings.json')); } + get settingsResource(): URI { return resources.joinPath(this.appSettingsHome, 'settings.json'); } @memoize get machineSettingsHome(): string { return path.join(this.userDataPath, 'Machine'); } @@ -120,10 +121,10 @@ export class EnvironmentService implements IEnvironmentService { get machineSettingsPath(): string { return path.join(this.machineSettingsHome, 'settings.json'); } @memoize - get globalStorageHome(): string { return path.join(this.appSettingsHome, 'globalStorage'); } + get globalStorageHome(): string { return path.join(this.appSettingsHome.fsPath, 'globalStorage'); } @memoize - get workspaceStorageHome(): string { return path.join(this.appSettingsHome, 'workspaceStorage'); } + get workspaceStorageHome(): string { return path.join(this.appSettingsHome.fsPath, 'workspaceStorage'); } @memoize get settingsSearchBuildId(): number | undefined { return product.settingsSearchBuildId; } @@ -132,7 +133,7 @@ export class EnvironmentService implements IEnvironmentService { get settingsSearchUrl(): string | undefined { return product.settingsSearchUrl; } @memoize - get appKeybindingsPath(): string { return path.join(this.appSettingsHome, 'keybindings.json'); } + get appKeybindingsPath(): string { return path.join(this.appSettingsHome.fsPath, 'keybindings.json'); } @memoize get isExtensionDevelopment(): boolean { return !!this._args.extensionDevelopmentPath; } diff --git a/src/vs/workbench/browser/web.main.ts b/src/vs/workbench/browser/web.main.ts index 5941884610a..91e7b324b29 100644 --- a/src/vs/workbench/browser/web.main.ts +++ b/src/vs/workbench/browser/web.main.ts @@ -139,7 +139,7 @@ class CodeRendererMain extends Disposable { const environmentService = new SimpleWorkbenchEnvironmentService(); environmentService.appRoot = '/web/'; environmentService.args = { _: [] }; - environmentService.appSettingsHome = '/web/settings'; + environmentService.appSettingsHome = toResource('/web/settings'); environmentService.settingsResource = this.configuration.settingsUri; environmentService.appKeybindingsPath = '/web/settings/keybindings.json'; environmentService.logsPath = '/web/logs'; diff --git a/src/vs/workbench/browser/web.simpleservices.ts b/src/vs/workbench/browser/web.simpleservices.ts index 186fde4745a..50c433f1655 100644 --- a/src/vs/workbench/browser/web.simpleservices.ts +++ b/src/vs/workbench/browser/web.simpleservices.ts @@ -196,7 +196,7 @@ export class SimpleWorkbenchEnvironmentService implements IWorkbenchEnvironmentS userDataPath: string; appNameLong: string; appQuality?: string; - appSettingsHome: string; + appSettingsHome: URI; settingsResource: URI; appKeybindingsPath: string; machineSettingsHome: string; diff --git a/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts b/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts index b0ed37a8f5e..4ae502390f8 100644 --- a/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts +++ b/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts @@ -20,8 +20,6 @@ import { INotificationService } from 'vs/platform/notification/common/notificati import Severity from 'vs/base/common/severity'; import { IJSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditing'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { URI } from 'vs/base/common/uri'; -import { join } from 'vs/base/common/path'; import { IWindowsService } from 'vs/platform/windows/common/windows'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; @@ -30,6 +28,7 @@ import { minimumTranslatedStrings } from 'vs/workbench/contrib/localizations/bro import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ExtensionType } from 'vs/platform/extensions/common/extensions'; +import { joinPath } from 'vs/base/common/resources'; // Register action to configure locale and related settings const registry = Registry.as(Extensions.WorkbenchActions); @@ -82,7 +81,7 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo [{ label: updateAndRestart ? localize('yes', "Yes") : localize('restart now', "Restart Now"), run: () => { - const file = URI.file(join(this.environmentService.appSettingsHome, 'locale.json')); + const file = joinPath(this.environmentService.appSettingsHome, 'locale.json'); const updatePromise = updateAndRestart ? this.jsonEditingService.write(file, { key: 'locale', value: locale }, true) : Promise.resolve(undefined); updatePromise.then(() => this.windowsService.relaunch({}), e => this.notificationService.error(e)); } diff --git a/src/vs/workbench/contrib/localizations/browser/localizationsActions.ts b/src/vs/workbench/contrib/localizations/browser/localizationsActions.ts index bbd759cb98d..14487ed363b 100644 --- a/src/vs/workbench/contrib/localizations/browser/localizationsActions.ts +++ b/src/vs/workbench/contrib/localizations/browser/localizationsActions.ts @@ -6,8 +6,6 @@ import { localize } from 'vs/nls'; import { Action } from 'vs/base/common/actions'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { join } from 'vs/base/common/path'; -import { URI } from 'vs/base/common/uri'; import { ILocalizationsService, LanguageType } from 'vs/platform/localizations/common/localizations'; import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; import { IJSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditing'; @@ -18,6 +16,7 @@ import { firstIndex } from 'vs/base/common/arrays'; import { IExtensionsViewlet, VIEWLET_ID as EXTENSIONS_VIEWLET_ID } from 'vs/workbench/contrib/extensions/common/extensions'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; +import { joinPath } from 'vs/base/common/resources'; export class ConfigureLocaleAction extends Action { public static readonly ID = 'workbench.action.configureLocale'; @@ -67,7 +66,7 @@ export class ConfigureLocaleAction extends Action { } if (selectedLanguage) { - const file = URI.file(join(this.environmentService.appSettingsHome, 'locale.json')); + const file = joinPath(this.environmentService.appSettingsHome, 'locale.json'); await this.jsonEditingService.write(file, { key: 'locale', value: selectedLanguage.label }, true); const restart = await this.dialogService.confirm({ type: 'info', diff --git a/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts b/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts index 482ae5e0f6e..1cc176a9ed5 100644 --- a/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts +++ b/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts @@ -7,7 +7,7 @@ import * as nls from 'vs/nls'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IModeService } from 'vs/editor/common/services/modeService'; -import { join, basename, extname } from 'vs/base/common/path'; +import { basename, extname } from 'vs/base/common/path'; import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { URI } from 'vs/base/common/uri'; @@ -88,14 +88,14 @@ async function computePicks(snippetService: ISnippetsService, envService: IEnvir } } - const dir = join(envService.appSettingsHome, 'snippets'); + const dir = joinPath(envService.appSettingsHome, 'snippets'); for (const mode of modeService.getRegisteredModes()) { const label = modeService.getLanguageName(mode); if (label && !seen.has(mode)) { future.push({ label: mode, description: `(${label})`, - filepath: URI.file(join(dir, `${mode}.json`)), + filepath: joinPath(dir, `${mode}.json`), hint: true }); } @@ -220,7 +220,7 @@ CommandsRegistry.registerCommand(id, async (accessor): Promise => { const globalSnippetPicks: SnippetPick[] = [{ scope: nls.localize('new.global_scope', 'global'), label: nls.localize('new.global', "New Global Snippets file..."), - uri: URI.file(join(envService.appSettingsHome, 'snippets')) + uri: joinPath(envService.appSettingsHome, 'snippets') }]; const workspaceSnippetPicks: SnippetPick[] = []; diff --git a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts index abaa82a2654..5056192bf77 100644 --- a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts +++ b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { join } from 'vs/base/common/path'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { combinedDisposable, dispose, IDisposable, DisposableStore } from 'vs/base/common/lifecycle'; import { values } from 'vs/base/common/map'; @@ -290,7 +289,7 @@ class SnippetsService implements ISnippetsService { } private _initUserSnippets(): Promise { - const userSnippetsFolder = URI.file(join(this._environmentService.appSettingsHome, 'snippets')); + const userSnippetsFolder = resources.joinPath(this._environmentService.appSettingsHome, 'snippets'); return this._fileService.createFolder(userSnippetsFolder).then(() => this._initFolderSnippets(SnippetSource.User, userSnippetsFolder, this._disposables)); } diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index 8ffdd656b88..0a153bff244 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -387,7 +387,7 @@ export class ExtensionHostProcessWorker implements IExtensionHostStarter { environment: { isExtensionDevelopmentDebug: this._isExtensionDevDebug, appRoot: this._environmentService.appRoot ? URI.file(this._environmentService.appRoot) : undefined, - appSettingsHome: this._environmentService.appSettingsHome ? URI.file(this._environmentService.appSettingsHome) : undefined, + appSettingsHome: this._environmentService.appSettingsHome ? this._environmentService.appSettingsHome : undefined, appName: product.nameLong, appUriScheme: product.urlProtocol, appLanguage: platform.language, diff --git a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts index eefdd71a8c4..8ffff3a7301 100644 --- a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts +++ b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { join } from 'vs/base/common/path'; import * as nls from 'vs/nls'; import { Event, Emitter } from 'vs/base/common/event'; import { guessMimeTypes } from 'vs/base/common/mime'; @@ -28,7 +27,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati import { isLinux } from 'vs/base/common/platform'; import { IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { ILogService } from 'vs/platform/log/common/log'; -import { isEqual, isEqualOrParent, extname, basename } from 'vs/base/common/resources'; +import { isEqual, isEqualOrParent, extname, basename, joinPath } from 'vs/base/common/resources'; import { onUnexpectedError } from 'vs/base/common/errors'; import { Schemas } from 'vs/base/common/network'; @@ -793,12 +792,12 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil } // Check for locale file - if (isEqual(this.resource, URI.file(join(this.environmentService.appSettingsHome, 'locale.json')), !isLinux)) { + if (isEqual(this.resource, joinPath(this.environmentService.appSettingsHome, 'locale.json'), !isLinux)) { return 'locale'; } // Check for snippets - if (isEqualOrParent(this.resource, URI.file(join(this.environmentService.appSettingsHome, 'snippets')))) { + if (isEqualOrParent(this.resource, joinPath(this.environmentService.appSettingsHome, 'snippets'))) { return 'snippets'; } diff --git a/src/vs/workbench/services/textfile/node/textFileService.ts b/src/vs/workbench/services/textfile/node/textFileService.ts index 2e9fe43b8a2..242aadab987 100644 --- a/src/vs/workbench/services/textfile/node/textFileService.ts +++ b/src/vs/workbench/services/textfile/node/textFileService.ts @@ -390,7 +390,7 @@ export class EncodingOracle extends Disposable implements IResourceEncodings { const defaultEncodingOverrides: IEncodingOverride[] = []; // Global settings - defaultEncodingOverrides.push({ parent: URI.file(this.environmentService.appSettingsHome), encoding: UTF8 }); + defaultEncodingOverrides.push({ parent: this.environmentService.appSettingsHome, encoding: UTF8 }); // Workspace files defaultEncodingOverrides.push({ extension: WORKSPACE_EXTENSION, encoding: UTF8 }); -- GitLab