Tab to switch contexts, alt+enter to inject a link

This commit is contained in:
Simon Cambier
2022-06-25 12:01:49 +02:00
parent 887787d303
commit b718f8e5cb
7 changed files with 94 additions and 83 deletions

View File

@@ -15,7 +15,7 @@ import { onDestroy, onMount, tick } from "svelte"
import { MarkdownView } from "obsidian"
import { getSuggestions } from "src/search"
import ModalContainer from "./ModalContainer.svelte"
import type { OmnisearchInFileModal, OmnisearchVaultModal } from "src/modals"
import { OmnisearchInFileModal, OmnisearchVaultModal } from "src/modals"
import ResultItemInFile from "./ResultItemInFile.svelte"
import { Query } from "src/query"
@@ -33,15 +33,16 @@ onMount(() => {
if (lastSearch && !searchQuery) {
searchQuery = lastSearch
}
eventBus.disable("vault")
eventBus.enable("infile")
eventBus.on("infile", "enter", openSelection)
eventBus.on("infile", "arrow-up", () => moveIndex(-1))
eventBus.on("infile", "arrow-down", () => moveIndex(1))
eventBus.on("infile", "tab", switchToVaultModal)
})
onDestroy(() => {
eventBus.enable("vault")
eventBus.disable("infile")
})
$: (async () => {
@@ -127,6 +128,11 @@ async function openSelection(): Promise<void> {
})
}
}
function switchToVaultModal(): void {
new OmnisearchVaultModal(app).open()
modal.close()
}
</script>
<div class="modal-title">Omnisearch - File</div>
@@ -155,12 +161,16 @@ async function openSelection(): Promise<void> {
<div class="prompt-instruction">
<span class="prompt-instruction-command"></span><span>to open</span>
</div>
<div class="prompt-instruction">
<span class="prompt-instruction-command"></span>
<span>to switch to Vault Search</span>
</div>
<div class="prompt-instruction">
<span class="prompt-instruction-command">esc</span>
{#if !!parent}
<span>to go back to Vault Search</span>
{:else}
<span>to dismiss</span>
<span>to close</span>
{/if}
</div>
</div>