mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	* Update CodeMirror to version 5.49.0 * Update CodeMirror versions in librejs and VERSIONS
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// CodeMirror, copyright (c) by Marijn Haverbeke and others
 | 
						|
// Distributed under an MIT license: https://codemirror.net/LICENSE
 | 
						|
 | 
						|
(function(mod) {
 | 
						|
  if (typeof exports == "object" && typeof module == "object") // CommonJS
 | 
						|
    mod(require("../../lib/codemirror"));
 | 
						|
  else if (typeof define == "function" && define.amd) // AMD
 | 
						|
    define(["../../lib/codemirror"], mod);
 | 
						|
  else // Plain browser env
 | 
						|
    mod(CodeMirror);
 | 
						|
})(function(CodeMirror) {
 | 
						|
"use strict";
 | 
						|
 | 
						|
CodeMirror.runMode = function(string, modespec, callback, options) {
 | 
						|
  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
 | 
						|
  var ie = /MSIE \d/.test(navigator.userAgent);
 | 
						|
  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
 | 
						|
 | 
						|
  if (callback.appendChild) {
 | 
						|
    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
 | 
						|
    var node = callback, col = 0;
 | 
						|
    node.innerHTML = "";
 | 
						|
    callback = function(text, style) {
 | 
						|
      if (text == "\n") {
 | 
						|
        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
 | 
						|
        // Emitting a carriage return makes everything ok.
 | 
						|
        node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
 | 
						|
        col = 0;
 | 
						|
        return;
 | 
						|
      }
 | 
						|
      var content = "";
 | 
						|
      // replace tabs
 | 
						|
      for (var pos = 0;;) {
 | 
						|
        var idx = text.indexOf("\t", pos);
 | 
						|
        if (idx == -1) {
 | 
						|
          content += text.slice(pos);
 | 
						|
          col += text.length - pos;
 | 
						|
          break;
 | 
						|
        } else {
 | 
						|
          col += idx - pos;
 | 
						|
          content += text.slice(pos, idx);
 | 
						|
          var size = tabSize - col % tabSize;
 | 
						|
          col += size;
 | 
						|
          for (var i = 0; i < size; ++i) content += " ";
 | 
						|
          pos = idx + 1;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      if (style) {
 | 
						|
        var sp = node.appendChild(document.createElement("span"));
 | 
						|
        sp.className = "cm-" + style.replace(/ +/g, " cm-");
 | 
						|
        sp.appendChild(document.createTextNode(content));
 | 
						|
      } else {
 | 
						|
        node.appendChild(document.createTextNode(content));
 | 
						|
      }
 | 
						|
    };
 | 
						|
  }
 | 
						|
 | 
						|
  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
 | 
						|
  for (var i = 0, e = lines.length; i < e; ++i) {
 | 
						|
    if (i) callback("\n");
 | 
						|
    var stream = new CodeMirror.StringStream(lines[i]);
 | 
						|
    if (!stream.string && mode.blankLine) mode.blankLine(state);
 | 
						|
    while (!stream.eol()) {
 | 
						|
      var style = mode.token(stream, state);
 | 
						|
      callback(stream.current(), style, i, stream.start, state);
 | 
						|
      stream.start = stream.pos;
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
});
 |