feat(tools): L10 ludic-fmt enforces a project's style

lint lines in package.ludic - one_statement, max_file_lines, max_function_lines,
max_comment_lines, max_header_lines, paths, baseline - checked by ludic-fmt --check
<files> and ludic-fmt --lint (the project), at the line; a baseline ratchet lets a
rule arrive in a codebase that breaks it (--init-baseline), lowered as it is fixed.
check-impl reads the alias declarations too (it had been blind to every namespace
L6 moved out of the compiler), and eight methods get their pages; a test holds the
formatter to keeping type arguments together (L5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-24 14:38:35 +03:00
parent e543525eb7
commit 334469ef61
16 changed files with 635 additions and 2 deletions

View file

@ -0,0 +1,20 @@
---
id: app-monitor_count
name: App.monitor_count
category: app
kind: namespace-method
tokens: App.monitor_count
sig: App.monitor_count() -> int
tip: How many displays the machine has.
order: 49
ns: App
member: monitor_count
---
The number of displays attached, for a setting that chooses which one the game opens on; 1 on a platform that reports only the main one.
```ludic
program Screens {
entry { print(App.monitor_count()) }
}
```

View file

@ -0,0 +1,23 @@
---
id: app-window_fixed
name: App.window_fixed
category: app
kind: namespace-method
tokens: App.window_fixed
sig: App.window_fixed(fixed)
tip: A window that cannot be resized or maximised.
order: 51
ns: App
member: window_fixed
---
With `true`, the window has no resize grip and no maximise button - for a launcher or a dialog, which a player should not take for the game itself.
Parameters:
- `fixed` — `true` to fix the window's size, `false` to free it
```ludic
program Launcher {
entry { App.window_fixed(true) }
}
```

View file

@ -0,0 +1,23 @@
---
id: app-window_to_monitor
name: App.window_to_monitor
category: app
kind: namespace-method
tokens: App.window_to_monitor
sig: App.window_to_monitor(index)
tip: Moves the window to that display.
order: 50
ns: App
member: window_to_monitor
---
Moves the game's window onto display `index` (0 is the main one), keeping its size. A no-op where the platform leaves moving windows between screens to the player.
Parameters:
- `index` — which display, 0 to `App.monitor_count() - 1`
```ludic
program Move {
entry { App.window_to_monitor(0) }
}
```