junegunn/fzf
Systems
The Go core is organized as a single fzf package (src/) with three sub-packages: src/algo (matching algorithms), src/tui (renderer), and src/util (shared primitives). The package is small but each major file is large and self-contained.
This section documents the major systems that make up the core. Each page focuses on a different layer of fzf's runtime.
Pages
- Core coordinator — the
Runevent loop insrc/core.gothat wires Reader, Matcher, and Terminal together. - Matching — the
algopackage, the pattern compiler insrc/pattern.go, and the matcher insrc/matcher.go. - Reader and chunk list — input ingestion (
src/reader.go), the chunked storage (src/chunklist.go), and the cache (src/cache.go). - Terminal UI — the renderer interfaces and the layout machine in
src/terminal.go. - Options and action language — option parsing, key/mouse bindings, the action enum, and the placeholder language.
- HTTP server — the
--listenmode insrc/server.go. - Process modes — tmux popup, Zellij popup, winpty, and the proxy machinery in
src/proxy.go/src/tmux.go/src/zellij.go/src/winpty.go.
How the systems compose
graph TD
OPT[Options<br/>src/options.go] --> CORE[Core coordinator<br/>src/core.go]
CORE --> READER[Reader + ChunkList<br/>src/reader.go<br/>src/chunklist.go]
CORE --> MATCHER[Matcher + algo<br/>src/matcher.go<br/>src/algo/algo.go]
CORE --> TERM[Terminal<br/>src/terminal.go]
TERM --> RENDER[Renderer<br/>src/tui/tui.go]
TERM --> SERVER[HTTP server<br/>src/server.go]
CORE --> PROXY[Process modes<br/>src/proxy.go<br/>src/tmux.go<br/>src/zellij.go<br/>src/winpty.go]Each system page describes the entry points, the data structures it owns, and where to make changes when extending it.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.