Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Resolve circular reference of imports #121

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions denops/ddu/app.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import type { Denops, Entrypoint } from "./deps.ts";
import { Lock } from "./deps.ts";
import { ensure, is, toFileUrl } from "./deps.ts";
import type { Denops, Entrypoint } from "jsr:@denops/std@~7.0.3";
import { Lock } from "jsr:@core/asyncutil@~1.1.1/lock";
import { is } from "jsr:@core/unknownutil@~4.3.0/is";
import { ensure } from "jsr:@core/unknownutil@~4.3.0/ensure";
import { toFileUrl } from "jsr:@std/path@~1.0.2/to-file-url";
import type {
Action,
ActionHistory,
BaseActionParams,
BaseFilterParams,
BaseParams,
Clipboard,
Context,
DduAliasType,
Expand Down Expand Up @@ -417,7 +418,7 @@ export const main: Entrypoint = (denops: Denops) => {
): Promise<void> {
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 !== "") {
Expand All @@ -433,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(
Expand All @@ -449,7 +450,7 @@ export const main: Entrypoint = (denops: Denops) => {
arg1: unknown,
arg2: unknown,
arg3: unknown,
): Promise<string | Action<BaseActionParams> | undefined> {
): Promise<string | Action<BaseParams> | 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;
Expand Down Expand Up @@ -491,7 +492,7 @@ export const main: Entrypoint = (denops: Denops) => {
[
string,
FilterOptions,
BaseFilterParams,
BaseParams,
]
> {
const name = ensure(arg1, is.String) as string;
Expand Down
15 changes: 7 additions & 8 deletions denops/ddu/base/column.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import type {
BaseParams,
ColumnOptions,
Context,
DduItem,
DduOptions,
ItemHighlight,
} from "../types.ts";
import type { Denops } from "../deps.ts";
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type BaseColumnParams = Record<string, unknown>;

export type OnInitArguments<Params extends BaseColumnParams> = {
export type OnInitArguments<Params extends BaseParams> = {
denops: Denops;
columnOptions: ColumnOptions;
columnParams: Params;
};

export type GetBaseTextArguments<Params extends BaseColumnParams> = {
export type GetBaseTextArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -24,7 +23,7 @@ export type GetBaseTextArguments<Params extends BaseColumnParams> = {
item: DduItem;
};

export type GetLengthArguments<Params extends BaseColumnParams> = {
export type GetLengthArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -33,7 +32,7 @@ export type GetLengthArguments<Params extends BaseColumnParams> = {
items: DduItem[];
};

export type GetTextArguments<Params extends BaseColumnParams> = {
export type GetTextArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -50,7 +49,7 @@ export type GetTextResult = {
highlights?: ItemHighlight[];
};

export abstract class BaseColumn<Params extends BaseColumnParams> {
export abstract class BaseColumn<Params extends BaseParams> {
apiVersion = 2;

name = "";
Expand Down
2 changes: 1 addition & 1 deletion denops/ddu/base/config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ContextBuilder } from "../context.ts";
import type { DduAliasType } from "../types.ts";
import type { Denops } from "../deps.ts";
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type ConfigArguments = {
denops: Denops;
Expand Down
13 changes: 6 additions & 7 deletions denops/ddu/base/filter.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
import type {
BaseParams,
Context,
DduFilterItems,
DduItem,
DduOptions,
FilterOptions,
SourceOptions,
} from "../types.ts";
import type { Denops } from "../deps.ts";
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type BaseFilterParams = Record<string, unknown>;

export type OnInitArguments<Params extends BaseFilterParams> = {
export type OnInitArguments<Params extends BaseParams> = {
denops: Denops;
filterOptions: FilterOptions;
filterParams: Params;
};

export type OnRefreshItemsArguments<Params extends BaseFilterParams> = {
export type OnRefreshItemsArguments<Params extends BaseParams> = {
denops: Denops;
filterOptions: FilterOptions;
filterParams: Params;
};

export type FilterArguments<Params extends BaseFilterParams> = {
export type FilterArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -33,7 +32,7 @@ export type FilterArguments<Params extends BaseFilterParams> = {
items: DduItem[];
};

export abstract class BaseFilter<Params extends BaseFilterParams> {
export abstract class BaseFilter<Params extends BaseParams> {
apiVersion = 3;

name = "";
Expand Down
9 changes: 3 additions & 6 deletions denops/ddu/base/kind.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import type {
ActionOptions,
Actions,
BaseParams,
DduItem,
DduOptions,
KindOptions,
PreviewContext,
Previewer,
} from "../types.ts";
import type { Denops } from "../deps.ts";

export type BaseKindParams = Record<string, unknown>;
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type GetPreviewerArguments = {
denops: Denops;
Expand All @@ -19,9 +18,7 @@ export type GetPreviewerArguments = {
item: DduItem;
};

export abstract class BaseKind<
Params extends BaseKindParams,
> {
export abstract class BaseKind<Params extends BaseParams> {
apiVersion = 2;

name = "";
Expand Down
18 changes: 7 additions & 11 deletions denops/ddu/base/source.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,39 @@
import type {
Actions,
BaseParams,
Context,
DduEvent,
DduItem,
DduOptions,
Item,
SourceOptions,
} from "../types.ts";
import type { Denops } from "../deps.ts";
import type { Loader } from "../loader.ts";
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type BaseSourceParams = Record<string, unknown>;

export type OnInitArguments<Params extends BaseSourceParams> = {
export type OnInitArguments<Params extends BaseParams> = {
denops: Denops;
sourceOptions: SourceOptions;
sourceParams: Params;
loader: Loader;
};

export type OnEventArguments<Params extends BaseSourceParams> = {
export type OnEventArguments<Params extends BaseParams> = {
denops: Denops;
sourceOptions: SourceOptions;
sourceParams: Params;
event: DduEvent;
};

export type GatherArguments<Params extends BaseSourceParams> = {
export type GatherArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
sourceOptions: SourceOptions;
sourceParams: Params;
input: string;
parent?: DduItem;
loader: Loader;
};

export type CheckUpdatedArguments<Params extends BaseSourceParams> = {
export type CheckUpdatedArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -46,7 +42,7 @@ export type CheckUpdatedArguments<Params extends BaseSourceParams> = {
};

export abstract class BaseSource<
Params extends BaseSourceParams,
Params extends BaseParams,
UserData extends unknown = unknown,
> {
apiVersion = 3;
Expand Down
55 changes: 16 additions & 39 deletions denops/ddu/base/ui.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,38 @@
import type {
BaseActionParams,
BaseParams,
Context,
Ddu,
DduItem,
DduOptions,
PreviewContext,
Previewer,
SourceInfo,
UiActionCallback,
UiOptions,
} from "../types.ts";
import type { Denops } from "../deps.ts";
import type { Denops } from "jsr:@denops/std@~7.0.3";

export type BaseUiParams = Record<string, unknown>;

export type UiActions<Params extends BaseUiParams> = Record<
export type UiActions<Params extends BaseParams> = Record<
string,
UiActionCallback<Params>
>;

export type OnInitArguments<Params extends BaseUiParams> = {
export type OnInitArguments<Params extends BaseParams> = {
denops: Denops;
uiOptions: UiOptions;
uiParams: Params;
};

export type OnBeforeActionArguments<Params extends BaseUiParams> = {
export type OnBeforeActionArguments<Params extends BaseParams> = {
denops: Denops;
uiOptions: UiOptions;
uiParams: Params;
};

export type OnAfterActionArguments<Params extends BaseUiParams> = {
export type OnAfterActionArguments<Params extends BaseParams> = {
denops: Denops;
uiOptions: UiOptions;
uiParams: Params;
};

export type RefreshItemsArguments<Params extends BaseUiParams> = {
export type RefreshItemsArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -47,7 +42,7 @@ export type RefreshItemsArguments<Params extends BaseUiParams> = {
items: DduItem[];
};

export type CollapseItemArguments<Params extends BaseUiParams> = {
export type CollapseItemArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -56,7 +51,7 @@ export type CollapseItemArguments<Params extends BaseUiParams> = {
item: DduItem;
};

export type ExpandItemArguments<Params extends BaseUiParams> = {
export type ExpandItemArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -67,7 +62,7 @@ export type ExpandItemArguments<Params extends BaseUiParams> = {
isGrouped: boolean;
};

export type SearchItemArguments<Params extends BaseUiParams> = {
export type SearchItemArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -76,23 +71,23 @@ export type SearchItemArguments<Params extends BaseUiParams> = {
item: DduItem;
};

export type RedrawArguments<Params extends BaseUiParams> = {
export type RedrawArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
uiOptions: UiOptions;
uiParams: Params;
};

export type QuitArguments<Params extends BaseUiParams> = {
export type QuitArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
uiOptions: UiOptions;
uiParams: Params;
};

export type VisibleArguments<Params extends BaseUiParams> = {
export type VisibleArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
Expand All @@ -101,41 +96,23 @@ export type VisibleArguments<Params extends BaseUiParams> = {
tabNr: number;
};

export type WinidArguments<Params extends BaseUiParams> = {
denops: Denops;
context: Context;
options: DduOptions;
uiOptions: UiOptions;
uiParams: Params;
};

export type UpdateCursorArguments<Params extends BaseUiParams> = {
export type WinidArguments<Params extends BaseParams> = {
denops: Denops;
context: Context;
options: DduOptions;
uiOptions: UiOptions;
uiParams: Params;
};

export type UiActionArguments<Params extends BaseUiParams> = {
export type UpdateCursorArguments<Params extends BaseParams> = {
denops: Denops;
ddu: Ddu;
context: Context;
options: DduOptions;
uiOptions: UiOptions;
uiParams: Params;
actionParams: unknown;
getPreviewer?: (
denops: Denops,
item: DduItem,
actionParams: BaseActionParams,
previewContext: PreviewContext,
) => Promise<Previewer | undefined>;
};

export abstract class BaseUi<
Params extends BaseUiParams,
> {
export abstract class BaseUi<Params extends BaseParams> {
apiVersion = 2;

name = "";
Expand Down
Loading