chore(repo): add .editorconfig, reconcile .gitignore, add x clean

Repository hygiene pass (issue #39):

- Add `.editorconfig` mirroring ludic-fmt: 2-space indent, LF, UTF-8, trim
  trailing whitespace and final newline by default; 4-space for Python
  tooling; keep trailing whitespace in Markdown (hard line breaks).
- Reconcile `.gitignore`: root-anchor `/build/` and `/out.ppm`, normalise the
  misleading `**.zip` glob to `*.zip`, and document that the Kenney art is
  tracked *extracted* while the download/plugin zips are local-only. `.idea`
  -> `.idea/`.
- Add a `bin/x clean` command that removes `build/`, the root `out.ppm`, and
  stray `bin/*.tmp`, keeping the toolchain binaries so the running `x`
  survives.

No generated artifacts land outside build/ or bin/, both of which are ignored.

Closes #39

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-08-30 16:46:10 +03:00
parent 9ae69e64b4
commit 1c9235a948
4 changed files with 49 additions and 4 deletions

17
.gitignore vendored
View file

@ -1,6 +1,15 @@
build
**.zip
out.ppm
# Generated build tree: LLVM IR, objects, compiled apps and the docs site all
# land under build/ (see `bin/x build` / `bin/x clean`). Root-anchored so a
# source dir named "build" elsewhere is never accidentally ignored.
/build/
# Headless render dropped in the working directory by a --headless run.
/out.ppm
# Archives are never tracked: the Kenney art is committed *extracted* under
# assets/kenney/**/ (PNG/tmx/License), while the original download .zips and any
# packaged plugin .zip are local-only build inputs/outputs.
*.zip
# the toolchain binaries (ludicc, ludic, x, ludic-fmt, ludic-lsp) — all built
# into bin/ by the one-line bootstrap + `bin/x build`; never checked in. The
@ -15,7 +24,7 @@ tools/editors/jetbrains/build/
# IntelliJ plugin SDK sandbox (tools/editors/jetbrains)
.intellijPlatform/
.idea
.idea/
# macOS Finder metadata
.DS_Store