A native, programmable editor

Editing is only
the starting point.

MEdit is an Emacs-inspired editor for working with text and shaping the tools around it. It combines familiar editing with code-aware navigation, integrated documentation, and a Lisp environment for adding your own commands.

MEdit editing an HTML document in the Zenburn theme
Editing HTMLZenburn theme

Inside MEdit

From a blank buffer to a tool that feels like yours.

The editor starts with the essentials, then opens up. Every layer is designed to support the next one.

01 / Edit

Keep the work in view.

Work across multiple buffers and arrange them in split frames. A native Qt interface provides the structure while keyboard-driven commands keep the focus on the text.

  • Multiple buffers
  • Split frames
  • Keyboard-driven commands
workspace2 frames
index.html<main>
styles.css.editor {
NORMALLn 24, Col 3
02 / Understand

See the shape of your code.

Tree-sitter powers syntax highlighting, code navigation, and document outlines. Built-in references and inline documentation keep useful context beside the code instead of behind another application.

See code tools in action →
MEdit showing MLisp code beside a document outline and reference documentation
MLisp with outline and reference documentation
03 / Extend

Turn a repeated action into a command.

MEdit’s programmable side is MLisp, a modern Lisp variant developed alongside the editor. Write a function, make it interactive, and bind it to the keys that fit your workflow.

Explore the MLisp language →
uppercase-selection.mlcommand · key binding
; Create an editor command
(def uppercase-selection
  (fn ()
    (editor/replace-selection
      (string/upper
        (editor/selection-text)))))

(interactive 'uppercase-selection)
(bind-key "C-S-u"
  'uppercase-selection)

One small system

The editor and its language grow together.

MEdit is built as a native desktop application in C++ and Qt. Tree-sitter adds code awareness, Git integration connects the editor to the project, and MLisp makes the core programmable.

01
C++Editor core
02
QtNative interface
03
Tree-sitterCode intelligence
04
MLispExtension language

In active development

A personal editor and an ongoing experiment.

MEdit is a working personal tool, not a finished product competing for users. Development currently focuses on expanding the MLisp surface and refining the everyday editing experience.