+++ /dev/null
-<!doctype html>
-<html>
- <head>
- <meta charset="utf-8">
- <title>CodeMirror: Multiple Buffer & Split View Demo</title>
- <link rel="stylesheet" href="../lib/codemirror.css">
- <script src="../lib/codemirror.js"></script>
- <script src="../mode/javascript/javascript.js"></script>
- <script src="../mode/css/css.js"></script>
- <link rel="stylesheet" href="../doc/docs.css">
-
- <style type="text/css" id=style>
- .CodeMirror {border: 1px solid black; height: 250px;}
- </style>
- </head>
- <body>
- <h1>CodeMirror: Multiple Buffer & Split View Demo</h1>
-
- <div id=code_top></div>
- <div>
- Select buffer: <select id=buffers_top></select>
- <button onclick="newBuf('top')">New buffer</button>
- </div>
- <div id=code_bot></div>
- <div>
- Select buffer: <select id=buffers_bot></select>
- <button onclick="newBuf('bot')">New buffer</button>
- </div>
-
- <script id=script>
-var sel_top = document.getElementById("buffers_top");
-CodeMirror.on(sel_top, "change", function() {
- selectBuffer(ed_top, sel_top.options[sel_top.selectedIndex].value);
-});
-
-var sel_bot = document.getElementById("buffers_bot");
-CodeMirror.on(sel_bot, "change", function() {
- selectBuffer(ed_bot, sel_bot.options[sel_bot.selectedIndex].value);
-});
-
-var buffers = {};
-
-function openBuffer(name, text, mode) {
- buffers[name] = CodeMirror.Doc(text, mode);
- var opt = document.createElement("option");
- opt.appendChild(document.createTextNode(name));
- sel_top.appendChild(opt);
- sel_bot.appendChild(opt.cloneNode(true));
-}
-
-function newBuf(where) {
- var name = prompt("Name for the buffer", "*scratch*");
- if (name == null) return;
- if (buffers.hasOwnProperty(name)) {
- alert("There's already a buffer by that name.");
- return;
- }
- openBuffer(name, "", "javascript");
- selectBuffer(where == "top" ? ed_top : ed_bot, name);
- var sel = where == "top" ? sel_top : sel_bot;
- sel.value = name;
-}
-
-function selectBuffer(editor, name) {
- var buf = buffers[name];
- if (buf.getEditor()) buf = buf.linkedDoc({sharedHist: true});
- var old = editor.swapDoc(buf);
- var linked = old.iterLinkedDocs(function(doc) {linked = doc;});
- if (linked) {
- // Make sure the document in buffers is the one the other view is looking at
- for (var name in buffers) if (buffers[name] == old) buffers[name] = linked;
- old.unlinkDoc(linked);
- }
- editor.focus();
-}
-
-function nodeContent(id) {
- var node = document.getElementById(id), val = node.textContent || node.innerText;
- val = val.slice(val.match(/^\s*/)[0].length, val.length - val.match(/\s*$/)[0].length) + "\n";
- return val;
-}
-openBuffer("js", nodeContent("script"), "javascript");
-openBuffer("css", nodeContent("style"), "css");
-
-var ed_top = CodeMirror(document.getElementById("code_top"), {lineNumbers: true});
-selectBuffer(ed_top, "js");
-var ed_bot = CodeMirror(document.getElementById("code_bot"), {lineNumbers: true});
-selectBuffer(ed_bot, "js");
-</script>
-
- <p>Demonstration of
- using <a href="../doc/manual.html#linkedDoc">linked documents</a>
- to provide a split view on a document, and
- using <a href="../doc/manual.html#swapDoc"><code>swapDoc</code></a>
- to use a single editor to display multiple documents.</p>
-
- </body>
-</html>