mirror of
https://github.com/esm7/obsidian-vimrc-support.git
synced 2026-07-22 05:00:25 +00:00
Clean-up: use tabs instead of soft tabs
This commit is contained in:
parent
9c20fb513f
commit
5f82041bb1
1 changed files with 94 additions and 94 deletions
188
main.ts
188
main.ts
|
|
@ -4,14 +4,14 @@ import { EditorSelection, Notice, App, MarkdownView, Plugin, PluginSettingTab, S
|
|||
declare const CodeMirror: any;
|
||||
|
||||
const enum vimStatus {
|
||||
normal = 'normal',
|
||||
insert = 'insert',
|
||||
visual = 'visual',
|
||||
replace = 'replace',
|
||||
normal = 'normal',
|
||||
insert = 'insert',
|
||||
visual = 'visual',
|
||||
replace = 'replace',
|
||||
}
|
||||
type VimStatusPrompt = string;
|
||||
type VimStatusPromptMap = {
|
||||
[status in vimStatus]: VimStatusPrompt;
|
||||
[status in vimStatus]: VimStatusPrompt;
|
||||
};
|
||||
|
||||
interface Settings {
|
||||
|
|
@ -21,7 +21,7 @@ interface Settings {
|
|||
fixedNormalModeLayout: boolean,
|
||||
capturedKeyboardMap: Record<string, string>,
|
||||
supportJsCommands?: boolean
|
||||
vimStatusPromptMap: VimStatusPromptMap;
|
||||
vimStatusPromptMap: VimStatusPromptMap;
|
||||
}
|
||||
|
||||
const DEFAULT_SETTINGS: Settings = {
|
||||
|
|
@ -31,19 +31,19 @@ const DEFAULT_SETTINGS: Settings = {
|
|||
fixedNormalModeLayout: false,
|
||||
capturedKeyboardMap: {},
|
||||
supportJsCommands: false,
|
||||
vimStatusPromptMap: {
|
||||
normal: '🟢',
|
||||
insert: '🟠',
|
||||
visual: '🟡',
|
||||
replace: '🔴',
|
||||
},
|
||||
vimStatusPromptMap: {
|
||||
normal: '🟢',
|
||||
insert: '🟠',
|
||||
visual: '🟡',
|
||||
replace: '🔴',
|
||||
},
|
||||
}
|
||||
|
||||
const vimStatusPromptClassNameMap = {
|
||||
normal: 'plugin-obsidian-vimrc-support-prompt-normal',
|
||||
insert: 'plugin-obsidian-vimrc-support-prompt-insert',
|
||||
visual: 'plugin-obsidian-vimrc-support-prompt-visual',
|
||||
replace: 'plugin-obsidian-vimrc-support-prompt-replace',
|
||||
normal: 'plugin-obsidian-vimrc-support-prompt-normal',
|
||||
insert: 'plugin-obsidian-vimrc-support-prompt-insert',
|
||||
visual: 'plugin-obsidian-vimrc-support-prompt-visual',
|
||||
replace: 'plugin-obsidian-vimrc-support-prompt-replace',
|
||||
}
|
||||
|
||||
// NOTE: to future maintainers, please make sure all mapping commands are included in this array.
|
||||
|
|
@ -73,23 +73,23 @@ export default class VimrcPlugin extends Plugin {
|
|||
private vimChordStatusBar: HTMLElement = null;
|
||||
private vimStatusBar: HTMLElement = null;
|
||||
private currentVimStatus: vimStatus = vimStatus.normal;
|
||||
private currentVimStatusClassName: string =
|
||||
vimStatusPromptClassNameMap[vimStatus.normal];
|
||||
private currentVimStatusClassName: string =
|
||||
vimStatusPromptClassNameMap[vimStatus.normal];
|
||||
private customVimKeybinds: { [name: string]: boolean } = {};
|
||||
private currentSelection: [EditorSelection] = null;
|
||||
private isInsertMode: boolean = false;
|
||||
|
||||
updateVimStatusBar() {
|
||||
this.vimStatusBar?.setText(
|
||||
this.settings.vimStatusPromptMap[this.currentVimStatus]
|
||||
);
|
||||
this.vimStatusBar?.classList.replace(
|
||||
this.currentVimStatusClassName,
|
||||
vimStatusPromptClassNameMap[this.currentVimStatus]
|
||||
);
|
||||
this.currentVimStatusClassName =
|
||||
vimStatusPromptClassNameMap[this.currentVimStatus];
|
||||
}
|
||||
updateVimStatusBar() {
|
||||
this.vimStatusBar?.setText(
|
||||
this.settings.vimStatusPromptMap[this.currentVimStatus]
|
||||
);
|
||||
this.vimStatusBar?.classList.replace(
|
||||
this.currentVimStatusClassName,
|
||||
vimStatusPromptClassNameMap[this.currentVimStatus]
|
||||
);
|
||||
this.currentVimStatusClassName =
|
||||
vimStatusPromptClassNameMap[this.currentVimStatus];
|
||||
}
|
||||
|
||||
async captureKeyboardLayout() {
|
||||
// This is experimental API and it might break at some point:
|
||||
|
|
@ -179,7 +179,7 @@ export default class VimrcPlugin extends Plugin {
|
|||
this.isInsertMode = false;
|
||||
this.currentVimStatus = vimStatus.normal;
|
||||
if (this.settings.displayVimMode)
|
||||
this.updateVimStatusBar();
|
||||
this.updateVimStatusBar();
|
||||
cmEditor.off('vim-mode-change', this.logVimModeChange);
|
||||
cmEditor.on('vim-mode-change', this.logVimModeChange);
|
||||
|
||||
|
|
@ -248,7 +248,7 @@ export default class VimrcPlugin extends Plugin {
|
|||
break;
|
||||
}
|
||||
if (this.settings.displayVimMode)
|
||||
this.updateVimStatusBar();
|
||||
this.updateVimStatusBar();
|
||||
}
|
||||
|
||||
onunload() {
|
||||
|
|
@ -276,7 +276,7 @@ export default class VimrcPlugin extends Plugin {
|
|||
this.defineJsFile(this.codeMirrorVimObject);
|
||||
this.defineSource(this.codeMirrorVimObject);
|
||||
|
||||
this.loadVimCommands(vimCommands);
|
||||
this.loadVimCommands(vimCommands);
|
||||
|
||||
this.prepareChordDisplay();
|
||||
this.prepareVimModeDisplay();
|
||||
|
|
@ -614,12 +614,12 @@ export default class VimrcPlugin extends Plugin {
|
|||
prepareVimModeDisplay() {
|
||||
if (this.settings.displayVimMode) {
|
||||
this.vimStatusBar = this.addStatusBarItem() // Add status bar item
|
||||
this.vimStatusBar.setText(
|
||||
this.settings.vimStatusPromptMap[vimStatus.normal]
|
||||
); // Init the vimStatusBar with normal mode
|
||||
this.vimStatusBar?.addClass(
|
||||
vimStatusPromptClassNameMap[vimStatus.normal]
|
||||
); // Add the initial class name for normal mode
|
||||
this.vimStatusBar.setText(
|
||||
this.settings.vimStatusPromptMap[vimStatus.normal]
|
||||
); // Init the vimStatusBar with normal mode
|
||||
this.vimStatusBar?.addClass(
|
||||
vimStatusPromptClassNameMap[vimStatus.normal]
|
||||
); // Add the initial class name for normal mode
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -781,64 +781,64 @@ class SettingsTab extends PluginSettingTab {
|
|||
})
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Normal mode prompt')
|
||||
.setDesc('Set the status prompt text for normal mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟢');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.normal ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.normal
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.normal = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new Setting(containerEl)
|
||||
.setName('Normal mode prompt')
|
||||
.setDesc('Set the status prompt text for normal mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟢');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.normal ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.normal
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.normal = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Insert mode prompt')
|
||||
.setDesc('Set the status prompt text for insert mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟠');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.insert ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.insert
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.insert = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new Setting(containerEl)
|
||||
.setName('Insert mode prompt')
|
||||
.setDesc('Set the status prompt text for insert mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟠');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.insert ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.insert
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.insert = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Visual mode prompt')
|
||||
.setDesc('Set the status prompt text for visual mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟡');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.visual ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.visual
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.visual = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new Setting(containerEl)
|
||||
.setName('Visual mode prompt')
|
||||
.setDesc('Set the status prompt text for visual mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🟡');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.visual ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.visual
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.visual = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Replace mode prompt')
|
||||
.setDesc('Set the status prompt text for replace mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🔴');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.replace ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.replace
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.replace = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new Setting(containerEl)
|
||||
.setName('Replace mode prompt')
|
||||
.setDesc('Set the status prompt text for replace mode.')
|
||||
.addText((text) => {
|
||||
text.setPlaceholder('Default: 🔴');
|
||||
text.setValue(
|
||||
this.plugin.settings.vimStatusPromptMap.replace ||
|
||||
DEFAULT_SETTINGS.vimStatusPromptMap.replace
|
||||
);
|
||||
text.onChange((value) => {
|
||||
this.plugin.settings.vimStatusPromptMap.replace = value;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue