8 lines
8.0 KiB
JavaScript
8 lines
8.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 w=Object.create;var m=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var T=r=>m(r,"__esModule",{value:!0});var D=(r,t)=>{T(r);for(var e in t)m(r,e,{get:t[e],enumerable:!0})},P=(r,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of j(t))!R.call(r,o)&&o!=="default"&&m(r,o,{get:()=>t[o],enumerable:!(e=A(t,o))||e.enumerable});return r},h=r=>P(T(m(r!=null?w(S(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var l=(r,t,e)=>new Promise((o,s)=>{var a=u=>{try{d(e.next(u))}catch(b){s(b)}},n=u=>{try{d(e.throw(u))}catch(b){s(b)}},d=u=>u.done?o(u.value):Promise.resolve(u.value).then(a,n);d((e=e.apply(r,t)).next())});D(exports,{default:()=>E});var k=h(require("obsidian"));var f=h(require("obsidian"));var c=h(require("obsidian")),g=class extends c.Modal{constructor(t,e,o){super(t.app);this.plugin=t,this.rule=e,this.idx=o}onOpen(){let{contentEl:t}=this;t.empty(),new c.Setting(t).setName("Environment").setClass("tabout-match-text").setDesc("The Codemirror Token for the Environment.").addText(o=>{o.setValue(this.rule.tokenMatcher).setPlaceholder("em").onChange(s=>{this.rule.tokenMatcher=s})}),new c.Setting(t).setName("Jump after the Characters").setClass("tabout-match-text").setDesc("If enabled the Cursor will be set after the Characters, otherwise before them.").addToggle(o=>{o.setValue(this.rule.jumpAfter).onChange(s=>{this.rule.jumpAfter=s})}),this.rule.lookups.forEach((o,s)=>{new c.Setting(t).setName(s===0?"Characters":"").setClass("tabout-jump-char").addExtraButton(a=>{a.setIcon("trash").onClick(()=>{this.rule.lookups.remove(this.rule.lookups[s]),this.onOpen()})}).addText(a=>{a.setValue(o).setPlaceholder("**").onChange(n=>{this.rule.lookups[s]=n})})}),new c.Setting(t).setClass("tabout-jump-char").addButton(o=>{o.setButtonText("Add Character").onClick(()=>{this.rule.lookups.push(""),this.onOpen()})});let e=createEl("button",{text:"Save Rule",cls:"tabout-add-rule"});e.onClickEvent(()=>{this.close()}),t.createDiv({cls:"tabout-add-rule-container"}).append(e)}onClose(){let{contentEl:t}=this;t.empty(),dispatchEvent(new CustomEvent("tabout-edit-complete",{detail:{rule:this.rule,idx:this.idx}}))}};var i=h(require("obsidian")),p=class extends i.Modal{constructor(t,e=""){super(t.app);this.plugin=t,this.rule={lookups:[""],tokenMatcher:e,jumpAfter:!0}}onOpen(){let{contentEl:t}=this;t.empty(),new i.Setting(t).setName("Environment").setClass("tabout-match-text").setDesc("The Codemirror Token for the Environment.").addText(s=>{s.setValue(this.rule.tokenMatcher).setPlaceholder("em").onChange(a=>{this.rule.tokenMatcher=a})}),new i.Setting(t).setName("Jump after the Characters").setClass("tabout-match-text").setDesc("If enabled the Cursor will be set after the Characters, otherwise before them.").addToggle(s=>{s.setValue(this.rule.jumpAfter).onChange(a=>{this.rule.jumpAfter=a})}),this.rule.lookups.forEach((s,a)=>{new i.Setting(t).setName(a===0?"Characters":"").setClass("tabout-jump-char").addExtraButton(n=>{n.setIcon("trash").onClick(()=>{this.rule.lookups.remove(this.rule.lookups[a]),this.onOpen()})}).addText(n=>{n.setValue(s).setPlaceholder("**").onChange(d=>{this.rule.lookups[a]=d})})}),new i.Setting(t).setClass("tabout-jump-char").addButton(s=>{s.setButtonText("Add Character").onClick(()=>{this.rule.lookups.push(""),this.onOpen()})});let e=createEl("button",{text:"Add this Rule",cls:"tabout-add-rule"});e.onClickEvent(()=>{this.rule.lookups.length>=1&&this.rule.lookups.first()?(this.save(),this.close()):new i.Notice("Something is still Missing")});let o=createEl("button",{text:"Cancel",cls:"tabout-add-rule"});o.onClickEvent(()=>{this.close()}),t.createDiv({cls:"tabout-add-rule-container"}).append(e,o)}onClose(){let{contentEl:t}=this;t.empty()}save(){dispatchEvent(new CustomEvent("tabout-rule-create",{detail:{rule:this.rule}}))}};var C=class extends f.PluginSettingTab{constructor(t,e){super(t,e);this.plugin=e,addEventListener("tabout-edit-complete",o=>l(this,null,function*(){this.plugin.settings.rules[o.detail.idx]=o.detail.rule,this.display(),yield this.plugin.saveSettings()})),addEventListener("tabout-rule-create",o=>l(this,null,function*(){this.plugin.settings.rules.push(o.detail.rule),this.display(),yield this.plugin.saveSettings()}))}display(){let{containerEl:t}=this,{settings:e}=this.plugin;t.empty(),t.createEl("h2",{text:"Obsidian Tabout"}),e.rules.forEach((s,a)=>{new f.Setting(t).setName(`Rule #${a}`).setDesc(this.generateDescription(s)).addButton(n=>{n.setButtonText("Edit").onClick(()=>{new g(this.plugin,s,a).open()})}).addExtraButton(n=>{n.setIcon("trash").setTooltip("Delete Rule").onClick(()=>l(this,null,function*(){e.rules.remove(s),yield this.plugin.saveSettings(),this.display()}))})});let o=createEl("button",{text:"Add Rule",cls:"tabout-add-rule"});o.onClickEvent(()=>{new p(this.plugin).open()}),t.createDiv({cls:"tabout-add-rule-container"}).append(o)}generateDescription(t){let e=document.createDocumentFragment();return e.append("This Rule is only active in "),e.append(createEl("code",{text:t.tokenMatcher?t.tokenMatcher:"all"})),e.append(" Environments and with the press of "),e.append(createEl("kbd",{text:"Tab",cls:"tabout-kbd"})),e.append(" you will jump to one of these characters: "),t.lookups.forEach((o,s)=>{e.append(createEl("code",{text:o})),s!=t.lookups.length-1&&e.append(", ")}),e}};var x={rules:[{tokenMatcher:"Document",lookups:['"',"'",")","}"],jumpAfter:!0},{tokenMatcher:"formatting_formatting-quote_formatting-quote-1_hmd-callout",lookups:['"',"'",")","}"],jumpAfter:!0},{tokenMatcher:"quote",lookups:['"',"'",")","}"],jumpAfter:!0},{tokenMatcher:"hmd-internal-link",lookups:["]"],jumpAfter:!0},{tokenMatcher:"formatting-link_formatting-link-start",lookups:["]]"],jumpAfter:!0},{tokenMatcher:"strong",lookups:["**"],jumpAfter:!0},{tokenMatcher:"em",lookups:["*","_"],jumpAfter:!0},{tokenMatcher:"math",lookups:["$"],jumpAfter:!0},{tokenMatcher:"code",lookups:["`"],jumpAfter:!0},{tokenMatcher:"header_header",lookups:['"',"'",")","}","]"],jumpAfter:!0},{tokenMatcher:"list-1",lookups:['"',"'",")","}","]"],jumpAfter:!0},{tokenMatcher:"list-2",lookups:['"',"'",")","}","]"],jumpAfter:!0},{tokenMatcher:"list-3",lookups:['"',"'",")","}","]"],jumpAfter:!0},{tokenMatcher:"hmd-codeblock",lookups:[")","}"],jumpAfter:!0}]};var M=h(require("@codemirror/view")),v=h(require("@codemirror/state")),y=h(require("@codemirror/language")),E=class extends k.Plugin{constructor(){super(...arguments);this.getToken=t=>(0,y.syntaxTree)(t).resolveInner(t.selection.main.head,-1).type.name;this.tabout=t=>{for(let e of this.settings.rules)if(t.contains(e.tokenMatcher)){let o=this.app.workspace.getActiveViewOfType(k.MarkdownView).editor,s=o.getCursor(),a=o.getLine(s.line).substring(s.ch),n=Math.min(...this.getIndices(e.lookups,a,e.jumpAfter));if(n!=1/0)return o.setCursor(s.line,s.ch+n),!0}return!1};this.legacyTabout=(t,e)=>{if(e.text.first()===" "){let o=t.getTokenTypeAt(t.getCursor());this.tabout(o)&&e.cancel()}}}onload(){return l(this,null,function*(){yield this.loadSettings(),this.legacy=this.app.vault.config.legacyEditor,this.legacy?this.registerCodeMirror(t=>{t.on("beforeChange",this.legacyTabout)}):this.registerEditorExtension(v.Prec.high(M.keymap.of([{key:"Tab",run:t=>this.tabout(this.getToken(t.state))}]))),this.addSettingTab(new C(this.app,this)),this.addCommand({id:"tabout-add-rule-here",name:"Add Rule for this Environment",editorCallback:t=>{let e="";this.legacy?e=t.cm.getTokenTypeAt(t.getCursor()):e=this.getToken(t.cm.state),new p(this,e).open()}})})}getIndices(t,e,o){let s=[];return t.forEach(a=>{let n=e.indexOf(a);n!=-1&&s.push(o?n+a.length:n)}),s}onunload(){this.legacy&&this.app.workspace.iterateCodeMirrors(t=>t.off("beforeChange",this.legacyTabout))}loadSettings(){return l(this,null,function*(){this.settings=Object.assign({},x,yield this.loadData())})}saveSettings(){return l(this,null,function*(){yield this.saveData(this.settings)})}};
|
|
|
|
/* nosourcemap */ |