neovim /

Neovim

Live map
Snapshotmaster · aaf57a0

An event-driven editor core coordinates commands, buffers, Lua, RPC clients, and attached user interfaces.

Click a building or route
Choose a path

Take queued input through command execution, mutate a buffer, and redraw attached UIs.

System map8 components · 10 connections
130%
Neovim: one editor, many clients architectureStart at process initialization, follow local command input across the top, then compare the RPC and Lua routes below.initialized editor statequeued command or key-…ranges, lines, marks, …changed grids, cursor,…Process entryEvent loopEx commandengineBuffer stateUI compositorPublic APIMsgpack-RPCchannelsLua executor
Connections
BuildingsEntryServiceComputeStorageRuntimeToolingExternal

Terms, in plain English

BufferNeovim's in-memory text and metadata for an edited file or unnamed document.

How to study this repo

  1. 1
    Start the editor

    Follow process setup until control reaches the event loop.

  2. 2
    Change a buffer

    Trace one command through text mutation into UI redraw events.

  3. 3
    Attach a client

    Follow an RPC API call and the resulting notifications back to an external UI.