@@ -73,7 +73,9 @@ function createTaskContextValue(task: BackgroundTaskEntry): string {
7373
7474function createTaskTooltip ( task : BackgroundTaskEntry ) : string | vscode . MarkdownString {
7575 const status = toBackgroundTaskStateDisplayString ( task . state ) ;
76- const elapsedTime = localizedConstants . backgroundTaskElapsedTime ( formatElapsedTime ( task ) ) ;
76+ const elapsedTime = localizedConstants . backgroundTaskElapsedTime (
77+ formatTooltipElapsedTime ( task ) ,
78+ ) ;
7779
7880 if ( typeof task . tooltip === "string" ) {
7981 const sections = [ task . tooltip , status ] ;
@@ -139,6 +141,29 @@ function formatElapsedTime(task: BackgroundTaskEntry): string {
139141 return localizedConstants . backgroundTaskElapsedSeconds ( totalSeconds ) ;
140142}
141143
144+ function formatTooltipElapsedTime ( task : BackgroundTaskEntry ) : string {
145+ const elapsedTimeMs = getBackgroundTaskElapsedTimeMs ( task ) ;
146+ if ( elapsedTimeMs < 60_000 ) {
147+ return formatElapsedTime ( task ) ;
148+ }
149+
150+ const totalSeconds = Math . floor ( elapsedTimeMs / 1000 ) ;
151+ const seconds = totalSeconds % 60 ;
152+ const totalMinutes = Math . floor ( totalSeconds / 60 ) ;
153+ const minutes = totalMinutes % 60 ;
154+ const totalHours = Math . floor ( totalMinutes / 60 ) ;
155+
156+ if ( totalHours > 0 ) {
157+ return `${ padClockSegment ( totalHours ) } :${ padClockSegment ( minutes ) } :${ padClockSegment ( seconds ) } ` ;
158+ }
159+
160+ return `${ padClockSegment ( totalMinutes ) } :${ padClockSegment ( seconds ) } ` ;
161+ }
162+
163+ function padClockSegment ( value : number ) : string {
164+ return value . toString ( ) . padStart ( 2 , "0" ) ;
165+ }
166+
142167function getDefaultIconForState (
143168 state : BackgroundTaskState ,
144169) : vscode . ThemeIcon | vscode . Uri | { light : vscode . Uri ; dark : vscode . Uri } {
0 commit comments