diff --git a/package.json b/package.json index 4bd612f..560d264 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "monaco-yaml", - "version": "1.3.0", + "version": "1.3.1", "description": "YAML plugin for the Monaco Editor", "scripts": { "compile": "rimraf ./out && yarn compile:umd && yarn compile:esm", diff --git a/src/monaco.contribution.ts b/src/monaco.contribution.ts index bcaaf9b..2c3f9d7 100644 --- a/src/monaco.contribution.ts +++ b/src/monaco.contribution.ts @@ -45,6 +45,7 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.yaml.Langua const diagnosticDefault: monaco.languages.yaml.DiagnosticsOptions = { validate: true, schemas: [], + enableSchemaRequest: false } const yamlDefaults = new LanguageServiceDefaultsImpl('yaml', diagnosticDefault); diff --git a/src/monaco.d.ts b/src/monaco.d.ts index 1d65f96..6765f45 100644 --- a/src/monaco.d.ts +++ b/src/monaco.d.ts @@ -29,10 +29,9 @@ declare module monaco.languages.yaml { }[]; /** - * If not set, the schema service would load schema content on-demand with 'fetch' if available, - * otherwise, it will try to load with the custom schema request. + * If set, the schema service would load schema content on-demand with 'fetch' if available */ - readonly schemaRequestService?: (url: string) => Promise; + readonly enableSchemaRequest?: boolean; } export interface LanguageServiceDefaults { diff --git a/src/workerManager.ts b/src/workerManager.ts index 31169ca..c388e82 100644 --- a/src/workerManager.ts +++ b/src/workerManager.ts @@ -70,7 +70,7 @@ export class WorkerManager { createData: { languageSettings: this._defaults.diagnosticsOptions, languageId: this._defaults.languageId, - schemaRequestService: this._defaults.diagnosticsOptions.schemaRequestService + enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest } }); diff --git a/src/yamlWorker.ts b/src/yamlWorker.ts index 786db5c..3145651 100644 --- a/src/yamlWorker.ts +++ b/src/yamlWorker.ts @@ -18,30 +18,6 @@ if (typeof fetch !== 'undefined'){ defaultSchemaRequestService = function (url) { return fetch(url).then(response => response.text())}; } -class PromiseAdapter implements yamlService.Thenable { - private wrapped: monaco.Promise; - - constructor(executor: (resolve: (value?: T | yamlService.Thenable) => void, reject: (reason?: any) => void) => void) { - this.wrapped = new monaco.Promise(executor); - } - public then(onfulfilled?: (value: T) => TResult | yamlService.Thenable, onrejected?: (reason: any) => void): yamlService.Thenable { - let thenable: yamlService.Thenable = this.wrapped; - return thenable.then(onfulfilled, onrejected); - } - public getWrapped(): monaco.Thenable { - return this.wrapped; - } - public static resolve(v: T | Thenable): yamlService.Thenable { - return >monaco.Promise.as(v); - } - public static reject(v: T): yamlService.Thenable { - return monaco.Promise.wrapError(v); - } - public static all(values: yamlService.Thenable[]): yamlService.Thenable { - return monaco.Promise.join(values); - } -} - export class YAMLWorker { private _ctx: IWorkerContext; @@ -54,7 +30,7 @@ export class YAMLWorker { this._languageSettings = createData.languageSettings; this._languageId = createData.languageId; this._languageService = yamlService.getLanguageService( - createData.schemaRequestService || defaultSchemaRequestService, null, []); + createData.enableSchemaRequest && defaultSchemaRequestService, null, []); this._languageService.configure({ ...this._languageSettings, hover: true, isKubernetes: true }); } @@ -107,7 +83,7 @@ export class YAMLWorker { export interface ICreateData { languageId: string; languageSettings: yamlService.LanguageSettings; - schemaRequestService: (url: string) => Promise; + enableSchemaRequest: boolean; } export function create(ctx: IWorkerContext, createData: ICreateData): YAMLWorker { diff --git a/test/index.html b/test/index.html index 8b945ad..6ae731a 100644 --- a/test/index.html +++ b/test/index.html @@ -73,6 +73,7 @@ spec: }); monaco.languages.yaml.yamlDefaults.setDiagnosticsOptions({ + enableSchemaRequest: true, validate: true, schemas: [ {