remove funding, register keydown for new windows

From the feedback from maintainers.

To allow the plugin to work on popup windows, we register an event on
window open that registers the keydown DOM event implementing expand on
Space/Tab.

There may be a better solution.
This commit is contained in:
Spencer Gouw 2023-03-15 14:17:42 -07:00
parent bc98eadcd2
commit 06ced0a5a2
2 changed files with 29 additions and 14 deletions

42
main.ts
View file

@ -59,21 +59,36 @@ export default class JellySnippets extends Plugin {
async onload() {
await this.loadSettings();
// Check settings and load search snippets in.
this.reloadSearchSnippets();
this.registerDomEvent(document, "keydown", (evt: KeyboardEvent) => {
if (
((this.settings.triggerOnSpace && evt.code === "Space") ||
(this.settings.triggerOnTab && evt.code === "Tab")) &&
// TODO: Add a dropdown setting so that users can control which modifier key cancels things out, or if any does at all.
(!evt.shiftKey) // * don't trigger if shift is pressed down too however
) {
const view = this.app.workspace.getActiveViewOfType(MarkdownView);
if (view) {
this.triggerSearchSnippet(view.editor);
// If keydown events are set...
if (this.settings.triggerOnSpace || this.settings.triggerOnTab) {
const onKeyEvent = (evt: KeyboardEvent) => {
if (this.settings === undefined) {
console.log("undefined settings");
}
}
});
if (
(!evt.shiftKey) && // * don't trigger if shift is pressed down too however
((this.settings.triggerOnSpace && evt.code === "Space") ||
(this.settings.triggerOnTab && evt.code === "Tab"))
// TODO: Add a dropdown setting so that users can control which modifier key cancels things out, or if any does at all.
) {
const view = this.app.workspace.getActiveViewOfType(MarkdownView);
if (view) {
this.triggerSearchSnippet(view.editor);
}
}
};
// Register for main window.
this.registerDomEvent(document, "keydown", onKeyEvent);
// If window changes, registerDomEvent for new window if so.
this.registerEvent(this.app.workspace.on('window-open', (event) => {
this.registerDomEvent(activeWindow, "keydown", onKeyEvent);
}));
}
this.addCommand({
id: "trigger-search-snippet",
@ -261,3 +276,4 @@ class JellySnippetsSettingTab extends PluginSettingTab {
);
}
}

View file

@ -6,6 +6,5 @@
"description": "This plugin implements text snippets: replace text after typing a snippet on some trigger or command.",
"author": "Spencer Gouw",
"authorUrl": "github.com/rabirabirara",
"fundingUrl": "",
"isDesktopOnly": false
}