mirror of
https://github.com/oen/liquid-template.git
synced 2026-07-22 05:40:24 +00:00
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { Plugin } from "obsidian";
|
|
|
|
import { LiquidTemplatesSettings, DEFAULT_SETTINGS, LiquidTemplatesSettingsTab } from "./settings";
|
|
import TemplateSuggest from "./suggest/template-suggest";
|
|
|
|
export default class LiquidTemplates extends Plugin {
|
|
private autosuggest: TemplateSuggest;
|
|
public settings: LiquidTemplatesSettings;
|
|
|
|
async onload(): Promise<void> {
|
|
console.log('loading liquid templates plugin');
|
|
await this.loadSettings();
|
|
|
|
this.setupAutosuggest();
|
|
|
|
this.addSettingTab(new LiquidTemplatesSettingsTab(this.app, this))
|
|
}
|
|
|
|
onunload(): void {
|
|
console.log('unloading liquid templates plugin');
|
|
}
|
|
|
|
setupAutosuggest(): void {
|
|
this.autosuggest = new TemplateSuggest(this.app, this);
|
|
|
|
this.registerCodeMirror((cm: CodeMirror.Editor) => {
|
|
cm.on("change", this.autosuggestHandler);
|
|
});
|
|
}
|
|
|
|
autosuggestHandler = (
|
|
cmEditor: CodeMirror.Editor,
|
|
changeObj: CodeMirror.EditorChange
|
|
): boolean => {
|
|
return this.autosuggest?.update(cmEditor, changeObj);
|
|
};
|
|
|
|
async loadSettings(): Promise<void> {
|
|
this.settings = Object.assign({ ...DEFAULT_SETTINGS }, await this.loadData());
|
|
}
|
|
|
|
async saveSettings(): Promise<void> {
|
|
this.setupAutosuggest();
|
|
await this.saveData(this.settings);
|
|
}
|
|
}
|