How njskalski/bernardo works
Bernardo/Gladius contains two products: Bernardo is a terminal UI widget library, while Gladius is a code editor. The map emphasizes Gladius’s user-facing editing and language-service capabilities, with Bernardo’s terminal I/O and widget framework as its internal presentation layer. The README documents editor configuration and LSP-based completion; the source index supports several internal module relationships. Many central UI and startup files were not sampled, so their runtime wiring is not asserted.
Main entry points: handler_factory.rs Workspace handlers · gladius Editor runtime · buffer_state.rs Buffer state · navcomp_provider_lsp.rs Navigation provider
Components 20
Applications
- Gladius startup
src/bin/gladius/main.rs - Editor runtime
src/gladius - Editor configuration
src/config/config.rs - Bernardo reader
src/bin/reader/main.rs
Editing Core
- Main editor view
src/widgets/main_view/main_view.rs - Editor widget
src/widgets/editor_widget/editor_widget.rs - Buffer state
src/text/buffer_state.rs - Text buffer
src/text/text_buffer.rs - Cursor model
src/cursor/cursor.rs - Filesystem paths
src/fs/path.rs
Language Services
- Workspace handlers
src/w7e/handler_factory.rs - Rust handler
src/w7e/rust/handler_rust.rs - C++ handler
src/w7e/cpp/handler_cpp.rs - Language IDs
src/tsw/lang_id.rs - Navigation provider
src/w7e/navcomp_provider_lsp.rs - LSP client
src/lsp_client/lsp_client.rs
Terminal UI
- Terminal app wrapper
src/app.rs - Terminal I/O
src/io - Widget framework
src/widget
Other components
- Editor user
Connections 20
- Editor user → Gladius startup: starts editor
README.md - Gladius startup → Editor runtime: starts runtime
- Editor runtime → Editor configuration: loads settings
- Editor runtime → Main editor view: shows editor
- Editor runtime → Workspace handlers: configures handlers
- Workspace handlers → Rust handler: loads Rust
src/w7e/handler_factory.rs - Workspace handlers → C++ handler: loads C++
src/w7e/handler_factory.rs - Workspace handlers → Navigation provider: constructs provider
src/w7e/handler_factory.rs - Rust handler → Navigation provider: stores provider
src/w7e/rust/handler_rust.rs - C++ handler → Navigation provider: stores provider
- Workspace handlers → Language IDs: selects language
src/w7e/handler_factory.rs - Navigation provider → LSP client: uses LSP client
- Main editor view → Editor widget: hosts editor
- Editor widget → Buffer state: edits buffer
- Buffer state → Text buffer: uses text model
src/text/buffer_state.rs - Buffer state → Cursor model: uses cursors
src/text/buffer_state.rs - Buffer state → Filesystem paths: accesses files
src/text/buffer_state.rs - Editor user → Terminal app wrapper: runs terminal UI
README.md - Terminal app wrapper → Terminal I/O: creates input output
src/app.rs - Bernardo reader → Widget framework: uses widgets
src/bin/reader/main.rs