37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
| (function($){$.fn.codemirror = function(options) {
 | |
| 
 | |
|     var result = this;
 | |
| 
 | |
|     var settings = $.extend( {
 | |
|       'mode' : 'javascript',
 | |
|       'lineNumbers' : false,
 | |
|       'runmode' : false
 | |
|     }, options);
 | |
| 
 | |
|     if (settings.runmode) this.each(function() {
 | |
|         var obj = $(this);
 | |
|         var accum = [], gutter = [], size = 0;
 | |
|         var callback = function(string, style) {
 | |
|             if (string == "\n") {
 | |
|                 accum.push("<br>");
 | |
|                 gutter.push('<pre>'+(++size)+'</pre>');
 | |
|             }
 | |
|             else if (style) {
 | |
|                 accum.push("<span class=\"cm-" + CodeMirror.htmlEscape(style) + "\">" + CodeMirror.htmlEscape(string) + "</span>");
 | |
|             }
 | |
|             else {
 | |
|                 accum.push(CodeMirror.htmlEscape(string));
 | |
|             }
 | |
|         }
 | |
|         CodeMirror.runMode(obj.val(), settings.mode, callback);
 | |
|         $('<div class="CodeMirror">'+(settings.lineNumbers?('<div class="CodeMirror-gutter"><div class="CodeMirror-gutter-text">'+gutter.join('')+'</div></div>'):'<!--gutter-->')+'<div class="CodeMirror-lines">'+(settings.lineNumbers?'<div style="position: relative; margin-left: '+size.toString().length+'em;">':'<div>')+'<pre class="cm-s-default">'+accum.join('')+'</pre></div></div></div>').insertAfter(obj);
 | |
|         obj.hide();
 | |
|     });
 | |
|     else this.each(function() {
 | |
|         result = CodeMirror.fromTextArea(this, settings);
 | |
|     });
 | |
| 
 | |
|     return result;
 | |
| };})( jQuery );
 | |
| 
 |