callback: function(key, opt){ var panel = $(this).closest("[role=tabpanel]"); var tab = $("[role=tab][aria-controls="+panel.attr('id')+"]"); var editor = tabs.getEditor(tab); switch(key) { case 'find': editor.exec('find', editor); break; case 'findPrev': editor.exec('findprevious', editor); break; case 'findNext': editor.exec('findnext', editor); break; case 'replace': editor.exec('replace', editor); break; case 'replaceAll': editor.exec('replaceall', editor); break; case 'selectAll': editor.selectAll(); break; case 'undo': editor.redo(); break; case 'redo': editor.undo(); break; } },
.on('dnd_move.vakata', function (e, data) { var t = $(data.event.target); if(!t.closest('.jstree').length) { if(t.closest('.editor').length) { var pos = $(data.helper).position(); data.helper.find('.jstree-icon').removeClass('jstree-er').addClass('jstree-ok'); var panel = t.closest('.ui-tabs-panel')[0]; var id = $(panel).attr('id'); var tab = $('li[aria-controls='+id+']')[0]; var editor = tabs.getEditor(tab); editor.focus(); //move caret with mouse var coords = editor.renderer.pixelToScreenCoordinates(pos.left, pos.top-10); editor.moveCursorToPosition(coords); // buggy in ace /* editor.selection.setSelectionRange({ start: coords, end: coords }); */ } else { data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); } } })
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); if( editor ){ editor.setValue(tab.data('original')); } },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); var content = editor.getValue(); var filename = util.basename(tab.attr('data-file')); var blob = new Blob([content]); var evt = document.createEvent("HTMLEvents"); evt.initEvent("click"); var a = document.createElement('a'); a.download = filename; a.href = URL.createObjectURL(blob); a.dispatchEvent(evt); },
.on('dnd_stop.vakata', function (e, data) { var t = $(data.event.target); if(!t.closest('.jstree').length) { if(t.closest('.editor').length) { //$(data.element).clone().appendTo(t.closest('.drop')); // node data: /* console.log(data); if(data.data.jstree && data.data.origin) { console.log(data.data.origin.get_node(data.element)); } */ var panel = t.closest('.ui-tabs-panel')[0]; var id = $(panel).attr('id'); var tab = $('li[aria-controls='+id+']')[0]; var editor = tabs.getEditor(tab); editor.focus(); var nodes = data.data.nodes; if (nodes) { var node; var html = ''; for( i=0; i<nodes.length; i++ ){ node = nodes[i]; n = getNode(node); var from = $(tab).data('file'); var to = node; var path = ''; if( from ){ path = util.relative(util.dirname(from), to); }else{ path = '/'+to; } if(n.data.link) path = n.data.link; switch( util.fileExtension(n.text) ){ case 'jpg': case 'jpeg': case 'gif': case 'png': case 'svg': html+='<img src="'+path+'" />\n'; break; case 'css': html+='<link type="text/css" rel="stylesheet" href="'+path+'">\n'; break; case 'js': html+='<script type="text/javascript" src="'+path+'"></script>\n'; break; default: var pos = editor.getCursorPosition(); var state = editor.getSession().getState(pos.row, pos.column); if( state.substring(0,3)==='php' ){ html+='require("'+path+'");\n'; }else{ html+='<a href="'+path+'">'+node+'</a>\n'; } break; } } editor.insert(html); } } } });
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('replaceInSelection', editor, [" ", "\t"]); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('prependLineSelection', editor, ['//']); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); //editor.commands.exec('beautify', editor); editor.commands.exec('applySourceFormatting', editor); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('addSemicolon', editor); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.moveLinesDown(); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('wrapSelection', editor, ['<!--', '-->']); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.jumpToMatching(true); editor.focus(); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.toggleCommentLines(); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('clearBreakpoints', editor); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('gotoLinePrompt', editor); },
handler: function () { var tab = $('.ui-layout-center .ui-tabs-active'); var editor = tabs.getEditor(tab); editor.commands.exec('selectionToLowercase', editor); },