Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / lib / ignoreFileHandler.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/lib/ignoreFileHandler.js b/.config/coc/extensions/node_modules/coc-prettier/lib/ignoreFileHandler.js
new file mode 100644 (file)
index 0000000..4599f14
--- /dev/null
@@ -0,0 +1,79 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+const coc_nvim_1 = require("coc.nvim");
+const fs_1 = require("fs");
+const path = tslib_1.__importStar(require("path"));
+const errorHandler_1 = require("./errorHandler");
+const utils_1 = require("./utils");
+const ignore = require('ignore');
+const nullIgnorer = { ignores: () => false };
+/**
+ * Create an ignore file handler. Will lazily read ignore files on a per-resource
+ * basis, and cache the contents until it changes.
+ */
+function ignoreFileHandler(disposables) {
+    const ignorers = new Map();
+    disposables.push({ dispose: () => ignorers.clear() });
+    return {
+        fileIsIgnored(filePath) {
+            const { ignorer, ignoreFilePath } = getIgnorerForFile(filePath);
+            return ignorer.ignores(path.relative(path.dirname(ignoreFilePath), filePath));
+        },
+    };
+    function getIgnorerForFile(fsPath) {
+        const absolutePath = getIgnorePathForFile(fsPath, utils_1.getConfig(coc_nvim_1.Uri.file(fsPath)).ignorePath);
+        if (!absolutePath) {
+            return { ignoreFilePath: '', ignorer: nullIgnorer };
+        }
+        if (!ignorers.has(absolutePath)) {
+            loadIgnorer(coc_nvim_1.Uri.file(absolutePath));
+        }
+        if (!fs_1.existsSync(absolutePath)) {
+            // Don't log default value.
+            const ignorePath = utils_1.getConfig(coc_nvim_1.Uri.file(fsPath)).ignorePath;
+            if (ignorePath !== '.prettierignore') {
+                errorHandler_1.addToOutput(`Wrong prettier.ignorePath provided in your settings. The path (${ignorePath}) does not exist.`, 'Warning');
+            }
+            return { ignoreFilePath: '', ignorer: nullIgnorer };
+        }
+        return {
+            ignoreFilePath: absolutePath,
+            ignorer: ignorers.get(absolutePath),
+        };
+    }
+    function loadIgnorer(ignoreUri) {
+        let ignorer = nullIgnorer;
+        if (!ignorers.has(ignoreUri.fsPath)) {
+            const fileWatcher = coc_nvim_1.workspace.createFileSystemWatcher(ignoreUri.fsPath);
+            disposables.push(fileWatcher);
+            fileWatcher.onDidCreate(loadIgnorer, null, disposables);
+            fileWatcher.onDidChange(loadIgnorer, null, disposables);
+            fileWatcher.onDidDelete(unloadIgnorer, null, disposables);
+        }
+        if (fs_1.existsSync(ignoreUri.fsPath)) {
+            const ignoreFileContents = fs_1.readFileSync(ignoreUri.fsPath, 'utf8');
+            ignorer = ignore().add(ignoreFileContents);
+        }
+        ignorers.set(ignoreUri.fsPath, ignorer);
+    }
+    function unloadIgnorer(ignoreUri) {
+        ignorers.set(ignoreUri.fsPath, nullIgnorer);
+    }
+}
+function getIgnorePathForFile(_filePath, ignorePath) {
+    // Configuration `prettier.ignorePath` is set to `null`
+    if (!ignorePath) {
+        return null;
+    }
+    if (coc_nvim_1.workspace.workspaceFolder) {
+        const folder = coc_nvim_1.workspace.workspaceFolder;
+        return folder ? getPath(ignorePath, coc_nvim_1.Uri.parse(folder.uri).fsPath) : null;
+    }
+    return null;
+}
+function getPath(fsPath, relativeTo) {
+    return path.isAbsolute(fsPath) ? fsPath : path.join(relativeTo, fsPath);
+}
+exports.default = ignoreFileHandler;
+//# sourceMappingURL=ignoreFileHandler.js.map
\ No newline at end of file