diff options
| author | user <user@clank> | 2026-08-19 15:25:28 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-19 15:25:28 +0200 |
| commit | 49ac13f70aa3a9224e90699fe68d8463909239db (patch) | |
| tree | 303c3cee9492e23de6a1f0afc7b2feffeba5c6aa /include | |
| parent | slosh: the logo flies into place -- a particle engine, statelessly (diff) | |
| download | slosh-49ac13f70aa3a9224e90699fe68d8463909239db.tar.gz slosh-49ac13f70aa3a9224e90699fe68d8463909239db.tar.xz slosh-49ac13f70aa3a9224e90699fe68d8463909239db.zip | |
slosh: layout files are *.layout, not *.layout.kdl
The old name argued that the extension should say how to read the
file. The argument lost to a collision: zellij speaks the same KDL
syntax under that same extension with a different schema, and to
anyone arriving from there .kdl said *whose* file it is -- naming the
wrong owner is worse than not naming the parser. So a layout is
x.layout, a project's is slosh.layout, the name says what the file is
and --check says how it was read. (It is still KDL underneath; point
your editor's highlighting at *.layout.)
Nobody's checked-in workspace vanishes on upgrade: the project scan
still finds slosh.layout.kdl, never writes it, and where both
spellings exist the new one wins, because two files disagreeing needs
one answer. The unparseable-file heuristic in --check learned the new
suffix -- it matched '.layout.' with a trailing dot, which the new
name no longer has.
The webdemo overlay moves with it (demo.layout), rebuilt and
boot-checked.
Diffstat (limited to 'include')
| -rw-r--r-- | include/app.h | 2 | ||||
| -rw-r--r-- | include/config.h | 2 | ||||
| -rw-r--r-- | include/project.h | 12 |
3 files changed, 11 insertions, 5 deletions
diff --git a/include/app.h b/include/app.h index 33fcbea..d422995 100644 --- a/include/app.h +++ b/include/app.h @@ -181,7 +181,7 @@ typedef struct { } app_workspace_save_t; /* Write one tab out as a project's layout: the same dump `dump-layout` answers - * with, relative to the project, into `slosh.layout.kdl` beside it. `tab` 0 is + * with, relative to the project, into `slosh.layout` beside it. `tab` 0 is * the current one; `path` names the project for a tab that is not yet a * workspace (and saving adopts it, which is the whole of onboarding one). * Refused without `force` when the project already has a layout: that file is diff --git a/include/config.h b/include/config.h index 5aefd01..969136a 100644 --- a/include/config.h +++ b/include/config.h @@ -390,7 +390,7 @@ typedef struct { char *shader_dir; /* Where projects live: `project_roots "~/dev" "~/work" depth=2`. A project is - * a subdirectory of one of these with a `slosh.layout.kdl` in it -- or a + * a subdirectory of one of these with a `slosh.layout` in it -- or a * `.git`, which gets `project_layout` instead. Empty means the feature is * dormant and costs nothing. * diff --git a/include/project.h b/include/project.h index 6bf3021..4cf3bf6 100644 --- a/include/project.h +++ b/include/project.h @@ -18,9 +18,15 @@ #include <stdint.h> /* The file a project uses to say what it needs. One name, so there is no - * precedence question: a layout file by D2's rule, checked by `--check`, and - * highlighted by anything that knows KDL. */ -#define PROJECT_LAYOUT_FILE "slosh.layout.kdl" + * precedence question. `.layout` rather than `.kdl`: zellij speaks the same + * syntax under the same extension with a different schema, and an extension + * that names the wrong owner is worse than one that does not name the + * parser -- the file says what it is, `--check` says how it was read. */ +#define PROJECT_LAYOUT_FILE "slosh.layout" +/* The spelling this replaced. Still *found* by the project scan, so nobody's + * checked-in workspace vanishes on upgrade; everything slosh writes is the + * new name, and the new name wins where both exist. */ +#define PROJECT_LAYOUT_FILE_OLD "slosh.layout.kdl" /* How many projects one session will look at. A picker is not a filesystem * browser: past this many the answer to "which project" is a search, not a |
