Skip to content

Commit

Permalink
[vscode] No error message if vscode.open command is invoked with reso…
Browse files Browse the repository at this point in the history
…urce that doesn't exist eclipse-theia#5667

Signed-off-by: Victor Rubezhny <vrubezhny@redhat.com>
  • Loading branch information
vrubezhny committed Nov 8, 2019
1 parent 602f44d commit 345945d
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions packages/monaco/src/browser/monaco-text-model-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import URI from '@theia/core/lib/common/uri';
import { ResourceProvider, ReferenceCollection, Event } from '@theia/core';
import { EditorPreferences, EditorPreferenceChange } from '@theia/editor/lib/browser';
import { MonacoEditorModel } from './monaco-editor-model';
import { MessageClient, MessageType } from '@theia/core/lib/common';

@injectable()
export class MonacoTextModelService implements monaco.editor.ITextModelService {
Expand All @@ -40,6 +41,9 @@ export class MonacoTextModelService implements monaco.editor.ITextModelService {
@inject(ProtocolToMonacoConverter)
protected readonly p2m: ProtocolToMonacoConverter;

@inject(MessageClient)
protected readonly messages: MessageClient;

get models(): MonacoEditorModel[] {
return this._models.values();
}
Expand All @@ -57,14 +61,20 @@ export class MonacoTextModelService implements monaco.editor.ITextModelService {
}

protected async loadModel(uri: URI): Promise<MonacoEditorModel> {
await this.editorPreferences.ready;
const resource = await this.resourceProvider(uri);
const model = await (new MonacoEditorModel(resource, this.m2p, this.p2m, { encoding: this.editorPreferences.get('files.encoding') }).load());
this.updateModel(model);
model.textEditorModel.onDidChangeLanguage(() => this.updateModel(model));
const disposable = this.editorPreferences.onPreferenceChanged(change => this.updateModel(model, change));
model.onDispose(() => disposable.dispose());
return model;
try {
await this.editorPreferences.ready;
const resource = await this.resourceProvider(uri);
const model = await (new MonacoEditorModel(resource, this.m2p, this.p2m, { encoding: this.editorPreferences.get('files.encoding') }).load());
this.updateModel(model);
model.textEditorModel.onDidChangeLanguage(() => this.updateModel(model));
const disposable = this.editorPreferences.onPreferenceChanged(change => this.updateModel(model, change));
model.onDispose(() => disposable.dispose());
return model;
} catch (error) {
const msg = 'Unable to open "' + uri + '": ' + error;
this.messages.showMessage({ type: MessageType.Error, text: msg });
return Promise.reject(error);
}
}

protected readonly modelOptions: {
Expand Down

0 comments on commit 345945d

Please sign in to comment.