Created
April 5, 2012 06:43
-
-
Save njx/2308512 to your computer and use it in GitHub Desktop.
Hidden line/undo bug
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html> | |
<head> | |
<title>Hidden line/undo bug</title> | |
<link rel="stylesheet" href="codemirror.css"> | |
<script src="codemirror.js"></script> | |
<style type="text/css"> | |
.CodeMirror {border: 1px solid black;} | |
</style> | |
</head> | |
<body> | |
<form><textarea id="code" name="code"> | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
Hidden line | |
function findSequence(goal) { | |
function find(start, history) { | |
if (start == goal) | |
return history; | |
else if (start > goal) | |
return null; | |
else | |
return find(start + 5, "(" + history + " + 5)") || | |
find(start * 3, "(" + history + " * 3)"); | |
} | |
return find(1, "1"); | |
}</textarea></form> | |
<input type="button" value="Step 1: Hide lines" onclick="hideLines()"> | |
<input type="button" value="Step 2: Replace text" onclick="replaceText()"> | |
<input type="button" value="Step 3: Hide new lines" onclick="hideNewLines()"> | |
<input type="button" value="Step 4: Undo" onclick="undo()"> | |
<input type="button" value="Unhide all" onclick="unhideAll()"> | |
<script> | |
var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | |
lineNumbers: true | |
}); | |
function doHide(start, end) { | |
for (var i = start; i <= end; i++) | |
editor.hideLine(i); | |
} | |
function hideLines() { | |
doHide(0, 179); | |
} | |
function replaceText() { | |
editor.replaceRange("\n\n\n\n\n\n\n\n\n\n", {line: 2, ch: 0}, {line: 2, ch: 0}); | |
} | |
function hideNewLines() { | |
doHide(2, 11); | |
} | |
function undo() { | |
editor.undo(); | |
} | |
function unhideAll() { | |
for (var i = 0; i < editor.lineCount(); i++) | |
editor.showLine(i); | |
} | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment