Files
obsidian_note/.obsidian/plugins/obsidian-relativenumber/main.js
2025-12-04 09:12:56 +08:00

106 lines
9.0 KiB
JavaScript

/*
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