@@ -27,8 +27,8 @@ export enum StudioMenuType {
2727}
2828
2929interface StudioAction extends vscode . QuickPickItem {
30- name : string ;
3130 id : string ;
31+ save : number ;
3232}
3333
3434function getOtherStudioActionLabel ( action : OtherStudioAction ) : string {
@@ -227,7 +227,7 @@ class StudioActions {
227227 }
228228
229229 private userAction ( action , afterUserAction = false , answer = "" , msg = "" , type = 0 ) : Thenable < void > {
230- if ( ! action ) {
230+ if ( ! action || action . id == "" ) {
231231 return ;
232232 }
233233 const func = afterUserAction ? "AfterUserAction(?, ?, ?, ?, ?)" : "UserAction(?, ?, ?, ?)" ;
@@ -275,29 +275,36 @@ class StudioActions {
275275 ) ;
276276 }
277277
278- private prepareMenuItems ( menus , sourceControl : boolean ) : any [ ] {
278+ private prepareMenuItems ( menus , sourceControl : boolean ) : StudioAction [ ] {
279279 return menus
280280 . filter ( ( menu ) => sourceControl == ( menu . id === "%SourceMenu" || menu . id === "%SourceContext" ) )
281281 . reduce (
282282 ( list , sub ) =>
283283 list . concat (
284284 sub . items
285- . filter ( ( el ) => el . id !== "" && el . separator == 0 )
286- . filter ( ( el ) => el . enabled == 1 )
287- . map ( ( el ) => ( {
288- ...el ,
289- id : `${ sub . id } ,${ el . id } ` ,
290- label : el . name . replace ( "&" , "" ) ,
291- itemId : el . id ,
292- type : sub . type ,
293- description : sub . name . replace ( "&" , "" ) ,
294- } ) )
285+ . filter ( ( el ) => el . id !== "" )
286+ . filter ( ( el ) => el . separator == 1 || el . enabled == 1 )
287+ . map ( ( el ) =>
288+ el . separator == 1
289+ ? {
290+ label : "" ,
291+ description : "---" ,
292+ id : "" ,
293+ save : 0 ,
294+ }
295+ : {
296+ label : el . name . replace ( "&" , "" ) ,
297+ description : sub . name . replace ( "&" , "" ) ,
298+ id : `${ sub . id } ,${ el . id } ` ,
299+ save : el . save ,
300+ }
301+ )
295302 ) ,
296303 [ ]
297304 ) ;
298305 }
299306
300- public getMenu ( menuType : StudioMenuType , sourceControl : boolean ) : Thenable < any > {
307+ public getMenu ( menuType : StudioMenuType , sourceControl : boolean ) : Thenable < void > {
301308 let selectedText = "" ;
302309 const editor = vscode . window . activeTextEditor ;
303310 if ( this . uri && editor ) {
@@ -367,15 +374,15 @@ class StudioActions {
367374 }
368375}
369376
370- export async function mainCommandMenu ( uri ?: vscode . Uri ) : Promise < any > {
377+ export async function mainCommandMenu ( uri ?: vscode . Uri ) : Promise < void > {
371378 return _mainMenu ( false , uri ) ;
372379}
373380
374- export async function mainSourceControlMenu ( uri ?: vscode . Uri ) : Promise < any > {
381+ export async function mainSourceControlMenu ( uri ?: vscode . Uri ) : Promise < void > {
375382 return _mainMenu ( true , uri ) ;
376383}
377384
378- async function _mainMenu ( sourceControl : boolean , uri ?: vscode . Uri ) : Promise < any > {
385+ async function _mainMenu ( sourceControl : boolean , uri ?: vscode . Uri ) : Promise < void > {
379386 uri = uri || vscode . window . activeTextEditor ?. document . uri ;
380387 if ( uri && uri . scheme !== FILESYSTEM_SCHEMA ) {
381388 return ;
@@ -384,15 +391,15 @@ async function _mainMenu(sourceControl: boolean, uri?: vscode.Uri): Promise<any>
384391 return studioActions && studioActions . getMenu ( StudioMenuType . Main , sourceControl ) ;
385392}
386393
387- export async function contextCommandMenu ( node : PackageNode | ClassNode | RoutineNode ) : Promise < any > {
394+ export async function contextCommandMenu ( node : PackageNode | ClassNode | RoutineNode ) : Promise < void > {
388395 return _contextMenu ( false , node ) ;
389396}
390397
391- export async function contextSourceControlMenu ( node : PackageNode | ClassNode | RoutineNode ) : Promise < any > {
398+ export async function contextSourceControlMenu ( node : PackageNode | ClassNode | RoutineNode ) : Promise < void > {
392399 return _contextMenu ( true , node ) ;
393400}
394401
395- export async function _contextMenu ( sourceControl : boolean , node : PackageNode | ClassNode | RoutineNode ) : Promise < any > {
402+ export async function _contextMenu ( sourceControl : boolean , node : PackageNode | ClassNode | RoutineNode ) : Promise < void > {
396403 const nodeOrUri = node || vscode . window . activeTextEditor ?. document . uri ;
397404 if ( ! nodeOrUri || ( nodeOrUri instanceof vscode . Uri && nodeOrUri . scheme !== FILESYSTEM_SCHEMA ) ) {
398405 return ;
0 commit comments