| | <!doctype html> |
| | <meta charset=utf8> |
| | <title>CM6 demo</title> |
| | <link rel="stylesheet" href="https://unpkg.com/@datavis-tech/codemirror-6-prerelease@5.0.0/codemirror.next/legacy-modes/style/codemirror.css"> |
| | <script src="https://unpkg.com/@datavis-tech/codemirror-6-prerelease@5.0.0/dist/codemirror.js"></script> |
| | <style> |
| | .codemirror { height: 300px; overflow: auto; border: 1px solid silver} |
| | .codemirror-matching-bracket { background: red; } |
| | .codemirror-nonmatching-bracket { background: green; } |
| | </style> |
| | |
| | <body> |
| | <h1>CM6</h1> |
| | <div id=editor></div> |
| | <script> |
| | let { |
| | EditorState, |
| | EditorView, |
| | keymap, |
| | history, |
| | redo, |
| | redoSelection, |
| | undo, |
| | undoSelection, |
| | lineNumbers, |
| | baseKeymap, |
| | indentSelection, |
| | legacyMode, |
| | legacyModes: { javascript }, |
| | matchBrackets, |
| | specialChars, |
| | multipleSelections |
| | } = CodeMirror; |
| | |
| | let mode = legacyMode({mode: javascript({indentUnit: 4}, {})}) |
| | |
| | let isMac = /Mac/.test(navigator.platform) |
| | let state = EditorState.create({doc: `"use strict"; |
| | const {readFile} = require("fs"); |
| | |
| | readFile("package.json", "utf8", (err, data) => { |
| | console.log(data); |
| | });`, extensions: [ |
| | lineNumbers(), |
| | history(), |
| | specialChars(), |
| | multipleSelections(), |
| | mode, |
| | matchBrackets(), |
| | |
| | keymap({ |
| | "Mod-z": undo, |
| | "Mod-Shift-z": redo, |
| | "Mod-u": view => undoSelection(view) || true, |
| | [isMac ? "Mod-Shift-u" : "Alt-u"]: redoSelection, |
| | "Ctrl-y": isMac ? undefined : redo, |
| | "Shift-Tab": indentSelection |
| | }), |
| | keymap(baseKeymap), |
| | ]}) |
| | |
| | let view = new EditorView({state}) |
| | document.querySelector("#editor").appendChild(view.dom) |
| | |
| | </script> |
| | </body> |