未验证 提交 da3c97f3 编写于 作者: P Peng Lyu 提交者: GitHub

Rename username to author name. (#73137)

* Rename user to author for Comment.

* Make Comment interface

* Fix #73170. Introduce CommentAuthorInformation

* Fix #73145. Update range properly.
上级 a5455afc
......@@ -9024,57 +9024,61 @@ declare module 'vscode' {
dispose(): void;
}
/**
* Author information of a [comment](#Comment)
*/
export interface CommentAuthorInformation {
/**
* The display name of the author of the comment
*/
name: string;
/**
* The optional icon path for the author
*/
iconPath?: Uri;
}
/**
* A comment is displayed within the editor or the Comments Panel, depending on how it is provided.
*/
export class Comment {
export interface Comment {
/**
* The id of the comment
*/
readonly id: string;
id: string;
/**
* The human-readable comment body
*/
readonly body: MarkdownString;
body: MarkdownString;
/**
* The display name of the user who created the comment
* The author information of the comment
*/
readonly userName: string;
author: CommentAuthorInformation;
/**
* Optional label describing the [Comment](#Comment)
* Label will be rendered next to userName if exists.
* Label will be rendered next to authorName if exists.
*/
readonly label?: string;
/**
* The icon path for the user who created the comment
*/
readonly userIconPath?: Uri;
label?: string;
/**
* The command to be executed if the comment is selected in the Comments Panel
*/
readonly selectCommand?: Command;
selectCommand?: Command;
/**
* The command to be executed when users try to save the edits to the comment
*/
readonly editCommand?: Command;
editCommand?: Command;
/**
* The command to be executed when users try to delete the comment
*/
readonly deleteCommand?: Command;
/**
* @param id The id of the comment
* @param body The human-readable comment body
* @param userName The display name of the user who created the comment
*/
constructor(id: string, body: MarkdownString, userName: string);
deleteCommand?: Command;
}
/**
......
......@@ -738,7 +738,17 @@ declare module 'vscode' {
/**
* A comment is displayed within the editor or the Comments Panel, depending on how it is provided.
*/
export class CommentLegacy extends Comment {
export interface Comment {
/**
* The display name of the user who created the comment
*/
readonly userName: string;
/**
* The icon path for the user who created the comment
*/
readonly userIconPath?: Uri;
/**
* The id of the comment
*
......
......@@ -392,7 +392,7 @@ export class ExtHostCommentThread implements vscode.CommentThread {
readonly onDidUpdateCommentThread = this._onDidUpdateCommentThread.event;
set range(range: vscode.Range) {
if (range.isEqual(this._range)) {
if (!range.isEqual(this._range)) {
this._range = range;
this._onDidUpdateCommentThread.fire();
}
......@@ -413,11 +413,11 @@ export class ExtHostCommentThread implements vscode.CommentThread {
this._onDidUpdateCommentThread.fire();
}
get comments(): (vscode.Comment & vscode.CommentLegacy)[] {
get comments(): vscode.Comment[] {
return this._comments;
}
set comments(newComments: (vscode.Comment & vscode.CommentLegacy)[]) {
set comments(newComments: vscode.Comment[]) {
this._comments = newComments;
this._onDidUpdateCommentThread.fire();
}
......@@ -478,7 +478,7 @@ export class ExtHostCommentThread implements vscode.CommentThread {
private _id: string,
private _resource: vscode.Uri,
private _range: vscode.Range,
private _comments: (vscode.Comment & vscode.CommentLegacy)[]
private _comments: vscode.Comment[]
) {
this._proxy.$createCommentThread(
this._commentController.handle,
......@@ -662,7 +662,7 @@ class ExtHostCommentController implements vscode.CommentController {
this._proxy.$registerCommentController(this.handle, _id, _label);
}
createCommentThread(id: string, resource: vscode.Uri, range: vscode.Range, comments: (vscode.Comment & vscode.CommentLegacy)[]): vscode.CommentThread {
createCommentThread(id: string, resource: vscode.Uri, range: vscode.Range, comments: vscode.Comment[]): vscode.CommentThread {
const commentThread = new ExtHostCommentThread(this._proxy, this._commandsConverter, this, id, resource, range, comments);
this._threads.set(commentThread.handle, commentThread);
return commentThread;
......@@ -708,7 +708,7 @@ function convertToCommentThread(extensionId: ExtensionIdentifier, provider: vsco
threadId: vscodeCommentThread.id,
resource: vscodeCommentThread.resource.toString(),
range: extHostTypeConverter.Range.from(vscodeCommentThread.range),
comments: vscodeCommentThread.comments.map(comment => convertToComment(provider, comment as vscode.Comment & vscode.CommentLegacy, commandsConverter)),
comments: vscodeCommentThread.comments.map(comment => convertToComment(provider, comment as vscode.Comment, commandsConverter)),
collapsibleState: vscodeCommentThread.collapsibleState
};
}
......@@ -725,7 +725,7 @@ function convertFromCommentThread(commentThread: modes.CommentThread): vscode.Co
} as vscode.CommentThread;
}
function convertFromComment(comment: modes.Comment): vscode.Comment & vscode.CommentLegacy {
function convertFromComment(comment: modes.Comment): vscode.Comment {
let userIconPath: URI | undefined;
if (comment.userIconPath) {
try {
......@@ -739,6 +739,10 @@ function convertFromComment(comment: modes.Comment): vscode.Comment & vscode.Com
id: comment.commentId,
commentId: comment.commentId,
body: extHostTypeConverter.MarkdownString.to(comment.body),
author: {
name: comment.userName,
iconPath: userIconPath
},
userName: comment.userName,
userIconPath: userIconPath,
canEdit: comment.canEdit,
......@@ -754,13 +758,14 @@ function convertFromComment(comment: modes.Comment): vscode.Comment & vscode.Com
};
}
function convertToModeComment(commentController: ExtHostCommentController, vscodeComment: vscode.Comment & vscode.CommentLegacy, commandsConverter: CommandsConverter): modes.Comment {
const iconPath = vscodeComment.userIconPath ? vscodeComment.userIconPath.toString() : vscodeComment.gravatar;
function convertToModeComment(commentController: ExtHostCommentController, vscodeComment: vscode.Comment, commandsConverter: CommandsConverter): modes.Comment {
const iconPath = vscodeComment.author && vscodeComment.author.iconPath ? vscodeComment.author.iconPath.toString() :
(vscodeComment.userIconPath ? vscodeComment.userIconPath.toString() : vscodeComment.gravatar);
return {
commentId: vscodeComment.id || vscodeComment.commentId,
body: extHostTypeConverter.MarkdownString.from(vscodeComment.body),
userName: vscodeComment.userName,
userName: vscodeComment.author ? vscodeComment.author.name : vscodeComment.userName,
userIconPath: iconPath,
isDraft: vscodeComment.isDraft,
selectCommand: vscodeComment.selectCommand ? commandsConverter.toInternal(vscodeComment.selectCommand) : undefined,
......@@ -771,7 +776,7 @@ function convertToModeComment(commentController: ExtHostCommentController, vscod
};
}
function convertToComment(provider: vscode.DocumentCommentProvider | vscode.WorkspaceCommentProvider, vscodeComment: vscode.Comment & vscode.CommentLegacy, commandsConverter: CommandsConverter): modes.Comment {
function convertToComment(provider: vscode.DocumentCommentProvider | vscode.WorkspaceCommentProvider, vscodeComment: vscode.Comment, commandsConverter: CommandsConverter): modes.Comment {
const canEdit = !!(provider as vscode.DocumentCommentProvider).editComment && vscodeComment.canEdit;
const canDelete = !!(provider as vscode.DocumentCommentProvider).deleteComment && vscodeComment.canDelete;
const iconPath = vscodeComment.userIconPath ? vscodeComment.userIconPath.toString() : vscodeComment.gravatar;
......
......@@ -2287,61 +2287,6 @@ export enum FoldingRangeKind {
//#endregion
//#region Comment
@es5ClassCompat
export class Comment {
id: string;
body: MarkdownString;
userName: string;
label?: string;
userIconPath?: URI;
selectCommand?: vscode.Command;
editCommand?: vscode.Command;
deleteCommand?: vscode.Command;
/**
* The id of the comment
*
* @deprecated Use Id instead
*/
commentId: string;
/**
* @deprecated Use userIconPath instead. The avatar src of the user who created the comment
*/
gravatar?: string;
/**
* @deprecated, use editCommand
*/
canEdit?: boolean;
/**
* @deprecated, use deleteCommand
*/
canDelete?: boolean;
/**
* @deprecated
*/
command?: vscode.Command;
/**
* @deprecated
*/
isDraft?: boolean;
/**
* Proposed Comment Reaction
*/
commentReactions?: vscode.CommentReaction[];
constructor(id: string, body: MarkdownString, userName: string) {
this.id = id;
this.body = body;
this.userName = userName;
}
}
export enum CommentThreadCollapsibleState {
/**
* Determines an item is collapsed
......
......@@ -770,8 +770,6 @@ export function createApiFactory(
Color: extHostTypes.Color,
ColorInformation: extHostTypes.ColorInformation,
ColorPresentation: extHostTypes.ColorPresentation,
Comment: extHostTypes.Comment,
CommentLegacy: extHostTypes.Comment,
CommentThreadCollapsibleState: extHostTypes.CommentThreadCollapsibleState,
CompletionItem: extHostTypes.CompletionItem,
CompletionItemKind: extHostTypes.CompletionItemKind,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册