# volt-editor-team/volt architecture

> Architecture diagram of the GitHub repository volt-editor-team/volt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/volt-editor-team/volt
- Repository: https://github.com/volt-editor-team/volt

## Overview

Volt is an experimental, buffer-centric terminal text editor. Its documented user workflow is editing files in a TUI, with fuzzy search for navigating and opening files, multiple buffers for switching among them, and UTF-8/UTF-16LE text storage. The tree identifies likely implementation areas for these capabilities, but no source excerpts were provided, so links between internal modules are not asserted. Directory-buffer behavior is documented as in development.

Main entry points: [`src/modules/core/edit_buffers.v`](https://github.com/volt-editor-team/volt/blob/main/src/modules/core/edit_buffers.v) (Buffer management), [`src/modules/buffer/gap`](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/gap) (Gap buffer), [`src/modules/buffer/list`](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/list) (List buffer), [`src/modules/buffer/rope`](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/rope) (Rope buffer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Editor runtime"]
  node_volt["Volt application<br/>[main.v]"]
end

subgraph group_interaction["Interaction"]
  node_tui["Terminal UI"]
  node_controller["Input controller"]
  node_cursor["Cursor movement"]
  node_viewport["Viewport"]
end

subgraph group_text["Text editing"]
  node_buffers["Buffer management<br/>[edit_buffers.v]"]
  node_gap["Gap buffer"]
  node_list["List buffer"]
  node_rope["Rope buffer"]
  node_filesystem["File I/O<br/>[io.v]"]
end

subgraph group_support["Navigation and help"]
  node_fuzzy["Fuzzy finder<br/>[fuzzy.v]"]
  node_docs["Help content"]
end

node_user(("Editor user"))

node_user -->|"runs editor"| node_volt
node_user -->|"uses interface"| node_tui
node_user -->|"searches files"| node_fuzzy
node_user -->|"switches buffers"| node_buffers
node_user -->|"requests help"| node_docs
node_gap -->|"default storage"| node_buffers
node_list -->|"large-file storage"| node_buffers
node_rope -.->|"planned storage"| node_buffers

click node_volt "https://github.com/volt-editor-team/volt/blob/main/src/main.v"
click node_tui "https://github.com/volt-editor-team/volt/tree/main/src/modules/ui/tui"
click node_controller "https://github.com/volt-editor-team/volt/tree/main/src/modules/core/controller"
click node_cursor "https://github.com/volt-editor-team/volt/tree/main/src/modules/cursor"
click node_viewport "https://github.com/volt-editor-team/volt/tree/main/src/modules/viewport"
click node_buffers "https://github.com/volt-editor-team/volt/blob/main/src/modules/core/edit_buffers.v"
click node_gap "https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/gap"
click node_list "https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/list"
click node_rope "https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/rope"
click node_filesystem "https://github.com/volt-editor-team/volt/blob/main/src/modules/fs/io.v"
click node_fuzzy "https://github.com/volt-editor-team/volt/blob/main/src/modules/util/fuzzy/fuzzy.v"
click node_docs "https://github.com/volt-editor-team/volt/tree/main/src/modules/docs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_volt,node_user toneBlue
class node_tui,node_controller,node_cursor,node_viewport toneAmber
class node_buffers,node_gap,node_list,node_rope,node_filesystem toneMint
class node_fuzzy,node_docs toneRose
```

## Components

### Editor runtime

- [Volt application](https://github.com/volt-editor-team/volt/blob/main/src/main.v): `src/main.v`

### Interaction

- [Terminal UI](https://github.com/volt-editor-team/volt/tree/main/src/modules/ui/tui): `src/modules/ui/tui`
- [Input controller](https://github.com/volt-editor-team/volt/tree/main/src/modules/core/controller): `src/modules/core/controller`
- [Cursor movement](https://github.com/volt-editor-team/volt/tree/main/src/modules/cursor): `src/modules/cursor`
- [Viewport](https://github.com/volt-editor-team/volt/tree/main/src/modules/viewport): `src/modules/viewport`

### Text editing

- [Buffer management](https://github.com/volt-editor-team/volt/blob/main/src/modules/core/edit_buffers.v): `src/modules/core/edit_buffers.v`
- [Gap buffer](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/gap): `src/modules/buffer/gap`
- [List buffer](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/list): `src/modules/buffer/list`
- [Rope buffer](https://github.com/volt-editor-team/volt/tree/main/src/modules/buffer/rope): `src/modules/buffer/rope`
- [File I/O](https://github.com/volt-editor-team/volt/blob/main/src/modules/fs/io.v): `src/modules/fs/io.v`

### Navigation and help

- [Fuzzy finder](https://github.com/volt-editor-team/volt/blob/main/src/modules/util/fuzzy/fuzzy.v): `src/modules/util/fuzzy/fuzzy.v`
- [Help content](https://github.com/volt-editor-team/volt/tree/main/src/modules/docs): `src/modules/docs`

### Other components

- **Editor user**

## Connections

- Editor user → Volt application: runs editor (evidence: `README.md`)
- Editor user → Terminal UI: uses interface (evidence: `README.md`)
- Editor user → Fuzzy finder: searches files (evidence: `README.md`)
- Editor user → Buffer management: switches buffers (evidence: `README.md`)
- Editor user → Help content: requests help (evidence: `README.md`)
- Gap buffer → Buffer management: default storage (evidence: `README.md`)
- List buffer → Buffer management: large-file storage (evidence: `README.md`)
- Rope buffer → Buffer management: planned storage (evidence: `README.md`)
