Files
test-repo/src/language-js/index.js
T
fisker Cheung a85f38f096 Merge branch 'main' into next
# Conflicts:
#	.github/workflows/dev-test.yml
#	jest.config.mjs
#	package.json
#	scripts/vendors/vendor-meta.json
#	scripts/vendors/vendors.mjs
#	src/cli/format.js
#	src/cli/options/create-minimist-options.js
#	src/cli/options/parse-cli-arguments.js
#	src/cli/usage.js
#	src/cli/utils.js
#	src/common/create-ignorer.js
#	src/common/load-plugins.js
#	src/config/resolve-config.js
#	src/index.js
#	src/language-css/utils/css-units.evaluate.js
#	src/language-html/ast.js
#	src/language-html/print-preprocess.js
#	src/language-html/utils/index.js
#	src/main/multiparser.js
#	tests/format/markdown/auto-link/jsfmt.spec.js
#	tests/integration/__tests__/__snapshots__/config-resolution.js.snap
#	tests/integration/__tests__/__snapshots__/with-config-precedence.js.snap
#	tests/integration/__tests__/file-info.js
#	yarn.lock
2022-04-25 14:28:27 +08:00

129 lines
3.5 KiB
JavaScript

import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import estreePrinter from "./printer-estree.js";
import estreeJsonPrinter from "./printer-estree-json.js";
import options from "./options.js";
import parsers from "./parse/parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(
require("linguist-languages/data/JavaScript.json"),
(data) => ({
since: "0.0.0",
parsers: [
"babel",
"acorn",
"espree",
"meriyah",
"babel-flow",
"babel-ts",
"flow",
"typescript",
],
vscodeLanguageIds: ["javascript", "mongo"],
interpreters: [
...data.interpreters,
// https://github.com/google/zx
"zx",
],
extensions: [
...data.extensions.filter((extension) => extension !== ".jsx"),
// WeiXin Script (Weixin Mini Programs)
// https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/
".wxs",
],
})
),
createLanguage(require("linguist-languages/data/JavaScript.json"), () => ({
name: "Flow",
since: "0.0.0",
parsers: ["flow", "babel-flow"],
vscodeLanguageIds: ["javascript"],
aliases: [],
filenames: [],
extensions: [".js.flow"],
})),
createLanguage(require("linguist-languages/data/JavaScript.json"), () => ({
name: "JSX",
since: "0.0.0",
parsers: [
"babel",
"babel-flow",
"babel-ts",
"flow",
"typescript",
"espree",
"meriyah",
],
vscodeLanguageIds: ["javascriptreact"],
aliases: undefined,
filenames: undefined,
extensions: [".jsx"],
group: "JavaScript",
interpreters: undefined,
tmScope: "source.js.jsx",
aceMode: "javascript",
codemirrorMode: "jsx",
codemirrorMimeType: "text/jsx",
color: undefined,
})),
createLanguage(
require("linguist-languages/data/TypeScript.json"),
(data) => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescript"],
extensions: [...data.extensions, ".mts", ".cts"],
})
),
createLanguage(require("linguist-languages/data/TSX.json"), () => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescriptreact"],
})),
createLanguage(require("linguist-languages/data/JSON.json"), () => ({
name: "JSON.stringify",
since: "1.13.0",
parsers: ["json-stringify"],
vscodeLanguageIds: ["json"],
extensions: [".importmap"], // .json file defaults to json instead of json-stringify
filenames: ["package.json", "package-lock.json", "composer.json"],
})),
createLanguage(require("linguist-languages/data/JSON.json"), (data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["json"],
extensions: data.extensions.filter((extension) => extension !== ".jsonl"),
})),
createLanguage(
require("linguist-languages/data/JSON with Comments.json"),
(data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["jsonc"],
filenames: [...data.filenames, ".eslintrc", ".swcrc"],
})
),
createLanguage(require("linguist-languages/data/JSON5.json"), () => ({
since: "1.13.0",
parsers: ["json5"],
vscodeLanguageIds: ["json5"],
})),
];
const printers = {
estree: estreePrinter,
"estree-json": estreeJsonPrinter,
};
const language = {
languages,
options,
printers,
parsers,
};
export default language;