70 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.8 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 __defProp = Object.defineProperty;
 | 
						|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
 | 
						|
var __getOwnPropNames = Object.getOwnPropertyNames;
 | 
						|
var __hasOwnProp = Object.prototype.hasOwnProperty;
 | 
						|
var __export = (target, all) => {
 | 
						|
  for (var name in all)
 | 
						|
    __defProp(target, name, { get: all[name], enumerable: true });
 | 
						|
};
 | 
						|
var __copyProps = (to, from, except, desc) => {
 | 
						|
  if (from && typeof from === "object" || typeof from === "function") {
 | 
						|
    for (let key of __getOwnPropNames(from))
 | 
						|
      if (!__hasOwnProp.call(to, key) && key !== except)
 | 
						|
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
 | 
						|
  }
 | 
						|
  return to;
 | 
						|
};
 | 
						|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
 | 
						|
 | 
						|
// main.ts
 | 
						|
var main_exports = {};
 | 
						|
__export(main_exports, {
 | 
						|
  default: () => MyPlugin
 | 
						|
});
 | 
						|
module.exports = __toCommonJS(main_exports);
 | 
						|
var import_obsidian = require("obsidian");
 | 
						|
var MyPlugin = class extends import_obsidian.Plugin {
 | 
						|
  async onload() {
 | 
						|
    const templates = [
 | 
						|
      { regex: /(.*)\.###\s+(.*)$/, before: "### ", after: "$1$2" },
 | 
						|
      { regex: /(.*)\.##\s+(.*)$/, before: "## ", after: "$1$2" },
 | 
						|
      { regex: /(.*)\.#\s+(.*)$/, before: "# ", after: "$1$2" },
 | 
						|
      { regex: /(.*)\.\-\s+(.*)$/, before: "- ", after: "$1$2" },
 | 
						|
      { regex: /(.*)\.>\s+(.*)$/, before: "> ", after: "$1$2" },
 | 
						|
      { regex: /(.*)\.\+\s+(.*)$/, before: "+ ", after: "$1$2" },
 | 
						|
      { regex: /\-(.*)\.\[\]\s+(.*)$/, before: "- [ ] ", after: "$1$2 " },
 | 
						|
      { regex: /(.*)\.\[\]\s+(.*)$/, before: "[ ] ", after: "$1$2 " },
 | 
						|
      { regex: /\-(.*)\.\[x\]\s+(.*)$/, before: "- [x] ", after: "$1$2 " },
 | 
						|
      { regex: /(.*)\.\[x\]\s+(.*)$/, before: "[x] ", after: "$1$2 " }
 | 
						|
    ];
 | 
						|
    this.registerEvent(
 | 
						|
      this.app.workspace.on("editor-change", (editor) => {
 | 
						|
        const cm = editor;
 | 
						|
        const cursor = cm.getCursor();
 | 
						|
        const line = cm.getLine(cursor.line);
 | 
						|
        const lineLength = line.length;
 | 
						|
        const prevLine = cm.getLine(cursor.line - 1);
 | 
						|
        const prevLineLength = prevLine.length;
 | 
						|
        for (const { regex, before, after } of templates) {
 | 
						|
          if (regex.test(line)) {
 | 
						|
            const newLine = line.replace(regex, `${before}$2${after}`);
 | 
						|
            cm.replaceRange(newLine, { line: cursor.line, ch: 0 }, { line: cursor.line, ch: lineLength });
 | 
						|
            break;
 | 
						|
          } else if (regex.test(prevLine)) {
 | 
						|
            const newLine = prevLine.replace(regex, `${before}$2${after}`);
 | 
						|
            cm.replaceRange(newLine, { line: cursor.line - 1, ch: 0 }, { line: cursor.line - 1, ch: prevLineLength });
 | 
						|
            break;
 | 
						|
          }
 | 
						|
        }
 | 
						|
      })
 | 
						|
    );
 | 
						|
  }
 | 
						|
  onunload() {
 | 
						|
  }
 | 
						|
};
 |