diff --git a/org.eclipse.tm4e.language_pack/updater/pom.xml b/org.eclipse.tm4e.language_pack/updater/pom.xml index 21de56847..2d5831e35 100644 --- a/org.eclipse.tm4e.language_pack/updater/pom.xml +++ b/org.eclipse.tm4e.language_pack/updater/pom.xml @@ -33,19 +33,19 @@ com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.16.0 + 2.16.1 com.twelvemonkeys.imageio imageio-bmp - 3.10.1 + 3.11.0 com.twelvemonkeys.imageio imageio-batik - 3.10.1 + 3.11.0 diff --git a/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java b/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java index f6bd91cd1..87b6e2456 100644 --- a/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java +++ b/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java @@ -53,12 +53,12 @@ void handle() throws IOException { assertArgNotEmpty("package.json/contributes/languages", pkgJson.contributes().languages()); final var pkgJsonLangs = new TreeMap(); - for (final var lang : pkgJson.contributes().languages()) { + for (final Contributions.Language lang : pkgJson.contributes().languages()) { pkgJsonLangs.put(lang.id(), lang); } final var pkgJsonLangGrammars = new TreeMap(); final var pkgJsonInlineGrammars = new TreeMap(); - for (final var grammar : pkgJson.contributes().grammars()) { + for (final Contributions.Grammar grammar : pkgJson.contributes().grammars()) { if (grammar.language() != null) { if (pkgJsonLangs.containsKey(grammar.language())) { pkgJsonLangGrammars.put(grammar.language(), grammar); @@ -75,9 +75,18 @@ void handle() throws IOException { for (final Entry langOverrides : source.languages.entrySet()) { final var langId = langOverrides.getKey(); if (!pkgJsonLangs.containsKey(langId)) { - logInfo("FAILED", true, false); - throw new IllegalArgumentException( - "No language with id [" + langId + "] found at [package.json/contributes/languages]"); + final Config.LanguageIgnoreable langOverride = langOverrides.getValue(); + if (isBlank(langOverride.grammar)) { + logInfo("FAILED", true, false); + throw new IllegalArgumentException( + "No language with id [" + langId + "] found at [package.json/contributes/languages]"); + } + if (isBlank(langOverride.scopeName)) { + logInfo("FAILED", true, false); + throw new IllegalArgumentException("Language with id [" + langId + + "] found at [package.json/contributes/languages] is missing scopeName"); + } + pkgJsonLangs.put(langId, new Contributions.Language(langId, null, null, null, null, null, langOverride.langcfg)); } } logInfo("OK", true, false);