editor.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. function initEditor(callback,data){
  2. data=data||{};
  3. addCSS([
  4. {href:'lib/CodeMirror/lib/codemirror.css'},
  5. {href:'mylib/CodeMirror/fold.css'},
  6. {href:'mylib/CodeMirror/search.css'},
  7. ]);
  8. addScript([
  9. {src:'lib/CodeMirror/lib/codemirror.js'},
  10. {src:'lib/CodeMirror/mode/javascript/javascript.js'},
  11. {src:'lib/CodeMirror/addon/comment/continuecomment.js'},
  12. {src:'lib/CodeMirror/addon/edit/matchbrackets.js'},
  13. {src:'lib/CodeMirror/addon/edit/closebrackets.js'},
  14. {src:'lib/CodeMirror/addon/fold/foldcode.js'},
  15. {src:'lib/CodeMirror/addon/fold/foldgutter.js'},
  16. {src:'lib/CodeMirror/addon/fold/brace-fold.js'},
  17. {src:'lib/CodeMirror/addon/fold/comment-fold.js'},
  18. {src:'lib/CodeMirror/addon/search/match-highlighter.js'},
  19. {src:'lib/CodeMirror/addon/search/searchcursor.js'},
  20. {src:'lib/CodeMirror/addon/selection/active-line.js'},
  21. {src:'mylib/CodeMirror/search.js'},
  22. ],function(){
  23. CodeMirror.keyMap.vm={'fallthrough':'default'};
  24. if(data.save) {
  25. CodeMirror.keyMap.vm['Ctrl-S']='save';
  26. CodeMirror.commands.save=data.save;
  27. }
  28. if(data.exit) {
  29. CodeMirror.keyMap.vm['Esc']='exit';
  30. CodeMirror.commands.exit=data.exit;
  31. }
  32. var T=CodeMirror(document.getElementById('eCode'),{
  33. continueComments:true,
  34. matchBrackets:true,
  35. autoCloseBrackets:true,
  36. highlightSelectionMatches:true,
  37. lineNumbers:true,
  38. mode:'javascript',
  39. lineWrapping:true,
  40. indentUnit:4,
  41. indentWithTabs:true,
  42. keyMap:'vm',
  43. styleActiveLine:true,
  44. foldGutter:true,
  45. gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],
  46. });
  47. T.clearHistory=function(){T.getDoc().clearHistory();};
  48. T.setValueAndFocus=function(v){T.setValue(v);T.focus();};
  49. T.getWrapperElement().setAttribute('style','position:absolute;height:100%;width:100%;');
  50. if(data.onchange) T.on('change',data.onchange);
  51. if(data.readonly) T.setOption('readOnly',data.readonly);
  52. callback(T);
  53. });
  54. }