__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<!doctype html>
<title>CodeMirror: Automatically derive odd wrapping behavior for your browser</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../html/docs.css">
<div id=nav>
<a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../html/logo.png"></a>
<ul>
<li><a href="../index.html">Home</a>
<li><a href="../html/manual.html">Manual</a>
<li><a href="https://github.com/codemirror/codemirror">Code</a>
</ul>
<ul>
<li><a class=active href="#">Automatically derive odd wrapping behavior for your browser</a>
</ul>
</div>
<article>
<h2>Automatically derive odd wrapping behavior for your browser</h2>
<p>This is a hack to automatically derive
a <code>spanAffectsWrapping</code> regexp for a browser. See the
comments above that variable
in <a href="/usr/share/javascript/codemirror/lib/codemirror.js"><code>lib/codemirror.js</code></a>
for some more details.</p>
<div style="white-space: pre-wrap; width: 50px;" id="area"></div>
<pre id="output"></pre>
<script id="script">
var a = document.getElementById("area"), bad = Object.create(null);
var chars = "a~`!@#$%^&*()-_=+}{[]\\|'\"/?.>,<:;", l = chars.length;
for (var x = 0; x < l; ++x) for (var y = 0; y < l; ++y) {
var s1 = "foooo" + chars.charAt(x), s2 = chars.charAt(y) + "br";
a.appendChild(document.createTextNode(s1 + s2));
var h1 = a.offsetHeight;
a.innerHTML = "";
a.appendChild(document.createElement("span")).appendChild(document.createTextNode(s1));
a.appendChild(document.createElement("span")).appendChild(document.createTextNode(s2));
if (a.offsetHeight != h1)
bad[chars.charAt(x)] = (bad[chars.charAt(x)] || "") + chars.charAt(y);
a.innerHTML = "";
}
var re = "";
function toREElt(str) {
if (str.length > 1) {
var invert = false;
if (str.length > chars.length * .6) {
invert = true;
var newStr = "";
for (var i = 0; i < l; ++i) if (str.indexOf(chars.charAt(i)) == -1) newStr += chars.charAt(i);
str = newStr;
}
str = str.replace(/[\-\.\]\"\'\\\/\^a]/g, function(orig) { return orig == "a" ? "\\w" : "\\" + orig; });
return "[" + (invert ? "^" : "") + str + "]";
} else if (str == "a") {
return "\\w";
} else if (/[?$*()+{}[\]\.|/\'\"]/.test(str)) {
return "\\" + str;
} else {
return str;
}
}
var newRE = "";
for (;;) {
var left = null;
for (var left in bad) break;
if (left == null) break;
var right = bad[left];
delete bad[left];
for (var other in bad) if (bad[other] == right) {
left += other;
delete bad[other];
}
newRE += (newRE ? "|" : "") + toREElt(left) + toREElt(right);
}
document.getElementById("output").appendChild(document.createTextNode("Your regexp is: " + (newRE || "^$")));
</script>
</article>
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| activeline.html | File | 3.26 KB | 0644 |
|
| anywordhint.html | File | 2.87 KB | 0644 |
|
| bidi.html | File | 4.88 KB | 0644 |
|
| btree.html | File | 2.94 KB | 0644 |
|
| buffers.html | File | 3.59 KB | 0644 |
|
| changemode.html | File | 1.78 KB | 0644 |
|
| closebrackets.html | File | 1.72 KB | 0644 |
|
| closetag.html | File | 1.58 KB | 0644 |
|
| complete.html | File | 4.4 KB | 0644 |
|
| emacs.html | File | 2.76 KB | 0644 |
|
| folding.html | File | 6.12 KB | 0644 |
|
| fullscreen.html | File | 3.53 KB | 0644 |
|
| hardwrap.html | File | 2.62 KB | 0644 |
|
| html5complete.html | File | 1.99 KB | 0644 |
|
| indentwrap.html | File | 2.62 KB | 0644 |
|
| loadmode.html | File | 2.31 KB | 0644 |
|
| marker.html | File | 1.53 KB | 0644 |
|
| markselection.html | File | 1.94 KB | 0644 |
|
| matchhighlighter.html | File | 4.89 KB | 0644 |
|
| matchtags.html | File | 1.48 KB | 0644 |
|
| multiplex.html | File | 2.25 KB | 0644 |
|
| mustache.html | File | 2.18 KB | 0644 |
|
| panel.html | File | 3.57 KB | 0644 |
|
| placeholder.html | File | 1.55 KB | 0644 |
|
| preview.html | File | 2.54 KB | 0644 |
|
| requirejs.html | File | 2.27 KB | 0644 |
|
| resize.html | File | 1.4 KB | 0644 |
|
| rulers.html | File | 1.45 KB | 0644 |
|
| runmode-standalone.html | File | 2.3 KB | 0644 |
|
| runmode.html | File | 2.36 KB | 0644 |
|
| search.html | File | 4.89 KB | 0644 |
|
| simplemode.html | File | 8.14 KB | 0644 |
|
| simplescrollbars.html | File | 5.1 KB | 0644 |
|
| spanaffectswrapping_shim.html | File | 3 KB | 0644 |
|
| sublime.html | File | 3.23 KB | 0644 |
|
| theme.html | File | 7.5 KB | 0644 |
|
| trailingspace.html | File | 1.61 KB | 0644 |
|
| variableheight.html | File | 2.12 KB | 0644 |
|
| vim.html | File | 4.32 KB | 0644 |
|
| visibletabs.html | File | 1.89 KB | 0644 |
|
| xmlcomplete.html | File | 3.78 KB | 0644 |
|