Refactor createLanguage to use function transform (#6676)
parent
4a336f8393
commit
56a2cd8a1b
|
@ -5,37 +5,35 @@ const options = require("./options");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/CSS"), {
|
createLanguage(require("linguist-languages/data/CSS"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["css"],
|
parsers: ["css"],
|
||||||
vscodeLanguageIds: ["css"]
|
vscodeLanguageIds: ["css"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/PostCSS"), {
|
createLanguage(require("linguist-languages/data/PostCSS"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["css"],
|
parsers: ["css"],
|
||||||
vscodeLanguageIds: ["postcss"]
|
vscodeLanguageIds: ["postcss"],
|
||||||
},
|
extensions: data.extensions.concat(".postcss")
|
||||||
extend: {
|
})
|
||||||
extensions: [".postcss"]
|
),
|
||||||
}
|
createLanguage(require("linguist-languages/data/Less"), data =>
|
||||||
}),
|
Object.assign(data, {
|
||||||
createLanguage(require("linguist-languages/data/Less"), {
|
|
||||||
override: {
|
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["less"],
|
parsers: ["less"],
|
||||||
vscodeLanguageIds: ["less"]
|
vscodeLanguageIds: ["less"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/SCSS"), {
|
createLanguage(require("linguist-languages/data/SCSS"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["scss"],
|
parsers: ["scss"],
|
||||||
vscodeLanguageIds: ["scss"]
|
vscodeLanguageIds: ["scss"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -5,13 +5,13 @@ const options = require("./options");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/GraphQL"), {
|
createLanguage(require("linguist-languages/data/GraphQL"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.5.0",
|
since: "1.5.0",
|
||||||
parsers: ["graphql"],
|
parsers: ["graphql"],
|
||||||
vscodeLanguageIds: ["graphql"]
|
vscodeLanguageIds: ["graphql"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -4,13 +4,13 @@ const printer = require("./printer-glimmer");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/Handlebars"), {
|
createLanguage(require("linguist-languages/data/Handlebars"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: null, // unreleased
|
since: null, // unreleased
|
||||||
parsers: ["glimmer"],
|
parsers: ["glimmer"],
|
||||||
vscodeLanguageIds: ["handlebars"]
|
vscodeLanguageIds: ["handlebars"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -5,47 +5,43 @@ const createLanguage = require("../utils/create-language");
|
||||||
const options = require("./options");
|
const options = require("./options");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/HTML"), {
|
createLanguage(require("linguist-languages/data/HTML"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
name: "Angular",
|
name: "Angular",
|
||||||
since: "1.15.0",
|
since: "1.15.0",
|
||||||
parsers: ["angular"],
|
parsers: ["angular"],
|
||||||
vscodeLanguageIds: ["html"],
|
vscodeLanguageIds: ["html"],
|
||||||
|
|
||||||
extensions: [".component.html"],
|
extensions: [".component.html"],
|
||||||
filenames: []
|
filenames: []
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/HTML"), {
|
createLanguage(require("linguist-languages/data/HTML"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.15.0",
|
since: "1.15.0",
|
||||||
parsers: ["html"],
|
parsers: ["html"],
|
||||||
vscodeLanguageIds: ["html"]
|
vscodeLanguageIds: ["html"],
|
||||||
},
|
extensions: data.extensions.concat([
|
||||||
extend: {
|
|
||||||
extensions: [
|
|
||||||
".mjml" // MJML is considered XML in Linguist but it should be formatted as HTML
|
".mjml" // MJML is considered XML in Linguist but it should be formatted as HTML
|
||||||
]
|
])
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/HTML"), {
|
createLanguage(require("linguist-languages/data/HTML"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
name: "Lightning Web Components",
|
name: "Lightning Web Components",
|
||||||
since: "1.17.0",
|
since: "1.17.0",
|
||||||
parsers: ["lwc"],
|
parsers: ["lwc"],
|
||||||
vscodeLanguageIds: ["html"],
|
vscodeLanguageIds: ["html"],
|
||||||
|
|
||||||
extensions: [],
|
extensions: [],
|
||||||
filenames: []
|
filenames: []
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/Vue"), {
|
createLanguage(require("linguist-languages/data/Vue"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.10.0",
|
since: "1.10.0",
|
||||||
parsers: ["vue"],
|
parsers: ["vue"],
|
||||||
vscodeLanguageIds: ["vue"]
|
vscodeLanguageIds: ["vue"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -6,18 +6,16 @@ const options = require("./options");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/JavaScript"), {
|
createLanguage(require("linguist-languages/data/JavaScript"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "0.0.0",
|
since: "0.0.0",
|
||||||
parsers: ["babel", "flow"],
|
parsers: ["babel", "flow"],
|
||||||
vscodeLanguageIds: ["javascript"]
|
vscodeLanguageIds: ["javascript"],
|
||||||
},
|
interpreters: data.interpreters.concat(["nodejs"])
|
||||||
extend: {
|
})
|
||||||
interpreters: ["nodejs"]
|
),
|
||||||
}
|
createLanguage(require("linguist-languages/data/JavaScript"), data =>
|
||||||
}),
|
Object.assign(data, {
|
||||||
createLanguage(require("linguist-languages/data/JavaScript"), {
|
|
||||||
override: {
|
|
||||||
name: "Flow",
|
name: "Flow",
|
||||||
since: "0.0.0",
|
since: "0.0.0",
|
||||||
parsers: ["babel", "flow"],
|
parsers: ["babel", "flow"],
|
||||||
|
@ -25,66 +23,62 @@ const languages = [
|
||||||
aliases: [],
|
aliases: [],
|
||||||
filenames: [],
|
filenames: [],
|
||||||
extensions: [".js.flow"]
|
extensions: [".js.flow"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/JSX"), {
|
createLanguage(require("linguist-languages/data/JSX"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "0.0.0",
|
since: "0.0.0",
|
||||||
parsers: ["babel", "flow"],
|
parsers: ["babel", "flow"],
|
||||||
vscodeLanguageIds: ["javascriptreact"]
|
vscodeLanguageIds: ["javascriptreact"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/TypeScript"), {
|
createLanguage(require("linguist-languages/data/TypeScript"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["typescript"],
|
parsers: ["typescript"],
|
||||||
vscodeLanguageIds: ["typescript"]
|
vscodeLanguageIds: ["typescript"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/TSX"), {
|
createLanguage(require("linguist-languages/data/TSX"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.4.0",
|
since: "1.4.0",
|
||||||
parsers: ["typescript"],
|
parsers: ["typescript"],
|
||||||
vscodeLanguageIds: ["typescriptreact"]
|
vscodeLanguageIds: ["typescriptreact"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/JSON"), {
|
createLanguage(require("linguist-languages/data/JSON"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
name: "JSON.stringify",
|
name: "JSON.stringify",
|
||||||
since: "1.13.0",
|
since: "1.13.0",
|
||||||
parsers: ["json-stringify"],
|
parsers: ["json-stringify"],
|
||||||
vscodeLanguageIds: ["json"],
|
vscodeLanguageIds: ["json"],
|
||||||
extensions: [], // .json file defaults to json instead of json-stringify
|
extensions: [], // .json file defaults to json instead of json-stringify
|
||||||
filenames: ["package.json", "package-lock.json", "composer.json"]
|
filenames: ["package.json", "package-lock.json", "composer.json"]
|
||||||
}
|
})
|
||||||
}),
|
),
|
||||||
createLanguage(require("linguist-languages/data/JSON"), {
|
createLanguage(require("linguist-languages/data/JSON"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.5.0",
|
since: "1.5.0",
|
||||||
parsers: ["json"],
|
parsers: ["json"],
|
||||||
vscodeLanguageIds: ["json"]
|
vscodeLanguageIds: ["json"],
|
||||||
},
|
filenames: data.filenames.concat([".prettierrc"])
|
||||||
extend: {
|
})
|
||||||
filenames: [".prettierrc"]
|
),
|
||||||
}
|
createLanguage(require("linguist-languages/data/JSON with Comments"), data =>
|
||||||
}),
|
Object.assign(data, {
|
||||||
createLanguage(require("linguist-languages/data/JSON with Comments"), {
|
|
||||||
override: {
|
|
||||||
since: "1.5.0",
|
since: "1.5.0",
|
||||||
parsers: ["json"],
|
parsers: ["json"],
|
||||||
vscodeLanguageIds: ["jsonc"]
|
vscodeLanguageIds: ["jsonc"],
|
||||||
},
|
filenames: data.filenames.concat([".eslintrc"])
|
||||||
extend: {
|
})
|
||||||
filenames: [".eslintrc"]
|
),
|
||||||
}
|
createLanguage(require("linguist-languages/data/JSON5"), data =>
|
||||||
}),
|
Object.assign(data, {
|
||||||
createLanguage(require("linguist-languages/data/JSON5"), {
|
|
||||||
override: {
|
|
||||||
since: "1.13.0",
|
since: "1.13.0",
|
||||||
parsers: ["json5"],
|
parsers: ["json5"],
|
||||||
vscodeLanguageIds: ["json5"]
|
vscodeLanguageIds: ["json5"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -5,29 +5,25 @@ const options = require("./options");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/Markdown"), {
|
createLanguage(require("linguist-languages/data/Markdown"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.8.0",
|
since: "1.8.0",
|
||||||
parsers: ["remark"],
|
parsers: ["remark"],
|
||||||
vscodeLanguageIds: ["markdown"]
|
vscodeLanguageIds: ["markdown"],
|
||||||
},
|
filenames: data.filenames.concat(["README"]),
|
||||||
extend: {
|
extensions: data.extensions.filter(extension => extension !== ".mdx")
|
||||||
filenames: ["README"]
|
})
|
||||||
},
|
),
|
||||||
exclude: {
|
createLanguage(require("linguist-languages/data/Markdown"), data =>
|
||||||
extensions: [".mdx"]
|
Object.assign(data, {
|
||||||
}
|
|
||||||
}),
|
|
||||||
createLanguage(require("linguist-languages/data/Markdown"), {
|
|
||||||
override: {
|
|
||||||
name: "MDX",
|
name: "MDX",
|
||||||
since: "1.15.0",
|
since: "1.15.0",
|
||||||
parsers: ["mdx"],
|
parsers: ["mdx"],
|
||||||
vscodeLanguageIds: ["mdx"],
|
vscodeLanguageIds: ["mdx"],
|
||||||
filenames: [],
|
filenames: [],
|
||||||
extensions: [".mdx"]
|
extensions: [".mdx"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
const printers = {
|
const printers = {
|
||||||
|
|
|
@ -5,13 +5,13 @@ const options = require("./options");
|
||||||
const createLanguage = require("../utils/create-language");
|
const createLanguage = require("../utils/create-language");
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
createLanguage(require("linguist-languages/data/YAML"), {
|
createLanguage(require("linguist-languages/data/YAML"), data =>
|
||||||
override: {
|
Object.assign(data, {
|
||||||
since: "1.14.0",
|
since: "1.14.0",
|
||||||
parsers: ["yaml"],
|
parsers: ["yaml"],
|
||||||
vscodeLanguageIds: ["yaml"]
|
vscodeLanguageIds: ["yaml"]
|
||||||
}
|
})
|
||||||
})
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
module.exports = function(linguistData, { extend, override, exclude }) {
|
module.exports = function(linguistData, transform) {
|
||||||
const language = {};
|
const language = {};
|
||||||
|
|
||||||
for (const key in linguistData) {
|
for (const key in linguistData) {
|
||||||
|
@ -8,23 +8,5 @@ module.exports = function(linguistData, { extend, override, exclude }) {
|
||||||
language[newKey] = linguistData[key];
|
language[newKey] = linguistData[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extend) {
|
return transform(language);
|
||||||
for (const key in extend) {
|
|
||||||
language[key] = (language[key] || []).concat(extend[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (exclude) {
|
|
||||||
for (const key in exclude) {
|
|
||||||
language[key] = (language[key] || []).filter(
|
|
||||||
value => (exclude[key] || []).indexOf(value) === -1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const key in override) {
|
|
||||||
language[key] = override[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
return language;
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue