@@ -19,6 +19,8 @@ import { WorkspaceRootUriAwareCommandHandler } from '@theia/workspace/lib/browse
19
19
import { SelectionService } from '@theia/core' ;
20
20
import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service' ;
21
21
import { SketchFactory } from './sketch-factory' ;
22
+ import { ArduinoToolbar } from './toolbar/arduino-toolbar' ;
23
+ import { EditorManager } from '@theia/editor/lib/browser' ;
22
24
23
25
@injectable ( )
24
26
export class ArduinoFrontendContribution extends DefaultFrontendApplicationContribution implements TabBarToolbarContribution , CommandContribution {
@@ -56,6 +58,8 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
56
58
@inject ( SketchFactory )
57
59
protected readonly sketchFactory : SketchFactory ;
58
60
61
+ @inject ( EditorManager )
62
+ protected readonly editorManager : EditorManager ;
59
63
60
64
@postConstruct ( )
61
65
protected async init ( ) : Promise < void > {
@@ -86,15 +90,16 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
86
90
quickPickService = { this . quickPickService }
87
91
onNoBoardsInstalled = { this . onNoBoardsInstalled . bind ( this ) }
88
92
onUnknownBoard = { this . onUnknownBoard . bind ( this ) } /> ,
89
- isVisible : widget => this . isArduinoEditor ( widget )
93
+ isVisible : widget => this . isArduinoToolbar ( widget )
90
94
} )
91
95
}
92
96
93
97
registerCommands ( registry : CommandRegistry ) : void {
94
98
registry . registerCommand ( ArduinoCommands . VERIFY , {
95
- isVisible : widget => this . isArduinoEditor ( widget ) ,
96
- isEnabled : widget => this . isArduinoEditor ( widget ) ,
97
- execute : async widget => {
99
+ isVisible : widget => this . isArduinoToolbar ( widget ) ,
100
+ isEnabled : widget => this . isArduinoToolbar ( widget ) ,
101
+ execute : async ( ) => {
102
+ const widget = this . editorManager . currentEditor ;
98
103
if ( widget instanceof EditorWidget ) {
99
104
await widget . saveable . save ( ) ;
100
105
}
@@ -112,9 +117,10 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
112
117
}
113
118
} ) ;
114
119
registry . registerCommand ( ArduinoCommands . UPLOAD , {
115
- isVisible : widget => this . isArduinoEditor ( widget ) ,
116
- isEnabled : widget => this . isArduinoEditor ( widget ) ,
117
- execute : async widget => {
120
+ isVisible : widget => this . isArduinoToolbar ( widget ) ,
121
+ isEnabled : widget => this . isArduinoToolbar ( widget ) ,
122
+ execute : async ( ) => {
123
+ const widget = this . editorManager . currentEditor ;
118
124
if ( widget instanceof EditorWidget ) {
119
125
await widget . saveable . save ( ) ;
120
126
}
@@ -170,9 +176,9 @@ export class ArduinoFrontendContribution extends DefaultFrontendApplicationContr
170
176
this . boardsListWidgetFrontendContribution . openView ( { reveal : true } ) ;
171
177
}
172
178
173
- private isArduinoEditor ( maybeEditorWidget : any ) : boolean {
174
- if ( maybeEditorWidget instanceof EditorWidget ) {
175
- return maybeEditorWidget . editor . uri . toString ( ) . endsWith ( '.ino' ) ;
179
+ private isArduinoToolbar ( maybeToolbarWidget : any ) : boolean {
180
+ if ( maybeToolbarWidget instanceof ArduinoToolbar ) {
181
+ return true ;
176
182
}
177
183
return false ;
178
184
}
0 commit comments