From 8127ada94772f2de1f211efbc872ccb4a6f8c970 Mon Sep 17 00:00:00 2001 From: Shougo Matsushita Date: Wed, 3 Jul 2024 09:19:29 +0900 Subject: [PATCH] Revert "Fix ui.quit()" This reverts commit 9064bc36710429424ca102801766034bfd713fab. --- denops/ddu/app.ts | 4 +-- denops/ddu/ddu.ts | 76 +++++++++++++++++++++++++++++++++++------------ denops/ddu/ext.ts | 29 ------------------ 3 files changed, 59 insertions(+), 50 deletions(-) diff --git a/denops/ddu/app.ts b/denops/ddu/app.ts index 75c46aa..bef4e0a 100644 --- a/denops/ddu/app.ts +++ b/denops/ddu/app.ts @@ -349,7 +349,7 @@ export const main: Entrypoint = (denops: Denops) => { const ddu = getDdu(name); if (event === "close" || event === "cancel") { - await ddu.quit(denops); + ddu.quit(); } await ddu.onEvent(denops, event); @@ -372,7 +372,7 @@ export const main: Entrypoint = (denops: Denops) => { if (dduLength <= 1 || opt?.quit) { // Quit current ddu - await currentDdu.quit(denops); + currentDdu.quit(); await currentDdu.onEvent(denops, "cancel"); return; } diff --git a/denops/ddu/ddu.ts b/denops/ddu/ddu.ts index 367fed1..5a73fdf 100644 --- a/denops/ddu/ddu.ts +++ b/denops/ddu/ddu.ts @@ -54,7 +54,6 @@ import { getUi, initSource, sourceArgs, - uiQuit, uiRedraw, uiSearchItem, } from "./ext.ts"; @@ -113,7 +112,22 @@ export class Ddu { if (uiChanged) { // Quit current UI - await this.quit(denops); + const [ui, uiOptions, uiParams] = await getUi( + denops, + this.#loader, + this.#options, + ); + if (!ui) { + return; + } + await ui.quit({ + denops, + context: this.#context, + options: this.#options, + uiOptions, + uiParams, + }); + this.quit(); } const checkToggle = this.#initialized && !prevSignal.aborted && @@ -151,7 +165,14 @@ export class Ddu { } if (checkToggle && uiOptions.toggle) { - await this.quit(denops); + await ui.quit({ + denops, + context: this.#context, + options: this.#options, + uiOptions, + uiParams, + }); + this.quit(); return; } @@ -199,14 +220,21 @@ export class Ddu { } // NOTE: UI must be reset. - const [ui, uiOptions, _] = await getUi( + const [ui, uiOptions, uiParams] = await getUi( denops, this.#loader, this.#options, ); if (checkToggle && ui && uiOptions.toggle) { - await this.quit(denops); + await ui.quit({ + denops, + context: this.#context, + options: this.#options, + uiOptions, + uiParams, + }); + this.quit(); return; } @@ -245,7 +273,23 @@ export class Ddu { denops: Denops, userOptions: UserOptions, ): Promise { - await this.quit(denops); + // Quit current UI + const [ui, uiOptions, uiParams] = await getUi( + denops, + this.#loader, + this.#options, + ); + if (!ui) { + return; + } + await ui.quit({ + denops, + context: this.#context, + options: this.#options, + uiOptions, + uiParams, + }); + this.quit(); // Disable resume userOptions.resume = false; @@ -824,14 +868,7 @@ export class Ddu { } } - async quit(denops: Denops) { - await uiQuit( - denops, - this.#loader, - this.#context, - this.#options, - ); - + quit() { // NOTE: quitted flag must be called after ui.quit(). this.#quitted = true; this.#aborter.abort({ reason: "quit" }); @@ -1011,12 +1048,13 @@ export class Ddu { if (itemAction.actionOptions.quit && visible) { // Quit UI before action - await uiQuit( + await ui.quit({ denops, - this.#loader, - this.#context, - this.#options, - ); + context: this.#context, + options: this.#options, + uiOptions, + uiParams, + }); } } diff --git a/denops/ddu/ext.ts b/denops/ddu/ext.ts index 60cff8b..e278f0d 100644 --- a/denops/ddu/ext.ts +++ b/denops/ddu/ext.ts @@ -901,33 +901,6 @@ async function checkUiOnInit( } } -export async function uiQuit< - Params extends BaseUiParams, ->( - denops: Denops, - loader: Loader, - context: Context, - options: DduOptions, -): Promise { - // Quit current UI - const [ui, uiOptions, uiParams] = await getUi( - denops, - loader, - options, - ); - if (!ui) { - return; - } - await ui.quit({ - denops, - context, - options, - uiOptions, - uiParams, - }); - ui.prevDone = false; -} - export async function uiRedraw< Params extends BaseUiParams, >( @@ -956,7 +929,6 @@ export async function uiRedraw< uiOptions, uiParams, }); - ui.prevDone = false; return; } @@ -985,7 +957,6 @@ export async function uiRedraw< uiOptions, uiParams, }); - ui.prevDone = false; } await denops.cmd("doautocmd User Ddu:redraw");