@@ -53,6 +53,7 @@ import { OutlineViewContribution } from '@theia/outline-view/lib/browser/outline
53
53
import { ProblemContribution } from '@theia/markers/lib/browser/problem/problem-contribution' ;
54
54
import { ScmContribution } from '@theia/scm/lib/browser/scm-contribution' ;
55
55
import { SearchInWorkspaceFrontendContribution } from '@theia/search-in-workspace/lib/browser/search-in-workspace-frontend-contribution' ;
56
+ import { FileNavigatorCommands } from '@theia/navigator/lib/browser/navigator-contribution' ;
56
57
57
58
export namespace ArduinoMenus {
58
59
export const SKETCH = [ ...MAIN_MENU_BAR , '3_sketch' ] ;
@@ -66,11 +67,11 @@ export namespace ArduinoToolbarContextMenu {
66
67
export const EXAMPLE_SKETCHES_GROUP : MenuPath = [ ...OPEN_SKETCH_PATH , '3_examples' ] ;
67
68
}
68
69
69
- export namespace ArduinoAdvancedMode {
70
- export const LS_ID = 'arduino-advanced-mode' ;
71
- export const TOGGLED : boolean = ( ( ) => {
72
- const advancedModeStr = window . localStorage . getItem ( LS_ID ) ;
73
- return advancedModeStr === 'true' ;
70
+ export namespace EditorMode {
71
+ export const PRO_MODE_KEY = 'arduino-advanced-mode' ;
72
+ export const IN_PRO_MODE : boolean = ( ( ) => {
73
+ const value = window . localStorage . getItem ( PRO_MODE_KEY ) ;
74
+ return value === 'true' ;
74
75
} ) ( ) ;
75
76
}
76
77
@@ -135,7 +136,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
135
136
protected readonly menuRegistry : MenuModelRegistry ;
136
137
137
138
@inject ( CommandRegistry )
138
- protected readonly commands : CommandRegistry ;
139
+ protected readonly commandRegistry : CommandRegistry ;
139
140
140
141
@inject ( StatusBar )
141
142
protected readonly statusBar : StatusBar ;
@@ -181,6 +182,13 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
181
182
// This is a hack. Otherwise, the backend services won't bind.
182
183
await this . workspaceServiceExt . roots ( ) ;
183
184
185
+ if ( ! EditorMode . IN_PRO_MODE ) {
186
+ const { ADD_FOLDER , REMOVE_FOLDER , SAVE_WORKSPACE_AS } = WorkspaceCommands ;
187
+ for ( const command of [ ADD_FOLDER , REMOVE_FOLDER , SAVE_WORKSPACE_AS ] ) {
188
+ this . commandRegistry . unregisterCommand ( command ) ;
189
+ }
190
+ }
191
+
184
192
const updateStatusBar = ( config : BoardsConfig . Config ) => {
185
193
this . statusBar . setElement ( 'arduino-selected-board' , {
186
194
alignment : StatusBarAlignment . RIGHT ,
@@ -239,7 +247,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
239
247
id : BoardsToolBarItem . TOOLBAR_ID ,
240
248
render : ( ) => < BoardsToolBarItem
241
249
key = 'boardsToolbarItem'
242
- commands = { this . commands }
250
+ commands = { this . commandRegistry }
243
251
boardsServiceClient = { this . boardsServiceClient }
244
252
boardService = { this . boardsService } /> ,
245
253
isVisible : widget => ArduinoToolbar . is ( widget ) && widget . side === 'left'
@@ -255,7 +263,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
255
263
id : ArduinoCommands . TOGGLE_ADVANCED_MODE . id ,
256
264
command : ArduinoCommands . TOGGLE_ADVANCED_MODE . id ,
257
265
tooltip : 'Toggle Advanced Mode' ,
258
- text : ( ArduinoAdvancedMode . TOGGLED ? '$(toggle-on)' : '$(toggle-off)' ) ,
266
+ text : ( EditorMode . IN_PRO_MODE ? '$(toggle-on)' : '$(toggle-off)' ) ,
259
267
isVisible : widget => ArduinoToolbar . is ( widget ) && widget . side === 'right'
260
268
} ) ;
261
269
}
@@ -338,7 +346,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
338
346
} ) ;
339
347
}
340
348
} else {
341
- this . commands . executeCommand ( ArduinoCommands . OPEN_FILE_NAVIGATOR . id ) ;
349
+ this . commandRegistry . executeCommand ( ArduinoCommands . OPEN_FILE_NAVIGATOR . id ) ;
342
350
}
343
351
}
344
352
} ) ;
@@ -385,9 +393,9 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
385
393
} )
386
394
registry . registerCommand ( ArduinoCommands . TOGGLE_ADVANCED_MODE , {
387
395
execute : async ( ) => {
388
- const oldState = ArduinoAdvancedMode . TOGGLED ;
396
+ const oldState = EditorMode . IN_PRO_MODE ;
389
397
const inAdvancedMode = ! oldState ;
390
- window . localStorage . setItem ( ArduinoAdvancedMode . LS_ID , String ( inAdvancedMode ) ) ;
398
+ window . localStorage . setItem ( EditorMode . PRO_MODE_KEY , String ( inAdvancedMode ) ) ;
391
399
if ( ! inAdvancedMode ) {
392
400
// Close all widget that is neither editor nor `Output`.
393
401
for ( const area of [ 'left' , 'right' , 'bottom' , 'main' ] as Array < ApplicationShell . Area > ) {
@@ -401,12 +409,12 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
401
409
window . location . reload ( true ) ;
402
410
} ,
403
411
isVisible : widget => ArduinoToolbar . is ( widget ) && widget . side === 'right' ,
404
- isToggled : ( ) => ArduinoAdvancedMode . TOGGLED
412
+ isToggled : ( ) => EditorMode . IN_PRO_MODE
405
413
} )
406
414
}
407
415
408
416
registerMenus ( registry : MenuModelRegistry ) {
409
- if ( ! ArduinoAdvancedMode . TOGGLED ) {
417
+ if ( ! EditorMode . IN_PRO_MODE ) {
410
418
// If are not in pro-mode, we have to disable the context menu for the tabs.
411
419
// Such as `Close`, `Close All`, etc.
412
420
for ( const command of [
@@ -415,7 +423,9 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
415
423
CommonCommands . CLOSE_RIGHT_TABS ,
416
424
CommonCommands . CLOSE_ALL_TABS ,
417
425
CommonCommands . COLLAPSE_PANEL ,
418
- CommonCommands . TOGGLE_MAXIMIZED
426
+ CommonCommands . TOGGLE_MAXIMIZED ,
427
+ FileNavigatorCommands . REVEAL_IN_NAVIGATOR
428
+
419
429
] ) {
420
430
registry . unregisterMenuAction ( command ) ;
421
431
}
@@ -478,8 +488,8 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
478
488
const command : Command = {
479
489
id : 'openSketch' + sketch . name
480
490
}
481
- this . commands . registerCommand ( command , {
482
- execute : ( ) => this . commands . executeCommand ( ArduinoCommands . OPEN_SKETCH . id , sketch )
491
+ this . commandRegistry . registerCommand ( command , {
492
+ execute : ( ) => this . commandRegistry . executeCommand ( ArduinoCommands . OPEN_SKETCH . id , sketch )
483
493
} ) ;
484
494
485
495
registry . registerMenuAction ( ArduinoToolbarContextMenu . WS_SKETCHES_GROUP , {
0 commit comments