Clojure/Script mode for CodeMirror 6
Enabling a decent Clojure/Script editor experience in the browser. Built for and by Nextjournal.
โก๏ธ Lightning-fast thanks to lezer incremental parsing
- Try pasting
clojure/core.cljinto the live demo.
๐ฅค Slurping & ๐คฎ Barfing
- Forward: Ctrl + โ / โ or Mod + โง + J / K
- Backward: Ctrl + Alt + โ / โ
๐ Semantic Selections
- Expand/Contract: Alt + โ / โ or Mod + 1 / 2
๐ง Prepared for evaluation
- At Cursor: Mod + โ
- Top-level form: Mod + โง + โ
- Cell: Alt + โ
๐งน Autoformatting following Tonskyโs Better Clojure Formatting
๐น And lots of more useful key bindings
{:deps {io.github.nextjournal/clojure-mode {:git/sha "<SHA>"}}}Use it from NPM
import { default_extensions, complete_keymap } from '@nextjournal/clojure-mode';
import { EditorView, drawSelection, keymap } from '@codemirror/view';
import { EditorState } from '@codemirror/state';
let extensions = [keymap.of(complete_keymap),
...default_extensions
];
let state = EditorState.create({doc: "... some clojure code...",
extensions: extensions });
let editorElt = document.querySelector('#editor');
let editor = new EditorView({state: state,
parent: editorElt,
extensions: extensions });- Install JS dependencies:
yarn install - Start dev server:
yarn watch - Open the demo page at http://localhost:8002/
Licensed under the EPL License, Copyright ยฉ 2020-present Nextjournal GmbH.
See LICENSE for more information.