@@ -30,6 +30,9 @@ export class UploadSketch extends SketchContribution {
30
30
registry . registerCommand ( UploadSketch . Commands . UPLOAD_SKETCH , {
31
31
execute : ( ) => this . uploadSketch ( )
32
32
} ) ;
33
+ registry . registerCommand ( UploadSketch . Commands . UPLOAD_SKETCH_USING_PROGRAMMER , {
34
+ execute : ( ) => this . uploadSketch ( true )
35
+ } ) ;
33
36
registry . registerCommand ( UploadSketch . Commands . UPLOAD_SKETCH_TOOLBAR , {
34
37
isVisible : widget => ArduinoToolbar . is ( widget ) && widget . side === 'left' ,
35
38
execute : ( ) => registry . executeCommand ( UploadSketch . Commands . UPLOAD_SKETCH . id )
@@ -42,13 +45,22 @@ export class UploadSketch extends SketchContribution {
42
45
label : 'Upload' ,
43
46
order : '0'
44
47
} ) ;
48
+ registry . registerMenuAction ( ArduinoMenus . SKETCH__MAIN_GROUP , {
49
+ commandId : UploadSketch . Commands . UPLOAD_SKETCH_USING_PROGRAMMER . id ,
50
+ label : 'Upload Using Programmer' ,
51
+ order : '1'
52
+ } ) ;
45
53
}
46
54
47
55
registerKeybindings ( registry : KeybindingRegistry ) : void {
48
56
registry . registerKeybinding ( {
49
57
command : UploadSketch . Commands . UPLOAD_SKETCH . id ,
50
58
keybinding : 'CtrlCmd+U'
51
59
} ) ;
60
+ registry . registerKeybinding ( {
61
+ command : UploadSketch . Commands . UPLOAD_SKETCH_USING_PROGRAMMER . id ,
62
+ keybinding : 'CtrlCmd+Shift+U'
63
+ } ) ;
52
64
}
53
65
54
66
registerToolbarItems ( registry : TabBarToolbarRegistry ) : void {
@@ -60,7 +72,7 @@ export class UploadSketch extends SketchContribution {
60
72
} ) ;
61
73
}
62
74
63
- async uploadSketch ( ) : Promise < void > {
75
+ async uploadSketch ( usingProgrammer : boolean = false ) : Promise < void > {
64
76
const uri = await this . currentSketchFile ( ) ;
65
77
if ( ! uri ) {
66
78
return ;
@@ -86,12 +98,13 @@ export class UploadSketch extends SketchContribution {
86
98
this . boardsDataStore . getData ( boardsConfig . selectedBoard . fqbn )
87
99
] ) ;
88
100
this . outputChannelManager . getChannel ( 'Arduino: upload' ) . clear ( ) ;
101
+ const programmer = usingProgrammer ? data . selectedProgrammer : undefined ;
89
102
await this . coreService . upload ( {
90
103
sketchUri : uri ,
91
104
fqbn,
92
105
port : selectedPort . address ,
93
106
optimizeForDebug : this . editorMode . compileForDebug ,
94
- programmer : data . selectedProgrammer
107
+ programmer
95
108
} ) ;
96
109
this . messageService . info ( 'Done uploading.' , { timeout : 1000 } ) ;
97
110
} catch ( e ) {
@@ -110,6 +123,9 @@ export namespace UploadSketch {
110
123
export const UPLOAD_SKETCH : Command = {
111
124
id : 'arduino-upload-sketch'
112
125
} ;
126
+ export const UPLOAD_SKETCH_USING_PROGRAMMER : Command = {
127
+ id : 'arduino-upload-sketch-using-programmer'
128
+ } ;
113
129
export const UPLOAD_SKETCH_TOOLBAR : Command = {
114
130
id : 'arduino-upload-sketch--toolbar'
115
131
} ;
0 commit comments