Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463 (#7206)

* Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463

* fix config changes

* fix strictnull checks
This commit is contained in:
Anthony Dresser
2019-09-15 22:38:26 -07:00
committed by GitHub
parent fa6c52699e
commit ea0f9e6ce9
1226 changed files with 21541 additions and 17633 deletions

View File

@@ -8,7 +8,6 @@ import { Event, Emitter } from 'vs/base/common/event';
import { IWorkspaceStorageChangeEvent, IStorageService, StorageScope, IWillSaveStateEvent, WillSaveStateReason, logStorage } from 'vs/platform/storage/common/storage';
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
import { IWorkspaceInitializationPayload } from 'vs/platform/workspaces/common/workspaces';
import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { IFileService, FileChangeType } from 'vs/platform/files/common/files';
import { IStorage, Storage, IStorageDatabase, IStorageItemsChangeEvent, IUpdateRequest } from 'vs/base/parts/storage/common/storage';
import { URI } from 'vs/base/common/uri';
@@ -19,7 +18,7 @@ import { VSBuffer } from 'vs/base/common/buffer';
export class BrowserStorageService extends Disposable implements IStorageService {
_serviceBrand!: ServiceIdentifier<any>;
_serviceBrand: undefined;
private readonly _onDidChangeStorage: Emitter<IWorkspaceStorageChangeEvent> = this._register(new Emitter<IWorkspaceStorageChangeEvent>());
readonly onDidChangeStorage: Event<IWorkspaceStorageChangeEvent> = this._onDidChangeStorage.event;
@@ -150,6 +149,10 @@ export class BrowserStorageService extends Disposable implements IStorageService
return logStorage(result[0], result[1], this.globalStorageFile.toString(), this.workspaceStorageFile.toString());
}
async migrate(toWorkspace: IWorkspaceInitializationPayload): Promise<void> {
// TODO@ben implement storage migration in web
}
close(): void {
// We explicitly do not close our DBs because writing data onBeforeUnload()
// can result in unexpected results. Namely, it seems that - even though this

View File

@@ -3,10 +3,11 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { Event, Emitter } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
import { isUndefinedOrNull } from 'vs/base/common/types';
import { IWorkspaceInitializationPayload } from 'vs/platform/workspaces/common/workspaces';
export const IStorageService = createDecorator<IStorageService>('storageService');
@@ -21,7 +22,7 @@ export interface IWillSaveStateEvent {
export interface IStorageService {
_serviceBrand: ServiceIdentifier<any>;
_serviceBrand: undefined;
/**
* Emitted whenever data is updated or deleted.
@@ -96,6 +97,11 @@ export interface IStorageService {
* Log the contents of the storage to the console.
*/
logStorage(): void;
/**
* Migrate the storage contents to another workspace.
*/
migrate(toWorkspace: IWorkspaceInitializationPayload): Promise<void>;
}
export const enum StorageScope {
@@ -118,7 +124,7 @@ export interface IWorkspaceStorageChangeEvent {
export class InMemoryStorageService extends Disposable implements IStorageService {
_serviceBrand = null as any;
_serviceBrand: undefined;
private readonly _onDidChangeStorage: Emitter<IWorkspaceStorageChangeEvent> = this._register(new Emitter<IWorkspaceStorageChangeEvent>());
readonly onDidChangeStorage: Event<IWorkspaceStorageChangeEvent> = this._onDidChangeStorage.event;
@@ -205,6 +211,10 @@ export class InMemoryStorageService extends Disposable implements IStorageServic
logStorage(): void {
logStorage(this.globalCache, this.workspaceCache, 'inMemory', 'inMemory');
}
async migrate(toWorkspace: IWorkspaceInitializationPayload): Promise<void> {
// not supported
}
}
export async function logStorage(global: Map<string, string>, workspace: Map<string, string>, globalPath: string, workspacePath: string): Promise<void> {

View File

@@ -147,12 +147,12 @@ export class GlobalStorageDatabaseChannel extends Disposable implements IServerC
export class GlobalStorageDatabaseChannelClient extends Disposable implements IStorageDatabase {
_serviceBrand: any;
_serviceBrand: undefined;
private readonly _onDidChangeItemsExternal: Emitter<IStorageItemsChangeEvent> = this._register(new Emitter<IStorageItemsChangeEvent>());
readonly onDidChangeItemsExternal: Event<IStorageItemsChangeEvent> = this._onDidChangeItemsExternal.event;
private onDidChangeItemsOnMainListener: IDisposable;
private onDidChangeItemsOnMainListener: IDisposable | undefined;
constructor(private channel: IChannel) {
super();

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { Event, Emitter } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
import { ILogService, LogLevel } from 'vs/platform/log/common/log';
@@ -16,7 +16,7 @@ export const IStorageMainService = createDecorator<IStorageMainService>('storage
export interface IStorageMainService {
_serviceBrand: ServiceIdentifier<any>;
_serviceBrand: undefined;
/**
* Emitted whenever data is updated or deleted.
@@ -85,7 +85,7 @@ export interface IStorageChangeEvent {
export class StorageMainService extends Disposable implements IStorageMainService {
_serviceBrand!: ServiceIdentifier<any>;
_serviceBrand: undefined;
private static STORAGE_NAME = 'state.vscdb';
@@ -99,7 +99,7 @@ export class StorageMainService extends Disposable implements IStorageMainServic
private storage: IStorage;
private initializePromise: Promise<void>;
private initializePromise: Promise<void> | undefined;
constructor(
@ILogService private readonly logService: ILogService,

View File

@@ -15,11 +15,10 @@ import { copy, exists, mkdirp, writeFile } from 'vs/base/node/pfs';
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
import { IWorkspaceInitializationPayload, isWorkspaceIdentifier, isSingleFolderWorkspaceInitializationPayload } from 'vs/platform/workspaces/common/workspaces';
import { onUnexpectedError } from 'vs/base/common/errors';
import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
export class StorageService extends Disposable implements IStorageService {
_serviceBrand!: ServiceIdentifier<any>;
_serviceBrand: undefined;
private static WORKSPACE_STORAGE_NAME = 'state.vscdb';
private static WORKSPACE_META_NAME = 'workspace.json';

View File

@@ -12,7 +12,7 @@ import { tmpdir } from 'os';
import { mkdirp, rimraf, RimRafMode } from 'vs/base/node/pfs';
import { NullLogService } from 'vs/platform/log/common/log';
import { EnvironmentService } from 'vs/platform/environment/node/environmentService';
import { parseArgs } from 'vs/platform/environment/node/argv';
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
import { InMemoryStorageDatabase } from 'vs/base/parts/storage/common/storage';
suite('StorageService', () => {
@@ -86,7 +86,7 @@ suite('StorageService', () => {
class StorageTestEnvironmentService extends EnvironmentService {
constructor(private workspaceStorageFolderPath: string, private _extensionsPath: string) {
super(parseArgs(process.argv), process.execPath);
super(parseArgs(process.argv, OPTIONS), process.execPath);
}
get workspaceStorageHome(): string {
@@ -117,4 +117,4 @@ suite('StorageService', () => {
await storage.close();
await rimraf(storageDir, RimRafMode.MOVE);
});
});
});