From 0a1261354e356d128967a8f6b423cee7fb5039da Mon Sep 17 00:00:00 2001 From: Artem Zatsarynnyi Date: Tue, 23 Oct 2018 15:26:55 +0300 Subject: [PATCH] Fix loading a plugin that contributes a language with the configuration options provided in a JSON file with comments Signed-off-by: Artem Zatsarynnyi --- packages/plugin-ext/package.json | 3 ++- packages/plugin-ext/src/hosted/node/scanners/scanner-theia.ts | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/plugin-ext/package.json b/packages/plugin-ext/package.json index b070cc745bd7f..448f512313ef7 100644 --- a/packages/plugin-ext/package.json +++ b/packages/plugin-ext/package.json @@ -16,7 +16,8 @@ "decompress": "^4.2.0", "lodash.clonedeep": "^4.5.0", "ps-tree": "1.1.0", - "vscode-uri": "^1.0.1" + "vscode-uri": "^1.0.1", + "jsonc-parser": "^2.0.2" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-ext/src/hosted/node/scanners/scanner-theia.ts b/packages/plugin-ext/src/hosted/node/scanners/scanner-theia.ts index 6a527a255b2ba..7996e35626801 100644 --- a/packages/plugin-ext/src/hosted/node/scanners/scanner-theia.ts +++ b/packages/plugin-ext/src/hosted/node/scanners/scanner-theia.ts @@ -41,6 +41,7 @@ import * as path from 'path'; import { isObject } from 'util'; import { GrammarsReader } from './grammars-reader'; import { CharacterPair } from '../../../api/plugin-api'; +import * as jsoncparser from 'jsonc-parser'; @injectable() export class TheiaPluginScanner implements PluginScanner { @@ -208,7 +209,8 @@ export class TheiaPluginScanner implements PluginScanner { if (rawLang.configuration) { const conf = fs.readFileSync(path.resolve(pluginPath, rawLang.configuration), 'utf8'); if (conf) { - const rawConfiguration: PluginPackageLanguageContributionConfiguration = JSON.parse(conf); + const strippedContent = jsoncparser.stripComments(conf); + const rawConfiguration: PluginPackageLanguageContributionConfiguration = jsoncparser.parse(strippedContent); const configuration: LanguageConfiguration = { brackets: rawConfiguration.brackets,