@@ -56,6 +56,7 @@ import { createAutoRegisterCommand } from 'vscode-generate-package-json';
5656import { enterCredentials } from '../lib/credentials/enterCredentials' ;
5757import { rebaseOntoParent , recursiveRebase } from '../lib/git/rebase' ;
5858import { CommentThread , ExtensionContext , Uri , window } from 'vscode' ;
59+ import { GerritChange } from '../lib/gerrit/gerritAPI/gerritChange' ;
5960import { focusChange } from '../lib/commandHandlers/focusChange' ;
6061import { Repository } from '../types/vscode-extension-git' ;
6162import { checkConnection } from '../lib/gerrit/gerritAPI' ;
@@ -193,6 +194,52 @@ export function registerCommands(
193194 ( treeView : FileTreeView ) => openModified ( treeView )
194195 )
195196 ) ;
197+ context . subscriptions . push (
198+ registerCommand (
199+ GerritExtensionCommands . FILE_MARK_REVIEWED ,
200+ async ( treeView : FileTreeView ) => {
201+ const change = await GerritChange . getChangeOnce (
202+ treeView . file . changeID
203+ ) ;
204+ if ( ! change ) {
205+ return ;
206+ }
207+ const currentRevisions = await change . currentRevisions ( ) ;
208+ if ( ! currentRevisions ) {
209+ return ;
210+ }
211+ const revision =
212+ currentRevisions [ treeView . file . currentRevision . id ] ;
213+ if ( ! revision ) {
214+ return ;
215+ }
216+ await revision . setFileReviewed ( treeView . file . filePath , true ) ;
217+ }
218+ )
219+ ) ;
220+ context . subscriptions . push (
221+ registerCommand (
222+ GerritExtensionCommands . FILE_MARK_UNREVIEWED ,
223+ async ( treeView : FileTreeView ) => {
224+ const change = await GerritChange . getChangeOnce (
225+ treeView . file . changeID
226+ ) ;
227+ if ( ! change ) {
228+ return ;
229+ }
230+ const currentRevisions = await change . currentRevisions ( ) ;
231+ if ( ! currentRevisions ) {
232+ return ;
233+ }
234+ const revision =
235+ currentRevisions [ treeView . file . currentRevision . id ] ;
236+ if ( ! revision ) {
237+ return ;
238+ }
239+ await revision . setFileReviewed ( treeView . file . filePath , false ) ;
240+ }
241+ )
242+ ) ;
196243 context . subscriptions . push (
197244 registerCommand (
198245 GerritExtensionCommands . FILE_OPEN_ORIGINAL ,
@@ -218,6 +265,25 @@ export function registerCommands(
218265 ...( diffCommand . arguments ?? [ ] )
219266 ) ;
220267 }
268+
269+ await ( async ( ) => {
270+ const change = await GerritChange . getChangeOnce (
271+ args . file . changeID
272+ ) ;
273+ if ( ! change ) {
274+ return ;
275+ }
276+ const currentRevisions = await change . currentRevisions ( ) ;
277+ if ( ! currentRevisions ) {
278+ return ;
279+ }
280+ const revision =
281+ currentRevisions [ args . file . currentRevision . id ] ;
282+ if ( ! revision ) {
283+ return ;
284+ }
285+ await revision . setFileReviewed ( args . file . filePath , true ) ;
286+ } ) ( ) ;
221287 }
222288 )
223289 ) ;
0 commit comments