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

Changes limit to take a cursor object — #91722

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