From a0668129da2da638237ce93910e3167a4a878d09 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Sat, 24 Feb 2018 19:00:51 +1100 Subject: [PATCH] Do not require plugins to set 'since' field (#4038) * Do not require plugins to set 'since' field * Refactor --- src/common/support.js | 7 ++++++- src/language-handlebars/index.js | 3 ++- src/language-html/index.js | 2 +- src/main/options.js | 2 +- tests_integration/plugins/extensions/plugin.js | 3 +-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/common/support.js b/src/common/support.js index 9207b842..1127ef45 100644 --- a/src/common/support.js +++ b/src/common/support.js @@ -255,7 +255,12 @@ function getSupportInfo(version, opts) { const languages = plugins .reduce((all, plugin) => all.concat(plugin.languages), []) - .filter(language => language.since && semver.gte(version, language.since)) + .filter( + language => + language.since + ? semver.gte(version, language.since) + : language.since !== null + ) .map(language => { // Prevent breaking changes if (language.name === "Markdown") { diff --git a/src/language-handlebars/index.js b/src/language-handlebars/index.js index 59e0bb48..d1669204 100644 --- a/src/language-handlebars/index.js +++ b/src/language-handlebars/index.js @@ -13,7 +13,8 @@ const languages = [ extensions: [".handlebars", ".hbs"], tm_scope: "text.html.handlebars", ace_mode: "handlebars", - language_id: 155 + language_id: 155, + since: null // unreleased } ]; diff --git a/src/language-html/index.js b/src/language-html/index.js index 2e8b1d21..05ae371b 100644 --- a/src/language-html/index.js +++ b/src/language-html/index.js @@ -8,7 +8,7 @@ const printer = require("./printer-htmlparser2"); const languages = [ { name: "HTML", - since: undefined, // unreleased + since: null, // unreleased parsers: ["parse5"], group: "HTML", tmScope: "text.html.basic", diff --git a/src/main/options.js b/src/main/options.js index 7c331b01..a6b037a9 100644 --- a/src/main/options.js +++ b/src/main/options.js @@ -81,7 +81,7 @@ function inferParser(filepath, plugins) { pluginsLoaded: true }).languages.find( language => - typeof language.since === "string" && + language.since !== null && (language.extensions.indexOf(extension) > -1 || (language.filenames && language.filenames.find(name => name.toLowerCase() === filename))) diff --git a/tests_integration/plugins/extensions/plugin.js b/tests_integration/plugins/extensions/plugin.js index 39d17d44..1d8f71c7 100644 --- a/tests_integration/plugins/extensions/plugin.js +++ b/tests_integration/plugins/extensions/plugin.js @@ -7,8 +7,7 @@ module.exports = { { name: "foo", parsers: ["foo-parser"], - extensions: [".foo"], - since: "1.0.0" + extensions: [".foo"] } ], parsers: {