From f1e5a1536836a6eab064e589fd7b56eb0d7f3614 Mon Sep 17 00:00:00 2001 From: 4513ECHO Date: Sun, 25 Aug 2024 23:05:19 +0900 Subject: [PATCH] refactor: Unify to BaseParams --- denops/ddu/app.ts | 11 +++-- denops/ddu/base/column.ts | 13 +++--- denops/ddu/base/filter.ts | 11 +++-- denops/ddu/base/kind.ts | 7 +-- denops/ddu/base/source.ts | 13 +++--- denops/ddu/base/ui.ts | 38 ++++++++-------- denops/ddu/context.ts | 19 +++----- denops/ddu/ddu.ts | 16 +++---- denops/ddu/ext.ts | 92 +++++++++++++++++++-------------------- denops/ddu/loader.ts | 41 ++++++++--------- denops/ddu/state.ts | 8 ++-- denops/ddu/types.ts | 43 +++++++++--------- 12 files changed, 147 insertions(+), 165 deletions(-) diff --git a/denops/ddu/app.ts b/denops/ddu/app.ts index 14ea3d3..7d40035 100644 --- a/denops/ddu/app.ts +++ b/denops/ddu/app.ts @@ -6,7 +6,7 @@ import { toFileUrl } from "jsr:@std/path@~1.0.2/to-file-url"; import type { Action, ActionHistory, - BaseActionParams, + BaseParams, Clipboard, Context, DduAliasType, @@ -18,7 +18,6 @@ import type { FilterOptions, UserOptions, } from "./types.ts"; -import type { BaseFilterParams } from "./base/filter.ts"; import { Ddu } from "./ddu.ts"; import { ContextBuilder, @@ -419,7 +418,7 @@ export const main: Entrypoint = (denops: Denops) => { ): Promise { const name = ensure(arg1, is.String) as string; const actionName = ensure(arg2, is.String) as string; - const params = ensure(arg3, is.Record) as BaseActionParams; + const params = ensure(arg3, is.Record) as BaseParams; const ddu = getDdu(name); if (ddu.getOptions().ui !== "") { @@ -435,7 +434,7 @@ export const main: Entrypoint = (denops: Denops) => { const name = ensure(arg1, is.String) as string; const actionName = ensure(arg2, is.String) as string; const items = ensure(arg3, is.Array) as DduItem[]; - const params = ensure(arg4, is.Record) as BaseActionParams; + const params = ensure(arg4, is.Record) as BaseParams; const ddu = getDdu(name); await ddu.itemAction( @@ -451,7 +450,7 @@ export const main: Entrypoint = (denops: Denops) => { arg1: unknown, arg2: unknown, arg3: unknown, - ): Promise | undefined> { + ): Promise | undefined> { const name = ensure(arg1, is.String) as string; const items = ensure(arg2, is.Array) as DduItem[]; const action = ensure(arg3, is.String) as string; @@ -493,7 +492,7 @@ export const main: Entrypoint = (denops: Denops) => { [ string, FilterOptions, - BaseFilterParams, + BaseParams, ] > { const name = ensure(arg1, is.String) as string; diff --git a/denops/ddu/base/column.ts b/denops/ddu/base/column.ts index d760bcc..b99dcef 100644 --- a/denops/ddu/base/column.ts +++ b/denops/ddu/base/column.ts @@ -1,4 +1,5 @@ import type { + BaseParams, ColumnOptions, Context, DduItem, @@ -7,15 +8,13 @@ import type { } from "../types.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; -export type BaseColumnParams = Record; - -export type OnInitArguments = { +export type OnInitArguments = { denops: Denops; columnOptions: ColumnOptions; columnParams: Params; }; -export type GetBaseTextArguments = { +export type GetBaseTextArguments = { denops: Denops; context: Context; options: DduOptions; @@ -24,7 +23,7 @@ export type GetBaseTextArguments = { item: DduItem; }; -export type GetLengthArguments = { +export type GetLengthArguments = { denops: Denops; context: Context; options: DduOptions; @@ -33,7 +32,7 @@ export type GetLengthArguments = { items: DduItem[]; }; -export type GetTextArguments = { +export type GetTextArguments = { denops: Denops; context: Context; options: DduOptions; @@ -50,7 +49,7 @@ export type GetTextResult = { highlights?: ItemHighlight[]; }; -export abstract class BaseColumn { +export abstract class BaseColumn { apiVersion = 2; name = ""; diff --git a/denops/ddu/base/filter.ts b/denops/ddu/base/filter.ts index 9c3b9c3..cec57fd 100644 --- a/denops/ddu/base/filter.ts +++ b/denops/ddu/base/filter.ts @@ -1,4 +1,5 @@ import type { + BaseParams, Context, DduFilterItems, DduItem, @@ -8,21 +9,19 @@ import type { } from "../types.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; -export type BaseFilterParams = Record; - -export type OnInitArguments = { +export type OnInitArguments = { denops: Denops; filterOptions: FilterOptions; filterParams: Params; }; -export type OnRefreshItemsArguments = { +export type OnRefreshItemsArguments = { denops: Denops; filterOptions: FilterOptions; filterParams: Params; }; -export type FilterArguments = { +export type FilterArguments = { denops: Denops; context: Context; options: DduOptions; @@ -33,7 +32,7 @@ export type FilterArguments = { items: DduItem[]; }; -export abstract class BaseFilter { +export abstract class BaseFilter { apiVersion = 3; name = ""; diff --git a/denops/ddu/base/kind.ts b/denops/ddu/base/kind.ts index a7e8c8b..af9642e 100644 --- a/denops/ddu/base/kind.ts +++ b/denops/ddu/base/kind.ts @@ -1,6 +1,7 @@ import type { ActionOptions, Actions, + BaseParams, DduItem, DduOptions, KindOptions, @@ -9,8 +10,6 @@ import type { } from "../types.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; -export type BaseKindParams = Record; - export type GetPreviewerArguments = { denops: Denops; options: DduOptions; @@ -19,9 +18,7 @@ export type GetPreviewerArguments = { item: DduItem; }; -export abstract class BaseKind< - Params extends BaseKindParams, -> { +export abstract class BaseKind { apiVersion = 2; name = ""; diff --git a/denops/ddu/base/source.ts b/denops/ddu/base/source.ts index f1e550a..2e089f8 100644 --- a/denops/ddu/base/source.ts +++ b/denops/ddu/base/source.ts @@ -1,5 +1,6 @@ import type { Actions, + BaseParams, Context, DduEvent, DduItem, @@ -10,23 +11,21 @@ import type { import type { Denops } from "jsr:@denops/std@~7.0.3"; import type { Loader } from "../loader.ts"; -export type BaseSourceParams = Record; - -export type OnInitArguments = { +export type OnInitArguments = { denops: Denops; sourceOptions: SourceOptions; sourceParams: Params; loader: Loader; }; -export type OnEventArguments = { +export type OnEventArguments = { denops: Denops; sourceOptions: SourceOptions; sourceParams: Params; event: DduEvent; }; -export type GatherArguments = { +export type GatherArguments = { denops: Denops; context: Context; options: DduOptions; @@ -37,7 +36,7 @@ export type GatherArguments = { loader: Loader; }; -export type CheckUpdatedArguments = { +export type CheckUpdatedArguments = { denops: Denops; context: Context; options: DduOptions; @@ -46,7 +45,7 @@ export type CheckUpdatedArguments = { }; export abstract class BaseSource< - Params extends BaseSourceParams, + Params extends BaseParams, UserData extends unknown = unknown, > { apiVersion = 3; diff --git a/denops/ddu/base/ui.ts b/denops/ddu/base/ui.ts index a83d942..b70a77f 100644 --- a/denops/ddu/base/ui.ts +++ b/denops/ddu/base/ui.ts @@ -1,5 +1,5 @@ import type { - BaseActionParams, + BaseParams, Context, Ddu, DduItem, @@ -12,32 +12,30 @@ import type { } from "../types.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; -export type BaseUiParams = Record; - -export type UiActions = Record< +export type UiActions = Record< string, UiActionCallback >; -export type OnInitArguments = { +export type OnInitArguments = { denops: Denops; uiOptions: UiOptions; uiParams: Params; }; -export type OnBeforeActionArguments = { +export type OnBeforeActionArguments = { denops: Denops; uiOptions: UiOptions; uiParams: Params; }; -export type OnAfterActionArguments = { +export type OnAfterActionArguments = { denops: Denops; uiOptions: UiOptions; uiParams: Params; }; -export type RefreshItemsArguments = { +export type RefreshItemsArguments = { denops: Denops; context: Context; options: DduOptions; @@ -47,7 +45,7 @@ export type RefreshItemsArguments = { items: DduItem[]; }; -export type CollapseItemArguments = { +export type CollapseItemArguments = { denops: Denops; context: Context; options: DduOptions; @@ -56,7 +54,7 @@ export type CollapseItemArguments = { item: DduItem; }; -export type ExpandItemArguments = { +export type ExpandItemArguments = { denops: Denops; context: Context; options: DduOptions; @@ -67,7 +65,7 @@ export type ExpandItemArguments = { isGrouped: boolean; }; -export type SearchItemArguments = { +export type SearchItemArguments = { denops: Denops; context: Context; options: DduOptions; @@ -76,7 +74,7 @@ export type SearchItemArguments = { item: DduItem; }; -export type RedrawArguments = { +export type RedrawArguments = { denops: Denops; context: Context; options: DduOptions; @@ -84,7 +82,7 @@ export type RedrawArguments = { uiParams: Params; }; -export type QuitArguments = { +export type QuitArguments = { denops: Denops; context: Context; options: DduOptions; @@ -92,7 +90,7 @@ export type QuitArguments = { uiParams: Params; }; -export type VisibleArguments = { +export type VisibleArguments = { denops: Denops; context: Context; options: DduOptions; @@ -101,7 +99,7 @@ export type VisibleArguments = { tabNr: number; }; -export type WinidArguments = { +export type WinidArguments = { denops: Denops; context: Context; options: DduOptions; @@ -109,7 +107,7 @@ export type WinidArguments = { uiParams: Params; }; -export type UpdateCursorArguments = { +export type UpdateCursorArguments = { denops: Denops; context: Context; options: DduOptions; @@ -117,7 +115,7 @@ export type UpdateCursorArguments = { uiParams: Params; }; -export type UiActionArguments = { +export type UiActionArguments = { denops: Denops; ddu: Ddu; context: Context; @@ -128,14 +126,12 @@ export type UiActionArguments = { getPreviewer?: ( denops: Denops, item: DduItem, - actionParams: BaseActionParams, + actionParams: BaseParams, previewContext: PreviewContext, ) => Promise; }; -export abstract class BaseUi< - Params extends BaseUiParams, -> { +export abstract class BaseUi { apiVersion = 2; name = ""; diff --git a/denops/ddu/context.ts b/denops/ddu/context.ts index efadda6..bb9d0a3 100644 --- a/denops/ddu/context.ts +++ b/denops/ddu/context.ts @@ -3,7 +3,7 @@ import { assertEquals } from "jsr:@std/assert@~1.0.2/equals"; import * as fn from "jsr:@denops/std@~7.0.3/function"; import type { ActionOptions, - BaseActionParams, + BaseParams, ColumnOptions, Context, DduOptions, @@ -13,11 +13,6 @@ import type { UiOptions, UserOptions, } from "./types.ts"; -import type { BaseColumnParams } from "./base/column.ts"; -import type { BaseFilterParams } from "./base/filter.ts"; -import type { BaseKindParams } from "./base/kind.ts"; -import type { BaseSourceParams } from "./base/source.ts"; -import type { BaseUiParams } from "./base/ui.ts"; import { defaultSourceOptions } from "./base/source.ts"; import { printError } from "./utils.ts"; @@ -44,12 +39,12 @@ export const mergeColumnOptions: Merge = overwrite; export const mergeKindOptions: Merge = overwrite; export const mergeActionOptions: Merge = overwrite; -export const mergeUiParams: Merge = overwrite; -export const mergeSourceParams: Merge = overwrite; -export const mergeFilterParams: Merge = overwrite; -export const mergeColumnParams: Merge = overwrite; -export const mergeKindParams: Merge = overwrite; -export const mergeActionParams: Merge = overwrite; +export const mergeUiParams: Merge = overwrite; +export const mergeSourceParams: Merge = overwrite; +export const mergeFilterParams: Merge = overwrite; +export const mergeColumnParams: Merge = overwrite; +export const mergeKindParams: Merge = overwrite; +export const mergeActionParams: Merge = overwrite; export function foldMerge( merge: Merge, diff --git a/denops/ddu/ddu.ts b/denops/ddu/ddu.ts index e0a3caa..9584c93 100644 --- a/denops/ddu/ddu.ts +++ b/denops/ddu/ddu.ts @@ -7,7 +7,7 @@ import { Lock } from "jsr:@core/asyncutil@~1.1.1/lock"; import { SEPARATOR as pathsep } from "jsr:@std/path@~1.0.2/constants"; import type { ActionHistory, - BaseActionParams, + BaseParams, Clipboard, Context, DduEvent, @@ -30,7 +30,7 @@ import { mergeDduOptions, } from "./context.ts"; import { defaultSourceOptions } from "./base/source.ts"; -import type { BaseSource, BaseSourceParams } from "./base/source.ts"; +import type { BaseSource } from "./base/source.ts"; import type { Loader } from "./loader.ts"; import { convertUserString, printError, treePath2Filename } from "./utils.ts"; import type { AvailableSourceInfo, GatherStateAbortable } from "./state.ts"; @@ -438,7 +438,7 @@ export class Ddu { } #newDduItem< - Params extends BaseSourceParams, + Params extends BaseParams, UserData extends unknown, >( sourceIndex: number, @@ -473,7 +473,7 @@ export class Ddu { } #gatherItems< - Params extends BaseSourceParams, + Params extends BaseParams, UserData extends unknown, >( denops: Denops, @@ -889,7 +889,7 @@ export class Ddu { async uiAction( denops: Denops, actionName: string, - actionParams: BaseActionParams, + actionParams: BaseParams, ): Promise { if (await fn.getcmdwintype(denops) !== "") { // Skip when Command line window @@ -944,7 +944,7 @@ export class Ddu { getPreviewer: ( denops: Denops, item: DduItem, - actionParams: BaseActionParams, + actionParams: BaseParams, previewContext: PreviewContext, ) => getPreviewer( @@ -994,7 +994,7 @@ export class Ddu { denops: Denops, actionName: string, items: DduItem[], - userActionParams: BaseActionParams, + userActionParams: BaseParams, clipboard: Clipboard, actionHistory: ActionHistory, ): Promise { @@ -1695,7 +1695,7 @@ export class Ddu { return ret; } - getSourceArgs(): [SourceOptions, BaseSourceParams][] { + getSourceArgs(): [SourceOptions, BaseParams][] { return this.#options.sources.map((userSource) => sourceArgs( this.#loader.getSource( diff --git a/denops/ddu/ext.ts b/denops/ddu/ext.ts index 89427f1..ae2ceb0 100644 --- a/denops/ddu/ext.ts +++ b/denops/ddu/ext.ts @@ -6,7 +6,7 @@ import type { Action, ActionName, ActionOptions, - BaseActionParams, + BaseParams, ColumnOptions, Context, DduItem, @@ -44,17 +44,17 @@ import { defaultFilterOptions } from "./base/filter.ts"; import { defaultColumnOptions } from "./base/column.ts"; import { defaultKindOptions } from "./base/kind.ts"; import { defaultActionOptions } from "./base/action.ts"; -import type { BaseColumn, BaseColumnParams } from "./base/column.ts"; -import type { BaseFilter, BaseFilterParams } from "./base/filter.ts"; -import type { BaseKind, BaseKindParams } from "./base/kind.ts"; -import type { BaseSource, BaseSourceParams } from "./base/source.ts"; -import type { BaseUi, BaseUiParams } from "./base/ui.ts"; +import type { BaseColumn } from "./base/column.ts"; +import type { BaseFilter } from "./base/filter.ts"; +import type { BaseKind } from "./base/kind.ts"; +import type { BaseSource } from "./base/source.ts"; +import type { BaseUi } from "./base/ui.ts"; import type { Loader } from "./loader.ts"; import { convertUserString, printError } from "./utils.ts"; type ItemActions = { - source: BaseSource; - kind: BaseKind; + source: BaseSource; + kind: BaseKind; actions: Record; }; @@ -62,12 +62,12 @@ type ItemActionInfo = { userSource: UserSource; sourceIndex: number; sourceOptions: SourceOptions; - sourceParams: BaseSourceParams; + sourceParams: BaseParams; kindOptions: KindOptions; - kindParams: BaseKindParams; + kindParams: BaseParams; actionOptions: ActionOptions; - actionParams: BaseActionParams; - action: string | Action; + actionParams: BaseParams; + action: string | Action; }; export async function getItemActions( @@ -165,7 +165,7 @@ export async function getItemAction( options: DduOptions, actionName: string, items: DduItem[], - userActionParams: BaseActionParams, + userActionParams: BaseParams, ): Promise { if (items.length === 0) { return; @@ -221,7 +221,7 @@ export async function getItemAction( const action = actions[actionName] as | string - | Action; + | Action; if (!action) { await printError(denops, `Not found action: ${actionName}`); return; @@ -298,9 +298,9 @@ export async function getUi( options: DduOptions, ): Promise< [ - BaseUi | undefined, + BaseUi | undefined, UiOptions, - BaseUiParams, + BaseParams, ] > { const userUi = convertUserString(options.ui); @@ -343,9 +343,9 @@ export async function getSource( userSource: UserSource, ): Promise< [ - BaseSource | undefined, + BaseSource | undefined, SourceOptions, - BaseSourceParams, + BaseParams, ] > { if (!loader.getSource(options.name, name)) { @@ -384,9 +384,9 @@ export async function getFilter( userFilter: UserFilter, ): Promise< [ - BaseFilter | undefined, + BaseFilter | undefined, FilterOptions, - BaseFilterParams, + BaseParams, ] > { userFilter = convertUserString(userFilter); @@ -430,7 +430,7 @@ async function getKind( options: DduOptions, name: string, ): Promise< - BaseKind | undefined + BaseKind | undefined > { if (!loader.getKind(options.name, name)) { const startTime = Date.now(); @@ -460,9 +460,9 @@ export async function getColumn( userColumn: UserColumn, ): Promise< [ - BaseColumn | undefined, + BaseColumn | undefined, ColumnOptions, - BaseColumnParams, + BaseParams, ] > { userColumn = convertUserString(userColumn); @@ -564,9 +564,9 @@ export async function callColumns( } type CachedColumn = { - column: BaseColumn; + column: BaseColumn; columnOptions: ColumnOptions; - columnParams: BaseColumnParams; + columnParams: BaseParams; length: number; }; const userColumns = columns.map((column) => convertUserString(column)); @@ -665,7 +665,7 @@ export async function getPreviewer( loader: Loader, options: DduOptions, item: DduItem, - actionParams: BaseActionParams, + actionParams: BaseParams, previewContext: PreviewContext, ): Promise { const source = loader.getSource( @@ -692,11 +692,11 @@ export async function getPreviewer( } function uiArgs< - Params extends BaseUiParams, + Params extends BaseParams, >( options: DduOptions, ui: BaseUi, -): [UiOptions, BaseUiParams] { +): [UiOptions, BaseParams] { const o = foldMerge( mergeUiOptions, defaultUiOptions, @@ -714,13 +714,13 @@ function uiArgs< } export function sourceArgs< - Params extends BaseSourceParams, + Params extends BaseParams, UserData extends unknown, >( source: BaseSource | null, options: DduOptions, userSource: UserSource | null, -): [SourceOptions, BaseSourceParams] { +): [SourceOptions, BaseParams] { userSource = convertUserString(userSource); const o = foldMerge( @@ -746,12 +746,12 @@ export function sourceArgs< } function filterArgs< - Params extends BaseFilterParams, + Params extends BaseParams, >( filter: BaseFilter, options: DduOptions, userFilter: UserFilter, -): [FilterOptions, BaseFilterParams] { +): [FilterOptions, BaseParams] { userFilter = convertUserString(userFilter); const o = foldMerge( @@ -777,11 +777,11 @@ function filterArgs< } function kindArgs< - Params extends BaseKindParams, + Params extends BaseParams, >( kind: BaseKind, options: DduOptions, -): [KindOptions, BaseKindParams] { +): [KindOptions, BaseParams] { const o = foldMerge( mergeKindOptions, defaultKindOptions, @@ -803,12 +803,12 @@ function kindArgs< } function columnArgs< - Params extends BaseColumnParams, + Params extends BaseParams, >( column: BaseColumn, options: DduOptions, userColumn: UserColumn, -): [ColumnOptions, BaseColumnParams] { +): [ColumnOptions, BaseParams] { userColumn = convertUserString(userColumn); const o = foldMerge( @@ -836,8 +836,8 @@ function columnArgs< function actionArgs( actionName: string, options: DduOptions, - params: BaseActionParams, -): [ActionOptions, BaseActionParams] { + params: BaseParams, +): [ActionOptions, BaseParams] { const o = foldMerge( mergeActionOptions, defaultActionOptions, @@ -855,7 +855,7 @@ function actionArgs( } export async function initSource< - Params extends BaseSourceParams, + Params extends BaseParams, UserData extends unknown, >( denops: Denops, @@ -875,10 +875,10 @@ export async function initSource< } async function checkUiOnInit( - ui: BaseUi, + ui: BaseUi, denops: Denops, uiOptions: UiOptions, - uiParams: BaseUiParams, + uiParams: BaseParams, ) { if (ui.isInitialized) { return; @@ -898,7 +898,7 @@ async function checkUiOnInit( } export async function uiRedraw< - Params extends BaseUiParams, + Params extends BaseParams, >( denops: Denops, lock: Lock, @@ -1025,10 +1025,10 @@ export async function uiQuit( } async function checkFilterOnInit( - filter: BaseFilter, + filter: BaseFilter, denops: Denops, filterOptions: FilterOptions, - filterParams: BaseFilterParams, + filterParams: BaseParams, ) { if (filter.isInitialized) { return; @@ -1048,10 +1048,10 @@ async function checkFilterOnInit( } async function checkColumnOnInit( - column: BaseColumn, + column: BaseColumn, denops: Denops, columnOptions: ColumnOptions, - columnParams: BaseColumnParams, + columnParams: BaseParams, ) { if (column.isInitialized) { return; diff --git a/denops/ddu/loader.ts b/denops/ddu/loader.ts index 6a18e35..92371ba 100644 --- a/denops/ddu/loader.ts +++ b/denops/ddu/loader.ts @@ -1,4 +1,5 @@ import type { + BaseParams, ColumnName, DduAliasType, DduExtType, @@ -7,11 +8,11 @@ import type { SourceName, UiName, } from "./types.ts"; -import type { BaseColumn, BaseColumnParams } from "./base/column.ts"; -import type { BaseFilter, BaseFilterParams } from "./base/filter.ts"; -import type { BaseKind, BaseKindParams } from "./base/kind.ts"; -import type { BaseSource, BaseSourceParams } from "./base/source.ts"; -import type { BaseUi, BaseUiParams } from "./base/ui.ts"; +import type { BaseColumn } from "./base/column.ts"; +import type { BaseFilter } from "./base/filter.ts"; +import type { BaseKind } from "./base/kind.ts"; +import type { BaseSource } from "./base/source.ts"; +import type { BaseUi } from "./base/ui.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; import { Lock } from "jsr:@core/asyncutil@~1.1.1/lock"; import { basename } from "jsr:@std/path@~1.0.2/basename"; @@ -139,7 +140,7 @@ export class Loader { }); } - getUi(index: string, name: string): BaseUi | null { + getUi(index: string, name: string): BaseUi | null { const mod = this.#mods.ui[name]; if (!mod) { return null; @@ -147,7 +148,7 @@ export class Loader { return this.#getExtension(index).getUi(mod, name); } - getSource(index: string, name: string): BaseSource | null { + getSource(index: string, name: string): BaseSource | null { const mod = this.#mods.source[name]; if (!mod) { return null; @@ -155,7 +156,7 @@ export class Loader { return this.#getExtension(index).getSource(mod, name); } - getFilter(index: string, name: string): BaseFilter | null { + getFilter(index: string, name: string): BaseFilter | null { const mod = this.#mods.filter[name]; if (!mod) { return null; @@ -163,7 +164,7 @@ export class Loader { return this.#getExtension(index).getFilter(mod, name); } - getKind(index: string, name: string): BaseKind | null { + getKind(index: string, name: string): BaseKind | null { const mod = this.#mods.kind[name]; if (!mod) { return null; @@ -171,7 +172,7 @@ export class Loader { return this.#getExtension(index).getKind(mod, name); } - getColumn(index: string, name: string): BaseColumn | null { + getColumn(index: string, name: string): BaseColumn | null { const mod = this.#mods.column[name]; if (!mod) { return null; @@ -228,13 +229,13 @@ export class Loader { } class Extension { - #uis: Record> = {}; - #sources: Record> = {}; - #filters: Record> = {}; - #kinds: Record> = {}; - #columns: Record> = {}; + #uis: Record> = {}; + #sources: Record> = {}; + #filters: Record> = {}; + #kinds: Record> = {}; + #columns: Record> = {}; - getUi(mod: Mod, name: string): BaseUi { + getUi(mod: Mod, name: string): BaseUi { if (!this.#uis[name]) { const obj = new mod.mod.Ui(); obj.name = name; @@ -243,7 +244,7 @@ class Extension { } return this.#uis[name]; } - getSource(mod: Mod, name: string): BaseSource { + getSource(mod: Mod, name: string): BaseSource { if (!this.#sources[name]) { const obj = new mod.mod.Source(); obj.name = name; @@ -252,7 +253,7 @@ class Extension { } return this.#sources[name]; } - getFilter(mod: Mod, name: string): BaseFilter { + getFilter(mod: Mod, name: string): BaseFilter { if (!this.#filters[name]) { const obj = new mod.mod.Filter(); obj.name = name; @@ -261,7 +262,7 @@ class Extension { } return this.#filters[name]; } - getKind(mod: Mod, name: string): BaseKind { + getKind(mod: Mod, name: string): BaseKind { if (!this.#kinds[name]) { const obj = new mod.mod.Kind(); obj.name = name; @@ -270,7 +271,7 @@ class Extension { } return this.#kinds[name]; } - getColumn(mod: Mod, name: string): BaseColumn { + getColumn(mod: Mod, name: string): BaseColumn { if (!this.#columns[name]) { const obj = new mod.mod.Column(); obj.name = name; diff --git a/denops/ddu/state.ts b/denops/ddu/state.ts index a6d6002..0c5e799 100644 --- a/denops/ddu/state.ts +++ b/denops/ddu/state.ts @@ -1,10 +1,10 @@ import { is } from "jsr:@core/unknownutil@~4.3.0/is"; import { maybe } from "jsr:@core/unknownutil@~4.3.0/maybe"; -import type { DduItem, SourceOptions } from "./types.ts"; -import type { BaseSource, BaseSourceParams } from "./base/source.ts"; +import type { BaseParams, DduItem, SourceOptions } from "./types.ts"; +import type { BaseSource } from "./base/source.ts"; export type AvailableSourceInfo< - Params extends BaseSourceParams = BaseSourceParams, + Params extends BaseParams = BaseParams, UserData extends unknown = unknown, > = { sourceIndex: number; @@ -27,7 +27,7 @@ export type GatherStateAbortable = { }; export class GatherState< - Params extends BaseSourceParams = BaseSourceParams, + Params extends BaseParams = BaseParams, UserData extends unknown = unknown, > { readonly sourceInfo: AvailableSourceInfo; diff --git a/denops/ddu/types.ts b/denops/ddu/types.ts index 72e850b..9526e69 100644 --- a/denops/ddu/types.ts +++ b/denops/ddu/types.ts @@ -1,8 +1,4 @@ -import type { BaseUiParams, UiActionArguments } from "./base/ui.ts"; -import type { BaseSourceParams } from "./base/source.ts"; -import type { BaseFilterParams } from "./base/filter.ts"; -import type { BaseKindParams } from "./base/kind.ts"; -import type { BaseColumnParams } from "./base/column.ts"; +import type { UiActionArguments } from "./base/ui.ts"; import type { Denops } from "jsr:@denops/std@~7.0.3"; export { ContextBuilder } from "./context.ts"; @@ -15,6 +11,8 @@ export type DduAliasType = DduExtType | "action"; export type DduEvent = "close" | "cancel"; +export type BaseParams = Record; + export type UiName = string; export type SourceName = string; export type FilterName = string; @@ -22,10 +20,10 @@ export type KindName = string; export type ColumnName = string; export type ActionName = string; -export type UiActionCallback = ( +export type UiActionCallback = ( args: UiActionArguments, ) => ActionFlags | Promise; -export type ActionCallback = ( +export type ActionCallback = ( args: ActionArguments, ) => ActionFlags | ActionResult | Promise; @@ -38,25 +36,25 @@ export type TreePath = string | string[]; export type UserUi = UiName | { name: UiName; options?: Partial; - params?: Partial; + params?: Partial; }; export type UserSource = SourceName | { name: SourceName; options?: Partial; - params?: Partial; + params?: Partial; }; export type UserFilter = FilterName | { name: FilterName; options?: Partial; - params?: Partial; + params?: Partial; }; export type UserColumn = ColumnName | { name: ColumnName; options?: Partial; - params?: Partial; + params?: Partial; }; export type SourceInfo = { @@ -82,16 +80,16 @@ export type Context = { export type DduOptions = { actionOptions: Record>; - actionParams: Record>; + actionParams: Record>; actions: string[]; columnOptions: Record>; - columnParams: Record>; + columnParams: Record>; expandInput: boolean; filterOptions: Record>; - filterParams: Record>; + filterParams: Record>; input: string; kindOptions: Record>; - kindParams: Record>; + kindParams: Record>; name: string; postFilters: UserFilter[]; profile: boolean; @@ -100,19 +98,19 @@ export type DduOptions = { resume: boolean; searchPath: TreePath; sourceOptions: Record>; - sourceParams: Record>; + sourceParams: Record>; sources: UserSource[]; sync: boolean; ui: UserUi; uiOptions: Record>; - uiParams: Record>; + uiParams: Record>; unique: boolean; }; export type UserOptions = Record; -export type UiAction = string | UiActionCallback; -export type ItemAction = string | ActionCallback; +export type UiAction = string | UiActionCallback; +export type ItemAction = string | ActionCallback; export type UiOptions = { actions: Record; @@ -154,7 +152,6 @@ export type KindOptions = { export type ActionOptions = { quit: boolean; }; -export type BaseActionParams = Record; export type ItemHighlight = { name: string; @@ -213,7 +210,7 @@ export type DduFilterItems = DduItem[] | { postActionCommand?: string; }; -export type ActionArguments = { +export type ActionArguments = { denops: Denops; context: Context; options: DduOptions; @@ -227,12 +224,12 @@ export type ActionArguments = { actionHistory: ActionHistory; }; -export type Actions = Record< +export type Actions = Record< ActionName, Action >; -export type Action = { +export type Action = { description: string; callback: ActionCallback; } | ActionCallback;