@@ -39,7 +39,7 @@ export interface CommentReactionHandler {
3939export function threadRange ( startLine : number , endLine : number , endCharacter ?: number ) : vscode . Range {
4040 if ( ( startLine !== endLine ) && ( endCharacter === undefined ) ) {
4141 endCharacter = 300 ; // 300 is a "large" number that will select a lot of the line since don't know anything about the line length
42- } else {
42+ } else if ( ! endCharacter ) {
4343 endCharacter = 0 ;
4444 }
4545 return new vscode . Range ( startLine , 0 , endLine , endCharacter ) ;
@@ -89,7 +89,20 @@ export function getCommentCollapsibleState(isResolved: boolean, expand?: boolean
8989 ? vscode . CommentThreadCollapsibleState . Expanded : vscode . CommentThreadCollapsibleState . Collapsed ;
9090}
9191
92- export function updateThread ( vscodeThread : GHPRCommentThread , reviewThread : IReviewThread , expand ?: boolean ) {
92+
93+ export function updateThreadWithRange ( vscodeThread : GHPRCommentThread , reviewThread : IReviewThread , expand ?: boolean ) {
94+ const editors = vscode . window . visibleTextEditors ;
95+ for ( let editor of editors ) {
96+ if ( editor . document . uri . toString ( ) === vscodeThread . uri . toString ( ) ) {
97+ const endLine = editor . document . lineAt ( vscodeThread . range . end . line ) ;
98+ const range = new vscode . Range ( vscodeThread . range . start . line , 0 , vscodeThread . range . end . line , endLine . text . length ) ;
99+ updateThread ( vscodeThread , reviewThread , expand , range ) ;
100+ break ;
101+ }
102+ }
103+ }
104+
105+ export function updateThread ( vscodeThread : GHPRCommentThread , reviewThread : IReviewThread , expand ?: boolean , range ?: vscode . Range ) {
93106 if ( reviewThread . viewerCanResolve && ! reviewThread . isResolved ) {
94107 vscodeThread . contextValue = 'canResolve' ;
95108 } else if ( reviewThread . viewerCanUnresolve && reviewThread . isResolved ) {
@@ -101,7 +114,9 @@ export function updateThread(vscodeThread: GHPRCommentThread, reviewThread: IRev
101114 vscodeThread . state = newResolvedState ;
102115 }
103116 vscodeThread . collapsibleState = getCommentCollapsibleState ( reviewThread . isResolved , expand ) ;
104-
117+ if ( range ) {
118+ vscodeThread . range = range ;
119+ }
105120 vscodeThread . comments = reviewThread . comments . map ( c => new GHPRComment ( c , vscodeThread ) ) ;
106121 updateCommentThreadLabel ( vscodeThread ) ;
107122}
0 commit comments