2 Object.defineProperty(exports, "__esModule", { value: true });
3 const tslib_1 = require("tslib");
4 const coc_nvim_1 = require("coc.nvim");
5 const path_1 = tslib_1.__importStar(require("path"));
6 const requirePkg_1 = require("./requirePkg");
7 const errorHandler_1 = require("./errorHandler");
8 function getConfig(uri) {
9 return coc_nvim_1.workspace.getConfiguration('prettier', uri ? uri.toString() : undefined);
11 exports.getConfig = getConfig;
12 function getPrettierInstance() {
13 return tslib_1.__awaiter(this, void 0, void 0, function* () {
14 const document = yield coc_nvim_1.workspace.document;
15 const uri = coc_nvim_1.Uri.parse(document.uri);
16 const fileName = uri.fsPath;
17 const vscodeConfig = getConfig(uri);
18 const localOnly = vscodeConfig.onlyUseLocalVersion;
19 const resolvedPrettier = (yield requirePkg_1.requireLocalPkg(path_1.default.dirname(fileName), 'prettier', { silent: true, ignoreBundled: localOnly }));
20 if (!resolvedPrettier) {
21 errorHandler_1.addToOutput(`Prettier module not found, prettier.onlyUseLocalVersion: ${vscodeConfig.onlyUseLocalVersion}`, 'Error');
23 return resolvedPrettier;
26 exports.getPrettierInstance = getPrettierInstance;
27 function getParsersFromLanguageId(languageId, prettierInstance, path) {
28 const supportedLanguages = getSupportLanguages(prettierInstance);
29 const language = supportedLanguages.find(lang => Array.isArray(lang.vscodeLanguageIds) &&
30 lang.vscodeLanguageIds.includes(languageId) &&
31 // Only for some specific filenames
32 (lang.extensions.length > 0 ||
34 lang.filenames != null &&
35 lang.filenames.includes(path_1.basename(path)))));
39 return language.parsers;
41 exports.getParsersFromLanguageId = getParsersFromLanguageId;
42 function allLanguages(prettierInstance) {
43 const supportedLanguages = getSupportLanguages(prettierInstance);
44 return supportedLanguages.reduce((ids, language) => [...ids, ...(language.vscodeLanguageIds || [])], []);
46 exports.allLanguages = allLanguages;
47 function enabledLanguages(prettierInstance) {
48 const { disableLanguages } = getConfig();
49 const languages = allLanguages(prettierInstance);
50 return languages.filter(x => disableLanguages.indexOf(x) == -1);
52 exports.enabledLanguages = enabledLanguages;
53 function rangeLanguages() {
54 const { disableLanguages } = getConfig();
62 ].filter(x => disableLanguages.indexOf(x) == -1);
64 exports.rangeLanguages = rangeLanguages;
65 function getGroup(group, prettierInstance) {
66 const supportedLanguages = getSupportLanguages(prettierInstance);
67 return supportedLanguages.filter(language => language.group === group);
69 exports.getGroup = getGroup;
70 function getSupportLanguages(prettierInstance) {
71 return prettierInstance.getSupportInfo(prettierInstance.version).languages;
73 function hasLocalPrettierInstalled(filePath) {
74 const localPrettier = requirePkg_1.requireLocalPkg(filePath, 'prettier', {
78 return localPrettier != null;
80 exports.hasLocalPrettierInstalled = hasLocalPrettierInstalled;
81 //# sourceMappingURL=utils.js.map