提交 d1c1e270 编写于 作者: E Eric Amodio

Changes limit to take a cursor object — #91722

上级 6f7c9f38
......@@ -114,9 +114,9 @@ export class GitTimelineProvider implements TimelineProvider {
// TODO[ECA]: Ensure that the uri is a file -- if not we could get the history of the repo?
let limit: number | undefined;
if (typeof options.limit === 'string') {
if (options.limit !== undefined && typeof options.limit !== 'number') {
try {
const result = await this._model.git.exec(repo.root, ['rev-list', '--count', `${options.limit}..`, '--', uri.fsPath]);
const result = await this._model.git.exec(repo.root, ['rev-list', '--count', `${options.limit.cursor}..`, '--', uri.fsPath]);
if (!result.exitCode) {
// Ask for 1 more than so we can determine if there are more commits
limit = Number(result.stdout) + 1;
......
......@@ -1600,7 +1600,7 @@ declare module 'vscode' {
/**
* The maximum number or the ending cursor of timeline items that should be returned.
*/
limit?: number | string;
limit?: number | { cursor: string };
}
export interface TimelineProvider {
......
......@@ -80,8 +80,8 @@ interface TimelineActionContext {
}
interface TimelineCursors {
startCursors?: { before: any; after?: any };
endCursors?: { before: any; after?: any };
startCursors?: { before: string; after?: string };
endCursors?: { before: string; after?: string };
more: boolean;
}
......@@ -308,7 +308,9 @@ export class TimelinePane extends ViewPane {
{
cursor: options.before ? cursors?.startCursors?.before : (cursors?.endCursors ?? cursors?.startCursors)?.after,
...options,
limit: options.limit === 0 ? undefined : options.limit ?? defaultPageSize
limit: options.limit === 0
? undefined
: options.limit ?? defaultPageSize
},
request?.tokenSource ?? new CancellationTokenSource(), { cacheResults: true, resetCache: false }
)!;
......@@ -329,7 +331,11 @@ export class TimelinePane extends ViewPane {
source, this._uri,
{
...options,
limit: options.limit === 0 ? undefined : (reset ? cursors?.endCursors?.after : undefined) ?? options.limit ?? defaultPageSize
limit: options.limit === 0
? undefined
: (reset && cursors?.endCursors?.after !== undefined
? { cursor: cursors.endCursors.after }
: undefined) ?? options.limit ?? defaultPageSize
},
new CancellationTokenSource(), { cacheResults: true, resetCache: true }
)!;
......
......@@ -40,7 +40,7 @@ export interface TimelineChangeEvent {
export interface TimelineOptions {
cursor?: string;
before?: boolean;
limit?: number | string;
limit?: number | { cursor: string };
}
export interface InternalTimelineOptions {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册