diff --git a/package-lock.json b/package-lock.json index a40d846d..47c393ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,21 +11,21 @@ "dev": true }, "jsonc-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.0.2.tgz", - "integrity": "sha512-TSU435K5tEKh3g7bam1AFf+uZrISheoDsLlpmAo6wWZYqjsnd09lHYK1Qo+moK4Ikifev1Gdpa69g4NELKnCrQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.0.3.tgz", + "integrity": "sha512-WJi9y9ABL01C8CxTKxRRQkkSpY/x2bo4Gy0WuiZGrInxQqgxQpvkBCLNcDYcHOSdhx4ODgbFcgAvfL49C+PHgQ==", "dev": true }, "monaco-editor-core": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.15.0.tgz", - "integrity": "sha512-s1zuo+p6Gl6IC4WJP6HBkr4pWULm+HdFfacB8vOFPQLLi2oJseO20UuSkxYuZTUJQIjvhNrQfLNAmPKLZaf7tg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.16.0.tgz", + "integrity": "sha512-8tm8vq0SVuQ+VXZFtPIEIronK3102SYCWe8wviWu/5TV4zlDQcf4YdzI6A4CrNqbUc46dD0ngijaKWoRSViI8g==", "dev": true }, "monaco-languages": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.6.0.tgz", - "integrity": "sha512-LBEWj8tngYwsq4kasQr+dIhnO4xUIEN36ns+cRepWAQiXZnzcrZ84gFHXm8f4mR4tssxvHVU5Vw7xMUYro6h3g==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.7.0.tgz", + "integrity": "sha512-2YrYlkCF/g2H0PDt/ERax2IStaihZ17v1JkYnj2xEALYNah0pbQvGH9gXJvdVx0EpBoSRmxVnrwwM2oBWWOjSQ==", "dev": true }, "monaco-plugin-helpers": { @@ -58,9 +58,9 @@ "dev": true }, "typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "version": "3.3.3333", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3333.tgz", + "integrity": "sha512-JjSKsAfuHBE/fB2oZ8NxtRTk5iGcg6hkYXMnZ3Wc+b2RSqejEqTaem11mHASMnFilHrax3sLK0GDzcJrekZYLw==", "dev": true }, "uglify-js": { @@ -74,33 +74,33 @@ } }, "vscode-json-languageservice": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.1.5.tgz", - "integrity": "sha512-mUb8EUADnBOf8PM9LSx4dVoSc9fY6sh+MXAD0vxqHPI58RpbvvxWQkTDAbnJDFJZbq+9q3NrY7qenLF/YCXREg==", + "version": "3.3.0-next.5", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.3.0-next.5.tgz", + "integrity": "sha512-qrha0moCl0HM9ThwableibOGnDY6O/IzFKl88DStaj+0vndSgSJWXldKjMALE8yQKrKP7sVCUboDd1S0rLYhSA==", "dev": true, "requires": { - "jsonc-parser": "^2.0.1", - "vscode-languageserver-types": "^3.10.1", - "vscode-nls": "^3.2.4", - "vscode-uri": "^1.0.5" + "jsonc-parser": "^2.0.3", + "vscode-languageserver-types": "^3.14.0", + "vscode-nls": "^4.0.0", + "vscode-uri": "^1.0.6" } }, "vscode-languageserver-types": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.10.1.tgz", - "integrity": "sha512-HeQ1BPYJDly4HfKs0h2TUAZyHfzTAhgQsCwsa1tW9PhuvGGsd2r3Q53FFVugwP7/2bUv3GWPoTgAuIAkIdBc4w==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz", + "integrity": "sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==", "dev": true }, "vscode-nls": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-3.2.4.tgz", - "integrity": "sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.0.0.tgz", + "integrity": "sha512-qCfdzcH+0LgQnBpZA53bA32kzp9rpq/f66Som577ObeuDlFIrtbEJ+A/+CCxjIh4G8dpJYNCKIsxpRAHIfsbNw==", "dev": true }, "vscode-uri": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.5.tgz", - "integrity": "sha1-O4majvccN/MFTXm9vdoxx7828g0=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.6.tgz", + "integrity": "sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww==", "dev": true } } diff --git a/package.json b/package.json index eb64be56..8807d576 100644 --- a/package.json +++ b/package.json @@ -19,14 +19,14 @@ "url": "https://github.com/Microsoft/monaco-json/issues" }, "devDependencies": { - "jsonc-parser": "^2.0.2", - "monaco-editor-core": "0.15.0", - "monaco-languages": "1.6.0", + "jsonc-parser": "^2.0.3", + "monaco-editor-core": "0.16.0", + "monaco-languages": "1.7.0", "monaco-plugin-helpers": "^1.0.2", "requirejs": "^2.3.6", - "typescript": "3.1.6", + "typescript": "3.3.3333", "uglify-js": "^3.4.9", - "vscode-json-languageservice": "3.1.5", - "vscode-languageserver-types": "3.10.1" + "vscode-json-languageservice": "3.3.0-next.5", + "vscode-languageserver-types": "3.14.0" } } diff --git a/src/languageFeatures.ts b/src/languageFeatures.ts index de27032c..1205ac70 100644 --- a/src/languageFeatures.ts +++ b/src/languageFeatures.ts @@ -234,7 +234,6 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide } provideCompletionItems(model: monaco.editor.IReadOnlyModel, position: Position, context: monaco.languages.CompletionContext, token: CancellationToken): Thenable { - const wordInfo = model.getWordUntilPosition(position); const resource = model.uri; return this._worker(resource).then(worker => { @@ -243,6 +242,9 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide if (!info) { return; } + const wordInfo = model.getWordUntilPosition(position); + const wordRange = new Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); + let items: monaco.languages.CompletionItem[] = info.items.map(entry => { let item: monaco.languages.CompletionItem = { label: entry.label, @@ -251,6 +253,7 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide filterText: entry.filterText, documentation: entry.documentation, detail: entry.detail, + range: wordRange, kind: toCompletionItemKind(entry.kind), }; if (entry.textEdit) {