From 8f8b1636151e8ce1ca03c8de448efdab0352e265 Mon Sep 17 00:00:00 2001 From: Salman AlSaigal Date: Wed, 14 Apr 2021 06:08:04 +0300 Subject: [PATCH] Add settings tab --- main.ts | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/main.ts b/main.ts index bbc9224..8e4390c 100644 --- a/main.ts +++ b/main.ts @@ -1,14 +1,25 @@ -import { App, Plugin, TFile, MarkdownView } from 'obsidian'; +import { App, Plugin, TFile, MarkdownView, PluginSettingTab, Setting } from 'obsidian'; declare const CodeMirror: any; +interface Settings { +} + +const DEFAULT_SETTINGS: Settings = { +} + export default class VimrcPlugin extends Plugin { + settings: Settings; + private lastYankBuffer = new Array(0); private lastSystemClipboard = ""; private yankToSystemClipboard: boolean = false; - onload() { + async onload() { console.log('loading Vimrc plugin'); + await this.loadSettings(); + this.addSettingTab(new SettingsTab(this.app, this)) + this.registerEvent(this.app.workspace.on('file-open', (file: TFile) => { const VIMRC_FILE_NAME = '.obsidian.vimrc'; this.app.vault.adapter.read(VIMRC_FILE_NAME). @@ -27,6 +38,15 @@ export default class VimrcPlugin extends Plugin { }) } + async loadSettings(){ + const data = await this.loadData(); + this.settings = Object.assign({}, DEFAULT_SETTINGS, data); + } + + async saveSettings(){ + await this.saveData(this.settings); + } + onunload() { console.log('unloading Vimrc plugin (but Vim commands that were already loaded will still work)'); } @@ -110,3 +130,19 @@ export default class VimrcPlugin extends Plugin { } } +class SettingsTab extends PluginSettingTab { + plugin: VimrcPlugin; + + constructor(app: App, plugin: VimrcPlugin) { + super(app, plugin); + this.plugin = plugin; + } + + display(): void { + let {containerEl} = this; + + containerEl.empty(); + + containerEl.createEl('h2', {text: 'Obsidian Vimrc Support Settings'}); + } +} \ No newline at end of file