Arc Editor

C++20, Tree-sitter, NCurses, CMake, YAMLActiveGitHub

A modern terminal-based text editor combining the accessibility of nano with powerful features like Tree-sitter powered syntax highlighting, smart selection, and live configuration reloading.

Arc Editor Demo

Features

  • Tree-sitter Syntax Highlighting: Accurate AST-based coloring for C/C++, Python, Rust, JavaScript/TypeScript, Go, Zig, and Markdown
  • Modern Editing Engine: Gap buffer architecture with unlimited undo/redo
  • Smart Selection: Visual selection with copy, cut, and paste operations
  • Live Configuration: Hot-reload themes and settings without restarting
  • Cross-Platform: Native support for Linux (NCurses), macOS (NCurses), and Windows (PDCurses)
  • Customizable Themes: 14 built-in themes with support for custom themes in hex, 256-color, and named colors
  • Lightweight & Fast: Minimal resource usage with instant startup times

Technical Highlights

  • Gap buffer data structure for efficient text operations and cursor movement
  • Tree-sitter integration providing accurate, incremental parsing for syntax highlighting
  • Viewport-based rendering optimizing performance for large files
  • YAML-based configuration system with file watching for hot-reloading
  • Multi-platform terminal abstraction supporting NCurses and PDCurses
  • Clean architecture separating core logic, features, and UI layers
  • Intuitive keybindings with Vim-inspired efficiency (Ctrl+S save, Ctrl+Z/Y undo/redo)