@@ -379,7 +379,20 @@ define([
379379 $ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-item-menu-item' ) , function ( evt ) {
380380 var menu = $ ( this ) . data ( 'menu' ) ;
381381 var title = $ ( this ) . closest ( '.vp-sn-item' ) . data ( 'title' ) ;
382- if ( menu == 'duplicate' ) {
382+ if ( menu == 'run' ) {
383+ var item = $ ( this ) . closest ( '.vp-sn-item' ) ;
384+ var title = $ ( item ) . data ( 'title' ) ;
385+
386+ // get codemirror
387+ that . codemirrorList [ title ] . save ( ) ;
388+ var code = that . codemirrorList [ title ] . getValue ( ) ;
389+ $ ( vpCommon . wrapSelector ( '#vp_appsCode' ) ) . val ( code ) ;
390+ $ ( vpCommon . wrapSelector ( '#vp_appsCode' ) ) . trigger ( {
391+ type : 'popup_apply' ,
392+ title : 'Snippets' ,
393+ code : code
394+ } ) ;
395+ } else if ( menu == 'duplicate' ) {
383396 var dupNo = 1 ;
384397 var timestamp = new Date ( ) . getTime ( ) ;
385398 var dupTitle = title + '_dup' + dupNo ;
@@ -561,6 +574,10 @@ define([
561574 item . appendFormatLine ( '<i class="{0}"></i>' , 'fa fa-circle vp-sn-imported-item' ) ;
562575 }
563576 item . appendFormatLine ( '<div class="{0}">' , 'vp-sn-item-menu' ) ;
577+ item . appendFormatLine ( '<div class="{0}" data-menu="{1}" title="{2}">'
578+ , 'vp-sn-item-menu-item' , 'run' , 'Run' ) ;
579+ item . appendFormatLine ( '<img src="{0}"/>' , '/nbextensions/visualpython/resource/snippets/run.svg' ) ;
580+ item . appendLine ( '</div>' ) ;
564581 item . appendFormatLine ( '<div class="{0}" data-menu="{1}" title="{2}">'
565582 , 'vp-sn-item-menu-item' , 'duplicate' , 'Duplicate' ) ;
566583 item . appendFormatLine ( '<img src="{0}"/>' , '/nbextensions/visualpython/resource/snippets/duplicate.svg' ) ;
@@ -662,6 +679,19 @@ define([
662679 // save codemirror value to origin textarea
663680 // this.vp_userCode.save();
664681
682+ // selected snippet
683+ var selected = $ ( this . wrapSelector ( '.vp-sn-item-header.selected' ) ) ;
684+ if ( selected ) {
685+ var item = $ ( selected ) . closest ( '.vp-sn-item' ) ;
686+ var title = $ ( item ) . data ( 'title' ) ;
687+
688+ // get codemirror
689+ this . codemirrorList [ title ] . save ( ) ;
690+ var code = this . codemirrorList [ title ] . getValue ( ) ;
691+ sbCode . append ( code ) ;
692+ }
693+
694+
665695 if ( addCell ) this . cellExecute ( sbCode . toString ( ) , exec ) ;
666696
667697 return sbCode . toString ( ) ;
0 commit comments