/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); var __export = (target, all) => { __markAsModule(target); for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __reExport = (target, module2, desc) => { if (module2 && typeof module2 === "object" || typeof module2 === "function") { for (let key of __getOwnPropNames(module2)) if (!__hasOwnProp.call(target, key) && key !== "default") __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); } return target; }; var __toModule = (module2) => { return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); }; // main.ts __export(exports, { default: () => RelativeLineNumbers }); var import_obsidian = __toModule(require("obsidian")); var import_gutter = __toModule(require("@codemirror/gutter")); var gutterMarker = (str) => new class extends import_gutter.GutterMarker { toDOM() { return document.createTextNode(str); } }(); var relativeLineNumbersExtension = () => (0, import_gutter.gutter)({ lineMarker(view, line) { const lineNo = view.state.doc.lineAt(line.from).number; if (lineNo > view.state.doc.lines) { return gutterMarker("0"); } const cursorLine = view.state.doc.lineAt(view.state.selection.asSingle().ranges[0].to).number; if (lineNo === cursorLine) { return gutterMarker("0"); } else { return gutterMarker(Math.abs(cursorLine - lineNo).toString()); } }, lineMarkerChange(update) { if (update.selectionSet) { const startLineNo = update.startState.doc.lineAt(update.startState.selection.asSingle().ranges[0].to).number; const lineNo = update.state.doc.lineAt(update.state.selection.asSingle().ranges[0].to).number; return lineNo !== startLineNo; } } }); var RelativeLineNumbers = class extends import_obsidian.Plugin { onload() { if (this.isLegacyEditorEnabled()) { this.registerLegacyExtension(); } else { this.registerEditorExtension(relativeLineNumbersExtension()); } } unload() { this.app.workspace.iterateCodeMirrors((cm) => { cm.off("cursorActivity", this.legacyHandler); cm.setOption("lineNumberFormatter", CodeMirror.defaults["lineNumberFormatter"]); if (!this.isShowLineNumberEnabled()) { cm.setOption("lineNumbers", false); } }); } registerLegacyExtension() { this.registerCodeMirror((cm) => { cm.setOption("lineNumbers", true); cm.on("cursorActivity", this.legacyHandler); }); } legacyHandler(cm) { const current = cm.getCursor().line + 1; if (cm.state.curLineNum === current) { return; } cm.state.curLineNum = current; cm.setOption("lineNumberFormatter", (line) => { if (line === current) { return String(current); } return String(Math.abs(current - line)); }); } isLegacyEditorEnabled() { return this.app.vault.getConfig("legacyEditor"); } isShowLineNumberEnabled() { return this.app.vault.getConfig("showLineNumber"); } }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGd1dHRlciwgR3V0dGVyTWFya2VyIH0gZnJvbSBcIkBjb2RlbWlycm9yL2d1dHRlclwiO1xyXG5cclxuY29uc3QgZ3V0dGVyTWFya2VyID0gKHN0cikgPT4gbmV3IGNsYXNzIGV4dGVuZHMgR3V0dGVyTWFya2VyIHtcclxuICB0b0RPTSgpIHsgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikgfVxyXG59XHJcblxyXG5jb25zdCByZWxhdGl2ZUxpbmVOdW1iZXJzRXh0ZW5zaW9uID0gKCkgPT4gZ3V0dGVyKHtcclxuICBsaW5lTWFya2VyKHZpZXcsIGxpbmUpIHtcclxuICAgIGNvbnN0IGxpbmVObyA9IHZpZXcuc3RhdGUuZG9jLmxpbmVBdChsaW5lLmZyb20pLm51bWJlclxyXG4gICAgaWYgKGxpbmVObyA+IHZpZXcuc3RhdGUuZG9jLmxpbmVzKSB7XHJcbiAgICAgIHJldHVybiBndXR0ZXJNYXJrZXIoXCIwXCIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY3Vyc29yTGluZSA9IHZpZXcuc3RhdGUuZG9jLmxpbmVBdCh2aWV3LnN0YXRlLnNlbGVjdGlvbi5hc1NpbmdsZSgpLnJhbmdlc1swXS50bykubnVtYmVyO1xyXG4gICAgaWYgKGxpbmVObyA9PT0gY3Vyc29yTGluZSkge1xyXG4gICAgICByZXR1cm4gZ3V0dGVyTWFya2VyKFwiMFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBndXR0ZXJNYXJrZXIoTWF0aC5hYnMoY3Vyc29yTGluZSAtIGxpbmVObykudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lTWFya2VyQ2hhbmdlKHVwZGF0ZSkge1xyXG4gICAgaWYgKHVwZGF0ZS5zZWxlY3Rpb25TZXQpIHtcclxuICAgICAgY29uc3Qgc3RhcnRMaW5lTm8gPSB1cGRhdGUuc3RhcnRTdGF0ZS5kb2MubGluZUF0KHVwZGF0ZS5zdGFydFN0YXRlLnNlbGVjdGlvbi5hc1NpbmdsZSgpLnJhbmdlc1swXS50bykubnVtYmVyXHJcbiAgICAgIGNvbnN0IGxpbmVObyA9IHVwZGF0ZS5zdGF0ZS5kb2MubGluZUF0KHVwZGF0ZS5zdGF0ZS5zZWxlY3Rpb24uYXNTaW5nbGUoKS5yYW5nZXNbMF0udG8pLm51bWJlclxyXG4gICAgICByZXR1cm4gbGluZU5vICE9PSBzdGFydExpbmVObztcclxuICAgIH1cclxuICB9XHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWxhdGl2ZUxpbmVOdW1iZXJzIGV4dGVuZHMgUGx1Z2luIHtcclxuICBvbmxvYWQoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xlZ2FjeUVkaXRvckVuYWJsZWQoKSkge1xyXG4gICAgICB0aGlzLnJlZ2lzdGVyTGVnYWN5RXh0ZW5zaW9uKClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24ocmVsYXRpdmVMaW5lTnVtYmVyc0V4dGVuc2lvbigpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdW5sb2FkKCkge1xyXG4gICAgdGhpcy5hcHAud29ya3NwYWNlLml0ZXJhdGVDb2RlTWlycm9ycygoY20pID0+IHtcclxuICAgICAgY20ub2ZmKFwiY3Vyc29yQWN0aXZpdHlcIiwgdGhpcy5sZWdhY3lIYW5kbGVyKTtcclxuICAgICAgY20uc2V0T3B0aW9uKFwibGluZU51bWJlckZvcm1hdHRlclwiLCBDb2RlTWlycm9yLmRlZmF1bHRzW1wibGluZU51bWJlckZvcm1hdHRlclwiXSk7XHJcbiAgICAgIGlmICghdGhpcy5pc1Nob3dMaW5lTnVtYmVyRW5hYmxlZCgpKSB7XHJcbiAgICAgICAgY20uc2V0T3B0aW9uKFwibGluZU51bWJlcnNcIiwgZmFsc2UpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJMZWdhY3lFeHRlbnNpb24oKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyQ29kZU1pcnJvcigoY20pID0+IHtcclxuICAgICAgY20uc2V0T3B0aW9uKFwibGluZU51bWJlcnNcIiwgdHJ1ZSlcclxuICAgICAgY20ub24oXCJjdXJzb3JBY3Rpdml0eVwiLCB0aGlzLmxlZ2FjeUhhbmRsZXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsZWdhY3lIYW5kbGVyKGNtKSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gY20uZ2V0Q3Vyc29yKCkubGluZSArIDE7XHJcbiAgICBpZiAoY20uc3RhdGUuY3VyTGluZU51bSA9PT0gY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjbS5zdGF0ZS5jdXJMaW5lTnVtID0gY3VycmVudDtcclxuICAgIGNtLnNldE9wdGlvbihcImxpbmVOdW1iZXJGb3JtYXR0ZXJcIiwgKGxpbmU6IG51bWJlcikgPT4ge1xyXG4gICAgICBpZiAobGluZSA9PT0gY3VycmVudCkge1xyXG4gICAgICAgIHJldHVybiBTdHJpbmcoY3VycmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBTdHJpbmcoTWF0aC5hYnMoY3VycmVudCAtIGxpbmUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNMZWdhY3lFZGl0b3JFbmFibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZyhcImxlZ2FjeUVkaXRvclwiKVxyXG4gIH1cclxuXHJcbiAgaXNTaG93TGluZU51bWJlckVuYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcHAudmF1bHQuZ2V0Q29uZmlnKFwic2hvd0xpbmVOdW1iZXJcIilcclxuICB9XHJcbn1cclxuXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUF1QjtBQUN2QixvQkFBcUM7QUFFckMsSUFBTSxlQUFlLENBQUMsUUFBUSxJQUFJLGNBQWMsMkJBQWE7QUFBQSxFQUMzRCxRQUFRO0FBQUUsV0FBTyxTQUFTLGVBQWU7QUFBQTtBQUFBO0FBRzNDLElBQU0sK0JBQStCLE1BQU0sMEJBQU87QUFBQSxFQUNoRCxXQUFXLE1BQU0sTUFBTTtBQUNyQixVQUFNLFNBQVMsS0FBSyxNQUFNLElBQUksT0FBTyxLQUFLLE1BQU07QUFDaEQsUUFBSSxTQUFTLEtBQUssTUFBTSxJQUFJLE9BQU87QUFDakMsYUFBTyxhQUFhO0FBQUE7QUFFdEIsVUFBTSxhQUFhLEtBQUssTUFBTSxJQUFJLE9BQU8sS0FBSyxNQUFNLFVBQVUsV0FBVyxPQUFPLEdBQUcsSUFBSTtBQUN2RixRQUFJLFdBQVcsWUFBWTtBQUN6QixhQUFPLGFBQWE7QUFBQSxXQUNmO0FBQ0wsYUFBTyxhQUFhLEtBQUssSUFBSSxhQUFhLFFBQVE7QUFBQTtBQUFBO0FBQUEsRUFHdEQsaUJBQWlCLFFBQVE7QUFDdkIsUUFBSSxPQUFPLGNBQWM7QUFDdkIsWUFBTSxjQUFjLE9BQU8sV0FBVyxJQUFJLE9BQU8sT0FBTyxXQUFXLFVBQVUsV0FBVyxPQUFPLEdBQUcsSUFBSTtBQUN0RyxZQUFNLFNBQVMsT0FBTyxNQUFNLElBQUksT0FBTyxPQUFPLE1BQU0sVUFBVSxXQUFXLE9BQU8sR0FBRyxJQUFJO0FBQ3ZGLGFBQU8sV0FBVztBQUFBO0FBQUE7QUFBQTtBQUt4Qix3Q0FBaUQsdUJBQU87QUFBQSxFQUN0RCxTQUFTO0FBQ1AsUUFBSSxLQUFLLHlCQUF5QjtBQUNoQyxXQUFLO0FBQUEsV0FDQTtBQUNMLFdBQUssd0JBQXdCO0FBQUE7QUFBQTtBQUFBLEVBSWpDLFNBQVM7QUFDUCxTQUFLLElBQUksVUFBVSxtQkFBbUIsQ0FBQyxPQUFPO0FBQzVDLFNBQUcsSUFBSSxrQkFBa0IsS0FBSztBQUM5QixTQUFHLFVBQVUsdUJBQXVCLFdBQVcsU0FBUztBQUN4RCxVQUFJLENBQUMsS0FBSywyQkFBMkI7QUFDbkMsV0FBRyxVQUFVLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtsQywwQkFBMEI7QUFDeEIsU0FBSyxtQkFBbUIsQ0FBQyxPQUFPO0FBQzlCLFNBQUcsVUFBVSxlQUFlO0FBQzVCLFNBQUcsR0FBRyxrQkFBa0IsS0FBSztBQUFBO0FBQUE7QUFBQSxFQUlqQyxjQUFjLElBQUk7QUFDaEIsVUFBTSxVQUFVLEdBQUcsWUFBWSxPQUFPO0FBQ3RDLFFBQUksR0FBRyxNQUFNLGVBQWUsU0FBUztBQUNuQztBQUFBO0FBRUYsT0FBRyxNQUFNLGFBQWE7QUFDdEIsT0FBRyxVQUFVLHVCQUF1QixDQUFDLFNBQWlCO0FBQ3BELFVBQUksU0FBUyxTQUFTO0FBQ3BCLGVBQU8sT0FBTztBQUFBO0FBR2hCLGFBQU8sT0FBTyxLQUFLLElBQUksVUFBVTtBQUFBO0FBQUE7QUFBQSxFQUlyQyx3QkFBd0I7QUFDdEIsV0FBTyxLQUFLLElBQUksTUFBTSxVQUFVO0FBQUE7QUFBQSxFQUdsQywwQkFBMEI7QUFDeEIsV0FBTyxLQUFLLElBQUksTUFBTSxVQUFVO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K