Edna is a scratchpad for developers. It's a large persistent text buffer where you can write down anything you like. Works great for that Slack message you don't want to accidentally send, a JSON response from an API you're working with, notes from a meeting, daily to-do list, etc.
The Edna buffer is divided into blocks, and each block can have its own Language set (e.g. JavaScript, JSON, Markdown, etc.). This gives you syntax highlighting and lets you auto-format that JSON response.
-
Persistent text buffer
-
Block-based
-
Syntax highlighting:
C++, C#, Clojure, CSS, Erlang, Go, Groovy, HTML, Java, JavaScript, JSX, Kotlin, TypeScript, TOML, TSX, JSON, Lezer, Markdown, PHP, Python, Ruby, Rust, Shell, SQL, Swift, XML, YAML
-
Language auto-detection
-
Auto-formatting
-
Math/Calculator mode
-
Currency conversion
-
Multi-cursor editing
-
Dark & Light themes
-
Default or Emacs-like key bindings
I'm happy to merge contributions that fit my vision for the app. Bug fixes are always welcome.
Edna's Math blocks are powered by Math.js expressions. Checkout their documentation to see what syntax, functions, and constants are available.
The variable prev
can be used to access the previous result. For example:
128
prev * 2 # 256
You can define a custom format
function within the Math block like this:
_format = format # store reference to the built in format
format(x) = _format(x, {notation:"exponential"})
See the Math.js format() function for more info on what's supported.
On Mac
⌘ + P Open another note
⌘ + E Open recent note
⌘ + Enter Add new block below the current block
⌥ + Enter Add new block before the current block
⌘ + Shift + Enter Add new block at the end of the buffer
⌥ + Shift + Enter Add new block at the start of the buffer
⌘ + ⌥ + Enter Split the current block at cursor position
⌘ + L Change block language
⌘ + Down Goto next block
⌘ + Up Goto previous block
⌘ + A Select all text in a note block. Press again to select the whole buffer
⌘ + ⌥ + Up/Down Add additional cursor above/below
⌥ + Shift + F Format block content (works for Go, JSON, JavaScript, HTML, CSS and Markdown)
⌥ + Shift + R Execute block code (works for Go)
On Windows and Linux
Ctrl + P Open another note
Ctrl + E Open recent note
Ctrl + Enter Add new block below the current block
Alt + Enter Add new block before the current block
Ctrl + Shift + Enter Add new block at the end of the buffer
Alt + Shift + Enter Add new block at the start of the buffer
Ctrl + Alt + Enter Split the current block at cursor position
Ctrl + L Change block language
Ctrl + Down Goto next block
Ctrl + Up Goto previous block
Ctrl + A Select all text in a note block. Press again to select the whole buffer
Ctrl + Alt + Up/Down Add additional cursor above/below
Alt + Shift + F Format block content (works for Go, JSON, JavaScript, HTML, CSS and Markdown)
Alt + Shift + R Execute block code (works for Go)
Edna is a fork of Heynote with the following differences:
- web first (no desktop apps)
- multiple notes
- access on multiple computers by storing files in DropBox/OneDrive/Google Drive etc. folder
Edna is built upon CodeMirror, Vue, Math.js, Prettier and other great open-source projects.