aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-19 13:47:10 +0200
committeruser <user@clank>2026-08-19 13:47:10 +0200
commitffaf9ff9db77573612317882b96158b5c7ba9655 (patch)
treeb8371eaa03be35bd7ba23e70c7ae8421c0387440 /docs
parentslosh: defaults most people can live in, said by shaders (diff)
downloadslosh-ffaf9ff9db77573612317882b96158b5c7ba9655.tar.gz
slosh-ffaf9ff9db77573612317882b96158b5c7ba9655.tar.xz
slosh-ffaf9ff9db77573612317882b96158b5c7ba9655.zip
slosh: split app.c into five units, mechanically
app.c was 7k lines wearing section markers; now the markers are files, cut exactly along them, no behaviour change: app.c the session core: config in force, pane and tab lifecycle, walking, input routing, introspection app_layout.c layout, tree edits, resizing, equalising, rotating, focus app_session.c layout files, checking, workspaces, dumping a session app_draw.c drawing, the shader passes, kitty graphics app_ui.c the finder, modals, the palette, the project picker, renaming include/app_internal.h carries what the five share: the tree/tab/app structs, CFG and the palette macros, and the 50-odd formerly static functions the cut made cross-unit, declared where they are defined. They keep their names; only the five units see the header. One test moved with the code: test_portable_layouts' staleness check greps the source for the layouts section, which now lives in app_session.c. Mechanical, so blame for anything in the four new files continues in app.c before this commit.
Diffstat (limited to 'docs')
-rw-r--r--docs/design.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/docs/design.md b/docs/design.md
index ce749d2..af5b139 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -36,7 +36,11 @@ functions (the KDL parser, the shader pass, the expression compiler).
## The shape of it
```
-src/app.c the session: tree, layout, chrome, input routing, control API
+src/app.c the session core: pane and tab lifecycle, input routing
+src/app_layout.c the layout: splits, tree edits, resizing, focus
+src/app_draw.c drawing the chrome, the shader passes, graphics
+src/app_ui.c the finder, the palette, modals, renaming
+src/app_session.c layout files, workspaces, dumping a session out
src/pane.c one pty + one libghostty-vt terminal, composed into the screen
src/screen.c our cell buffer, and the minimal byte stream to update a terminal
src/server.c the session process: socket, poll loop, config watcher