Terminal text editor written in modern Fortran with LSP integration
A sophisticated text editor built entirely in Fortran 2003+, demonstrating that Fortran can handle modern application development. Features VSCode-style keybindings, gap buffer text storage, multi-pane editing, full LSP support, and a git-aware file tree. No external UI dependencies - pure ANSI escape sequences for rendering.
57 source files, minimal C (termios only)
O(1) insertions at cursor position
Completion, diagnostics, go-to-definition, rename
Horizontal and vertical splits with independent viewports
Select next match, add cursors above/below
Stage/unstage files, status indicators
Restores tabs, panes, cursors across sessions
Familiar shortcuts for modern developers
Build Dependencies: gfortran (or flang-new)
Binary name: fac
Opens the directory as a workspace with persistent state. Press Ctrl+B to toggle the file tree.
| Action | Keybinding |
|---|---|
| Save | Ctrl+S |
| Open file browser | Ctrl+O |
| Toggle file tree | Ctrl+B |
| Search/Replace | Ctrl+F |
| Go to line | Ctrl+G |
| Command palette | Ctrl+P |
| Show help | Ctrl+/ |
| Quit | Ctrl+Q |
facsimile automatically detects and connects to language servers. Install the appropriate server for your language:
| Language | Server |
|---|---|
| Python | pip install python-lsp-server |
| Rust | rustup component add rust-analyzer |
| JavaScript/TypeScript | npm i -g typescript-language-server |
| Go | go install golang.org/x/tools/gopls@latest |
| Fortran | pip install fortls |