@@ -20,6 +20,7 @@ import {
20
20
} from '../../common/protocol' ;
21
21
import type { BoardList } from '../../common/protocol/board-list' ;
22
22
import { BoardsListWidget } from '../boards/boards-list-widget' ;
23
+ import { BoardsDataStore } from '../boards/boards-data-store' ;
23
24
import { BoardsServiceProvider } from '../boards/boards-service-provider' ;
24
25
import {
25
26
ArduinoMenus ,
@@ -39,6 +40,8 @@ export class BoardSelection extends SketchContribution {
39
40
private readonly menuModelRegistry : MenuModelRegistry ;
40
41
@inject ( NotificationCenter )
41
42
private readonly notificationCenter : NotificationCenter ;
43
+ @inject ( BoardsDataStore )
44
+ private readonly boardsDataStore : BoardsDataStore ;
42
45
@inject ( BoardsService )
43
46
private readonly boardsService : BoardsService ;
44
47
@inject ( BoardsServiceProvider )
@@ -74,6 +77,29 @@ SN: ${SN}
74
77
} ) ;
75
78
} ,
76
79
} ) ;
80
+
81
+ registry . registerCommand ( BoardSelection . Commands . RELOAD_BOARD_DATA , {
82
+ execute : async ( ) => {
83
+ const selectedFqbn =
84
+ this . boardsServiceProvider . boardList . boardsConfig . selectedBoard ?. fqbn ;
85
+ let message : string ;
86
+
87
+ if ( selectedFqbn ) {
88
+ await this . boardsDataStore . reloadBoardData ( selectedFqbn ) ;
89
+ message = nls . localize (
90
+ 'arduino/board/boardDataReloaded' ,
91
+ 'Board data reloaded.'
92
+ ) ;
93
+ } else {
94
+ message = nls . localize (
95
+ 'arduino/board/selectBoardToReload' ,
96
+ 'Please select a board first.'
97
+ ) ;
98
+ }
99
+
100
+ this . messageService . info ( message , { timeout : 2000 } ) ;
101
+ } ,
102
+ } ) ;
77
103
}
78
104
79
105
override onStart ( ) : void {
@@ -151,6 +177,21 @@ SN: ${SN}
151
177
)
152
178
) ;
153
179
180
+ const reloadBoardData = {
181
+ commandId : BoardSelection . Commands . RELOAD_BOARD_DATA . id ,
182
+ label : nls . localize ( 'arduino/board/reloadBoardData' , 'Reload Board Data' ) ,
183
+ order : '102' ,
184
+ } ;
185
+ this . menuModelRegistry . registerMenuAction (
186
+ ArduinoMenus . TOOLS__BOARD_SELECTION_GROUP ,
187
+ reloadBoardData
188
+ ) ;
189
+ this . toDisposeBeforeMenuRebuild . push (
190
+ Disposable . create ( ( ) =>
191
+ this . menuModelRegistry . unregisterMenuAction ( reloadBoardData )
192
+ )
193
+ ) ;
194
+
154
195
const getBoardInfo = {
155
196
commandId : BoardSelection . Commands . GET_BOARD_INFO . id ,
156
197
label : nls . localize ( 'arduino/board/getBoardInfo' , 'Get Board Info' ) ,
@@ -361,5 +402,8 @@ SN: ${SN}
361
402
export namespace BoardSelection {
362
403
export namespace Commands {
363
404
export const GET_BOARD_INFO : Command = { id : 'arduino-get-board-info' } ;
405
+ export const RELOAD_BOARD_DATA : Command = {
406
+ id : 'arduino-reload-board-data' ,
407
+ } ;
364
408
}
365
409
}
0 commit comments