提交 c5c15eb7 编写于 作者: R Rachel Macfarlane

Add document parameter to draft methods on comments provider

上级 26084201
......@@ -1245,9 +1245,9 @@ export interface DocumentCommentProvider {
replyToCommentThread(resource: URI, range: Range, thread: CommentThread, text: string, token: CancellationToken): Promise<CommentThread>;
editComment(resource: URI, comment: Comment, text: string, token: CancellationToken): Promise<void>;
deleteComment(resource: URI, comment: Comment, token: CancellationToken): Promise<void>;
startDraft?(token: CancellationToken): Promise<void>;
deleteDraft?(token: CancellationToken): Promise<void>;
finishDraft?(token: CancellationToken): Promise<void>;
startDraft?(resource: URI, token: CancellationToken): Promise<void>;
deleteDraft?(resource: URI, token: CancellationToken): Promise<void>;
finishDraft?(resource: URI, token: CancellationToken): Promise<void>;
startDraftLabel?: string;
deleteDraftLabel?: string;
......
......@@ -868,9 +868,9 @@ declare module 'vscode' {
*/
deleteComment?(document: TextDocument, comment: Comment, token: CancellationToken): Promise<void>;
startDraft?(token: CancellationToken): Promise<void>;
deleteDraft?(token: CancellationToken): Promise<void>;
finishDraft?(token: CancellationToken): Promise<void>;
startDraft?(document: TextDocument, token: CancellationToken): Promise<void>;
deleteDraft?(document: TextDocument, token: CancellationToken): Promise<void>;
finishDraft?(document: TextDocument, token: CancellationToken): Promise<void>;
startDraftLabel?: string;
deleteDraftLabel?: string;
......
......@@ -54,14 +54,14 @@ export class MainThreadDocumentCommentProvider implements modes.DocumentCommentP
return this._proxy.$deleteComment(this._handle, uri, comment);
}
async startDraft(token): Promise<void> {
return this._proxy.$startDraft(this._handle);
async startDraft(uri, token): Promise<void> {
return this._proxy.$startDraft(this._handle, uri);
}
async deleteDraft(token): Promise<void> {
return this._proxy.$deleteDraft(this._handle);
async deleteDraft(uri, token): Promise<void> {
return this._proxy.$deleteDraft(this._handle, uri);
}
async finishDraft(token): Promise<void> {
return this._proxy.$finishDraft(this._handle);
async finishDraft(uri, token): Promise<void> {
return this._proxy.$finishDraft(this._handle, uri);
}
onDidChangeCommentThreads = null;
......
......@@ -1044,9 +1044,9 @@ export interface ExtHostCommentsShape {
$replyToCommentThread(handle: number, document: UriComponents, range: IRange, commentThread: modes.CommentThread, text: string): Promise<modes.CommentThread>;
$editComment(handle: number, document: UriComponents, comment: modes.Comment, text: string): Promise<void>;
$deleteComment(handle: number, document: UriComponents, comment: modes.Comment): Promise<void>;
$startDraft(handle: number): Promise<void>;
$deleteDraft(handle: number): Promise<void>;
$finishDraft(handle: number): Promise<void>;
$startDraft(handle: number, document: UriComponents): Promise<void>;
$deleteDraft(handle: number, document: UriComponents): Promise<void>;
$finishDraft(handle: number, document: UriComponents): Promise<void>;
$provideWorkspaceComments(handle: number): Promise<modes.CommentThread[]>;
}
......
......@@ -121,24 +121,42 @@ export class ExtHostComments implements ExtHostCommentsShape {
});
}
$startDraft(handle: number): Promise<void> {
$startDraft(handle: number, uri: UriComponents): Promise<void> {
const data = this._documents.getDocumentData(URI.revive(uri));
if (!data || !data.document) {
throw new Error('Unable to retrieve document from URI');
}
const provider = this._documentProviders.get(handle);
return asPromise(() => {
return provider.startDraft(CancellationToken.None);
return provider.startDraft(data.document, CancellationToken.None);
});
}
$deleteDraft(handle: number): Promise<void> {
$deleteDraft(handle: number, uri: UriComponents): Promise<void> {
const data = this._documents.getDocumentData(URI.revive(uri));
if (!data || !data.document) {
throw new Error('Unable to retrieve document from URI');
}
const provider = this._documentProviders.get(handle);
return asPromise(() => {
return provider.deleteDraft(CancellationToken.None);
return provider.deleteDraft(data.document, CancellationToken.None);
});
}
$finishDraft(handle: number): Promise<void> {
$finishDraft(handle: number, uri: UriComponents): Promise<void> {
const data = this._documents.getDocumentData(URI.revive(uri));
if (!data || !data.document) {
throw new Error('Unable to retrieve document from URI');
}
const provider = this._documentProviders.get(handle);
return asPromise(() => {
return provider.finishDraft(CancellationToken.None);
return provider.finishDraft(data.document, CancellationToken.None);
});
}
......
......@@ -49,9 +49,9 @@ export interface ICommentService {
editComment(owner: string, resource: URI, comment: Comment, text: string): Promise<void>;
deleteComment(owner: string, resource: URI, comment: Comment): Promise<boolean>;
getComments(resource: URI): Promise<ICommentInfo[]>;
startDraft(owner: string): void;
deleteDraft(owner: string): void;
finishDraft(owner: string): void;
startDraft(owner: string, resource: URI): void;
deleteDraft(owner: string, resource: URI): void;
finishDraft(owner: string, resource: URI): void;
getStartDraftLabel(owner: string): string;
getDeleteDraftLabel(owner: string): string;
getFinishDraftLabel(owner: string): string;
......@@ -148,31 +148,31 @@ export class CommentService extends Disposable implements ICommentService {
return Promise.resolve(false);
}
async startDraft(owner: string): Promise<void> {
async startDraft(owner: string, resource: URI): Promise<void> {
const commentProvider = this._commentProviders.get(owner);
if (commentProvider && commentProvider.startDraft) {
return commentProvider.startDraft(CancellationToken.None);
return commentProvider.startDraft(resource, CancellationToken.None);
} else {
throw new Error('Not supported');
}
}
async deleteDraft(owner: string): Promise<void> {
async deleteDraft(owner: string, resource: URI): Promise<void> {
const commentProvider = this._commentProviders.get(owner);
if (commentProvider && commentProvider.deleteDraft) {
return commentProvider.deleteDraft(CancellationToken.None);
return commentProvider.deleteDraft(resource, CancellationToken.None);
} else {
throw new Error('Not supported');
}
}
async finishDraft(owner: string): Promise<void> {
async finishDraft(owner: string, resource: URI): Promise<void> {
const commentProvider = this._commentProviders.get(owner);
if (commentProvider && commentProvider.finishDraft) {
return commentProvider.finishDraft(CancellationToken.None);
return commentProvider.finishDraft(resource, CancellationToken.None);
} else {
throw new Error('Not supported');
}
......
......@@ -412,7 +412,7 @@ export class ReviewZoneWidget extends ZoneWidget {
deletedraftButton.onDidClick(async () => {
try {
await this.commentService.deleteDraft(this._owner);
await this.commentService.deleteDraft(this._owner, this.editor.getModel().uri);
} catch (e) {
this.handleError(e);
}
......@@ -430,7 +430,7 @@ export class ReviewZoneWidget extends ZoneWidget {
try {
let lineNumber = this._commentGlyph.getPosition().position.lineNumber;
await this.createComment(lineNumber);
await this.commentService.finishDraft(this._owner);
await this.commentService.finishDraft(this._owner, this.editor.getModel().uri);
} catch (e) {
this.handleError(e);
}
......@@ -456,7 +456,7 @@ export class ReviewZoneWidget extends ZoneWidget {
draftButton.onDidClick(async () => {
try {
await this.commentService.startDraft(this._owner);
await this.commentService.startDraft(this._owner, this.editor.getModel().uri);
let lineNumber = this._commentGlyph.getPosition().position.lineNumber;
await this.createComment(lineNumber);
} catch (e) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册