A retro-style text editor with GL shader effects. NED includes Tree-sitter syntax highlighting, multi-cursor editing, LSP integration, git line markers, and a built-in terminal.
ned.demo.github.mp4
| Amber | Solarized |
|---|---|
amber.github.mp4 |
solarized.github.mp4 |
| Ned | Custom |
|---|---|
ned.github.mp4 |
custom.github.mp4 |
- OpenGL CRT-style shaders (noise, burn-in, curvature, bloom, scanlines, jitter, and more)
- Tree-sitter syntax highlighting for 15+ languages (C/C++, JS/TS/TSX, Python, Rust, Go, Java, C#, Ruby, Kotlin, HTML/CSS, JSON, TOML, HCL, Bash, …)
- Multi-cursor editing (Option/Alt+↑/↓ to add carets; Cmd/Ctrl+Enter in find to select all matches)
- LSP integration (goto definition, find references, symbol info) with configurable language servers
- Git changed-line markers in the gutter via libgit2
- Fullscreen terminal (ImGui-Terminal) toggled from the editor
- File tree explorer, fuzzy file finder, in-buffer find, and go-to-line
- Rainbow cursor and line numbers so the cursor is hard to lose
- Theme profiles (Ned, Amber, Solarized, custom) with live settings
- Embeddable
ned_embedlibrary for Dear ImGui hosts (multi-tab docking)
- CMake 3.10 or higher
- C++20 compatible compiler
- OpenGL, GLFW3, GLEW
- FreeType and Fontconfig
- Curl (and OpenSSL on Linux for libgit2 HTTPS)
Clone the repository with its submodules:
# Make sure you clone with the recursive flag
git clone --recursive https://github.com/nealmick/ned
cd ned
git submodule init
git submodule update
# macOS (Apple Silicon / ARM64)
brew install clang-format cmake llvm glfw glew pkg-config curl freetype fontconfig
# Ubuntu/Debian
sudo apt install cmake libglfw3-dev libglew-dev libgtk-3-dev pkg-config clang \
libcurl4-openssl-dev libfreetype6-dev libfontconfig1-dev libssl-dev zlib1g-dev \
clang-format mesa-utils dpkg-dev
# For Windows, the dependencies are installed using the build script (vcpkg)./scripts/build.sh
# Build only (no launch): ./scripts/build.sh --no-run
# Clean rebuild: ./scripts/build.sh --clean./scripts/build-win.bat
# On Windows, the build script will attempt to install Visual Studio with Build Tools. 10–20 minutes.
# After VS has been installed, you must close and re-open PowerShell and run ./scripts/build-win.bat again.
# Subsequent rebuilds are much faster after the initial dependencies have been installed../scripts/test.sh
# Catch2 suites cover the document model, commands, multi-cursor, undo, save, git, and UTF-8 helpers.Create app package
./scripts/pack-mac.sh
./scripts/pack-deb.sh
# Bypass quarantine/translocation, or sign with your own Apple developer account
xattr -dr com.apple.quarantine Ned.appembed.demo.github.mp4
Ned can be embedded in other ImGui applications through the ned_embed library. The embed host adds multi-tab docking on top of the same editor core used by the standalone app — file explorer, terminal, themes, emoji fonts, and LSP are available to the host. The demo repository shows how to wire it into a project.
Ned is a Dear ImGui text editor aimed at a lightweight, embeddable core with a strong retro aesthetic.
Editor core is layered as Commands → Operations → document state (copy-on-write rope buffer). Outside code talks to the editor through EditorApi. Highlighting, save, undo, and git are focused services behind events rather than a monolithic editor class.
Syntax highlighting uses Tree-sitter with query files for the languages above. Multi-cursor and selection live in view state; document mutation stays a stream of single text ops. LSP is driven by a configurable lsp.json (clangd, gopls, pyright/typescript-language-server, rust-analyzer, and others). The terminal is a fullscreen overlay powered by ImGui-Terminal. Shader effects, theme profiles, and keybinds live under user config (~/ned/config) seeded from bundled resources.
Standalone Ned is single-buffer; multi-tab editing is provided by NedEmbed for host applications. Platforms tested: macOS ARM64, Windows x64, and Debian. Windows builds use vcpkg via the build script.
If you have questions or issues, feel free to reach out.