[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE 3 4 (function(mod) { 5 if (typeof exports == "object" && typeof module == "object") // CommonJS 6 mod(require("../../lib/codemirror")); 7 else if (typeof define == "function" && define.amd) // AMD 8 define(["../../lib/codemirror"], mod); 9 else // Plain browser env 10 mod(CodeMirror); 11 })(function(CodeMirror) { 12 "use strict"; 13 14 CodeMirror.runMode = function(string, modespec, callback, options) { 15 var mode = CodeMirror.getMode(CodeMirror.defaults, modespec); 16 var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize; 17 18 // Create a tokenizing callback function if passed-in callback is a DOM element. 19 if (callback.appendChild) { 20 var ie = /MSIE \d/.test(navigator.userAgent); 21 var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9); 22 var node = callback, col = 0; 23 node.innerHTML = ""; 24 callback = function(text, style) { 25 if (text == "\n") { 26 // Emitting LF or CRLF on IE8 or earlier results in an incorrect display. 27 // Emitting a carriage return makes everything ok. 28 node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text)); 29 col = 0; 30 return; 31 } 32 var content = ""; 33 // replace tabs 34 for (var pos = 0;;) { 35 var idx = text.indexOf("\t", pos); 36 if (idx == -1) { 37 content += text.slice(pos); 38 col += text.length - pos; 39 break; 40 } else { 41 col += idx - pos; 42 content += text.slice(pos, idx); 43 var size = tabSize - col % tabSize; 44 col += size; 45 for (var i = 0; i < size; ++i) content += " "; 46 pos = idx + 1; 47 } 48 } 49 // Create a node with token style and append it to the callback DOM element. 50 if (style) { 51 var sp = node.appendChild(document.createElement("span")); 52 sp.className = "cm-" + style.replace(/ +/g, " cm-"); 53 sp.appendChild(document.createTextNode(content)); 54 } else { 55 node.appendChild(document.createTextNode(content)); 56 } 57 }; 58 } 59 60 var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode); 61 for (var i = 0, e = lines.length; i < e; ++i) { 62 if (i) callback("\n"); 63 var stream = new CodeMirror.StringStream(lines[i], null, { 64 lookAhead: function(n) { return lines[i + n] }, 65 baseToken: function() {} 66 }); 67 if (!stream.string && mode.blankLine) mode.blankLine(state); 68 while (!stream.eol()) { 69 var style = mode.token(stream, state); 70 callback(stream.current(), style, i, stream.start, state, mode); 71 stream.start = stream.pos; 72 } 73 } 74 }; 75 76 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |