mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-01 01:25:38 -05:00
Vscode merge (#4582)
* Merge from vscode 37cb23d3dd4f9433d56d4ba5ea3203580719a0bd * fix issues with merges * bump node version in azpipe * replace license headers * remove duplicate launch task * fix build errors * fix build errors * fix tslint issues * working through package and linux build issues * more work * wip * fix packaged builds * working through linux build errors * wip * wip * wip * fix mac and linux file limits * iterate linux pipeline * disable editor typing * revert series to parallel * remove optimize vscode from linux * fix linting issues * revert testing change * add work round for new node * readd packaging for extensions * fix issue with angular not resolving decorator dependencies
This commit is contained in:
@@ -12,10 +12,11 @@ import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { ResourceEditorModel } from 'vs/workbench/common/editor/resourceEditorModel';
|
||||
import { ITextFileService, LoadReason } from 'vs/workbench/services/textfile/common/textfiles';
|
||||
import * as network from 'vs/base/common/network';
|
||||
import { ITextModelService, ITextModelContentProvider, ITextEditorModel } from 'vs/editor/common/services/resolverService';
|
||||
import { ITextModelService, ITextModelContentProvider, ITextEditorModel, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
|
||||
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
||||
import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
||||
class ResourceModelCollection extends ReferenceCollection<Promise<ITextEditorModel>> {
|
||||
|
||||
@@ -103,11 +104,11 @@ class ResourceModelCollection extends ReferenceCollection<Promise<ITextEditorMod
|
||||
private resolveTextModelContent(key: string): Promise<ITextModel> {
|
||||
const resource = URI.parse(key);
|
||||
const providers = this.providers[resource.scheme] || [];
|
||||
const factories = providers.map(p => () => Promise.resolve(p.provideTextContent(resource)));
|
||||
const factories = providers.map(p => () => Promise.resolve<ITextModel | undefined | null>(p.provideTextContent(resource)));
|
||||
|
||||
return first(factories).then(model => {
|
||||
if (!model) {
|
||||
return Promise.reject(new Error('resource is not available'));
|
||||
return Promise.reject<any>(new Error('resource is not available'));
|
||||
}
|
||||
|
||||
return model;
|
||||
@@ -129,15 +130,15 @@ export class TextModelResolverService implements ITextModelService {
|
||||
this.resourceModelCollection = instantiationService.createInstance(ResourceModelCollection);
|
||||
}
|
||||
|
||||
createModelReference(resource: URI): Promise<IReference<ITextEditorModel>> {
|
||||
createModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>> {
|
||||
return this._createModelReference(resource);
|
||||
}
|
||||
|
||||
private _createModelReference(resource: URI): Promise<IReference<ITextEditorModel>> {
|
||||
private _createModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>> {
|
||||
|
||||
// Untitled Schema: go through cached input
|
||||
if (resource.scheme === network.Schemas.untitled) {
|
||||
return this.untitledEditorService.loadOrCreate({ resource }).then(model => new ImmortalReference(model));
|
||||
return this.untitledEditorService.loadOrCreate({ resource }).then(model => new ImmortalReference(model as IResolvedTextEditorModel));
|
||||
}
|
||||
|
||||
// InMemory Schema: go through model service cache
|
||||
@@ -148,7 +149,7 @@ export class TextModelResolverService implements ITextModelService {
|
||||
return Promise.reject(new Error('Cant resolve inmemory resource'));
|
||||
}
|
||||
|
||||
return Promise.resolve(new ImmortalReference(this.instantiationService.createInstance(ResourceEditorModel, resource)));
|
||||
return Promise.resolve(new ImmortalReference(this.instantiationService.createInstance(ResourceEditorModel, resource) as IResolvedTextEditorModel));
|
||||
}
|
||||
|
||||
const ref = this.resourceModelCollection.acquire(resource.toString());
|
||||
@@ -171,3 +172,5 @@ export class TextModelResolverService implements ITextModelService {
|
||||
return this.resourceModelCollection.hasTextModelContentProvider(scheme);
|
||||
}
|
||||
}
|
||||
|
||||
registerSingleton(ITextModelService, TextModelResolverService, true);
|
||||
@@ -72,7 +72,7 @@ suite('Workbench - TextModelResolverService', () => {
|
||||
|
||||
return input.resolve().then(async model => {
|
||||
assert.ok(model);
|
||||
assert.equal(snapshotToString((model as ResourceEditorModel).createSnapshot()), 'Hello Test');
|
||||
assert.equal(snapshotToString((model as ResourceEditorModel).createSnapshot()!), 'Hello Test');
|
||||
|
||||
let disposed = false;
|
||||
let disposedPromise = new Promise(resolve => {
|
||||
|
||||
Reference in New Issue
Block a user