diff --git a/denops/ddu/ddu.ts b/denops/ddu/ddu.ts index b209df2..c2591a5 100644 --- a/denops/ddu/ddu.ts +++ b/denops/ddu/ddu.ts @@ -1089,9 +1089,12 @@ export class Ddu { async expandItems( denops: Denops, items: ExpandItem[], - opts?: { signal?: AbortSignal }, + opts?: { + preventRedraw?: boolean; + signal?: AbortSignal; + }, ): Promise { - const { signal = this.#aborter.signal } = opts ?? {}; + const { preventRedraw, signal = this.#aborter.signal } = opts ?? {}; for (const item of items.sort((a, b) => a.item.__level - b.item.__level)) { const maxLevel = item.maxLevel && item.maxLevel < 0 ? -1 @@ -1110,7 +1113,9 @@ export class Ddu { ); } - await this.uiRedraw(denops, { signal }); + if (!preventRedraw && !signal.aborted) { + await this.uiRedraw(denops, { signal }); + } } async expandItem( @@ -1708,6 +1713,10 @@ export class Ddu { async restoreTree( denops: Denops, + opts?: { + preventRedraw?: boolean; + signal?: AbortSignal; + }, ): Promise { // NOTE: Check expandedItems are exists in this.#items const checkItems: Map = new Map(); @@ -1723,7 +1732,7 @@ export class Ddu { return; } - await this.expandItems(denops, restoreItems); + await this.expandItems(denops, restoreItems, opts); } async #filterItems(