--- /dev/null
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+const coc_nvim_1 = require("coc.nvim");
+const path_1 = tslib_1.__importStar(require("path"));
+const requirePkg_1 = require("./requirePkg");
+const errorHandler_1 = require("./errorHandler");
+function getConfig(uri) {
+ return coc_nvim_1.workspace.getConfiguration('prettier', uri ? uri.toString() : undefined);
+}
+exports.getConfig = getConfig;
+function getPrettierInstance() {
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
+ const document = yield coc_nvim_1.workspace.document;
+ const uri = coc_nvim_1.Uri.parse(document.uri);
+ const fileName = uri.fsPath;
+ const vscodeConfig = getConfig(uri);
+ const localOnly = vscodeConfig.onlyUseLocalVersion;
+ const resolvedPrettier = (yield requirePkg_1.requireLocalPkg(path_1.default.dirname(fileName), 'prettier', { silent: true, ignoreBundled: localOnly }));
+ if (!resolvedPrettier) {
+ errorHandler_1.addToOutput(`Prettier module not found, prettier.onlyUseLocalVersion: ${vscodeConfig.onlyUseLocalVersion}`, 'Error');
+ }
+ return resolvedPrettier;
+ });
+}
+exports.getPrettierInstance = getPrettierInstance;
+function getParsersFromLanguageId(languageId, prettierInstance, path) {
+ const supportedLanguages = getSupportLanguages(prettierInstance);
+ const language = supportedLanguages.find(lang => Array.isArray(lang.vscodeLanguageIds) &&
+ lang.vscodeLanguageIds.includes(languageId) &&
+ // Only for some specific filenames
+ (lang.extensions.length > 0 ||
+ (path != null &&
+ lang.filenames != null &&
+ lang.filenames.includes(path_1.basename(path)))));
+ if (!language) {
+ return [];
+ }
+ return language.parsers;
+}
+exports.getParsersFromLanguageId = getParsersFromLanguageId;
+function allLanguages(prettierInstance) {
+ const supportedLanguages = getSupportLanguages(prettierInstance);
+ return supportedLanguages.reduce((ids, language) => [...ids, ...(language.vscodeLanguageIds || [])], []);
+}
+exports.allLanguages = allLanguages;
+function enabledLanguages(prettierInstance) {
+ const { disableLanguages } = getConfig();
+ const languages = allLanguages(prettierInstance);
+ return languages.filter(x => disableLanguages.indexOf(x) == -1);
+}
+exports.enabledLanguages = enabledLanguages;
+function rangeLanguages() {
+ const { disableLanguages } = getConfig();
+ return [
+ 'javascript',
+ 'javascriptreact',
+ 'typescript',
+ 'typescriptreact',
+ 'json',
+ 'graphql',
+ ].filter(x => disableLanguages.indexOf(x) == -1);
+}
+exports.rangeLanguages = rangeLanguages;
+function getGroup(group, prettierInstance) {
+ const supportedLanguages = getSupportLanguages(prettierInstance);
+ return supportedLanguages.filter(language => language.group === group);
+}
+exports.getGroup = getGroup;
+function getSupportLanguages(prettierInstance) {
+ return prettierInstance.getSupportInfo(prettierInstance.version).languages;
+}
+function hasLocalPrettierInstalled(filePath) {
+ const localPrettier = requirePkg_1.requireLocalPkg(filePath, 'prettier', {
+ silent: true,
+ ignoreBundled: true,
+ });
+ return localPrettier != null;
+}
+exports.hasLocalPrettierInstalled = hasLocalPrettierInstalled;
+//# sourceMappingURL=utils.js.map
\ No newline at end of file