From f0fdc683c183e766e2a97d355d764a7c9f1ce3af Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 16 Jan 2017 12:42:55 +0100 Subject: [PATCH] Markers appear for wrong language id. Fixes Microsoft/monaco-editor#111 --- gulpfile.js | 18 ++++++------------ package.json | 8 ++++---- src/languageFeatures.ts | 7 ++++++- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 06677a3b..0a68eac5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -31,16 +31,6 @@ gulp.task('release', ['clean-release','compile'], function() { '' ].join('\n'); - var jsoncLocation = __dirname + '/node_modules/jsonc-parser/lib'; - if (!fs.existsSync(jsoncLocation)) { - var oldJsconcLocation = __dirname + '/node_modules/vscode-json-languageservice/node_modules/jsonc-parser/lib'; - if (!fs.existsSync(oldJsconcLocation)) { - console.error('Unable to find jsonc node module at ' + jsoncLocation + ' or ' + oldJsconcLocation); - return; - } - jsoncLocation = oldJsconcLocation; - } - function getDependencyLocation(name, libLocation, container) { var location = __dirname + '/node_modules/' + name + '/' + libLocation; if (!fs.existsSync(location)) { @@ -54,8 +44,8 @@ gulp.task('release', ['clean-release','compile'], function() { return location; } - var uriLocation = getDependencyLocation('vscode-uri', 'lib', 'vscode-html-languageservice'); - + var jsoncLocation = getDependencyLocation('jsonc-parser', 'lib', 'vscode-json-languageservice'); + var uriLocation = getDependencyLocation('vscode-uri', 'lib', 'vscode-json-languageservice'); function bundleOne(moduleId, exclude) { @@ -76,6 +66,10 @@ gulp.task('release', ['clean-release','compile'], function() { name: 'vscode-languageserver-types', location: __dirname + '/node_modules/vscode-languageserver-types/lib', main: 'main' + }, { + name: 'vscode-uri', + location: uriLocation, + main: 'index' }, { name: 'jsonc-parser', location: jsoncLocation, diff --git a/package.json b/package.json index bdc88735..1619ccb0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "monaco-json", - "version": "1.1.1", + "version": "1.1.2", "description": "JSON plugin for the Monaco Editor", "scripts": { "compile": "gulp compile", @@ -25,12 +25,12 @@ "gulp-tsb": "^2.0.0", "gulp-uglify": "^1.5.3", "merge-stream": "^1.0.0", - "monaco-editor-core": "^0.7.0", + "monaco-editor-core": "^0.7.3", "monaco-languages": "^0.6.1", "object-assign": "^4.1.0", "rimraf": "^2.5.2", "typescript": "2.0.3", - "vscode-json-languageservice": "^1.1.5-next.1", - "vscode-languageserver-types": "^1.0.1" + "vscode-json-languageservice": "1.1.7", + "vscode-languageserver-types": "1.0.4" } } diff --git a/src/languageFeatures.ts b/src/languageFeatures.ts index 288bc6cb..929f366f 100644 --- a/src/languageFeatures.ts +++ b/src/languageFeatures.ts @@ -47,7 +47,12 @@ export class DiagnostcsAdapter { const onModelRemoved = (model: monaco.editor.IModel): void => { monaco.editor.setModelMarkers(model, this._languageId, []); - delete this._listener[model.uri.toString()]; + let uriStr = model.uri.toString(); + let listener = this._listener[uriStr]; + if (listener) { + listener.dispose(); + delete this._listener[uriStr]; + } }; this._disposables.push(monaco.editor.onDidCreateModel(onModelAdd));