Merge branch 'lang/foundations' into lang/i18n-data
This commit is contained in:
commit
9f1273fb32
38 changed files with 122587 additions and 100240 deletions
9
changes/check-stdin-file.md
Normal file
9
changes/check-stdin-file.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
bump: minor
|
||||
type: feat
|
||||
**Check an unsaved buffer.** `ludic build --check --diagnostics=json --stdin-file <path>` (and
|
||||
`ludicc --check --stdin-file <path>`) checks the program as usual, but wherever the compiler would open
|
||||
`<path>` - the entry, an import reached through a barrel, a component's `.xml` / `.lss`, an `.lres` -
|
||||
it reads the text on stdin instead, so an editor's diagnostics follow typing without a save. Paths are
|
||||
matched after normalising both (separators, relative to the working directory, `.` / `..` folded).
|
||||
Diagnostics carry the file's usual name with lines and columns in the buffer; a `<path>` the program
|
||||
never opens is reported as one warning.
|
||||
12
changes/fmt-editor-output.md
Normal file
12
changes/fmt-editor-output.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
bump: minor
|
||||
type: feat
|
||||
**`ludic fmt` for editors.** `ludic fmt --lint --json` prints the violations `--lint` reports as one JSON
|
||||
array on stdout, `[{"file", "line", "col", "rule", "message"}]` ordered by file, line and column (the
|
||||
summary on stderr, `--lint`'s exit status, and the baseline never rewritten). `ludic fmt -` formats
|
||||
stdin to stdout under the project found from the working directory (the nearest `package.ludic`
|
||||
upwards), and refuses a buffer that does not read as Ludic - an open string, a bracket never closed or
|
||||
closed by the wrong one - with exit 2 and `<name>:<line>:<col>: error: ...` on stderr.
|
||||
`--stdin-name <path>` makes the buffer that file: the project is found from its directory, and
|
||||
`ludic fmt - --lint --json --stdin-name <path>` judges it against that file's baseline and `lint
|
||||
paths`, reporting it under the name given. Hooks around `fmt` and `get` read nothing from stdin and
|
||||
write to stderr when the command's stdout is a program's (`--json`, `-`).
|
||||
10
changes/pkg-remove-get-json.md
Normal file
10
changes/pkg-remove-get-json.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
bump: minor
|
||||
type: feat
|
||||
**`ludic remove <module>` and `ludic get --json`.** `remove` is the inverse of `add`: the `require`
|
||||
leaves `package.ludic`, the lock keeps what the remaining requires still reach (read from the store's
|
||||
copies of each package's manifest, no network), and each package leaving the lock loses the
|
||||
`ludic_modules/` link `add` made - never the shared store entry. A module that is not required is
|
||||
refused; source still importing a removed package is a warning. `ludic get --json` prints what the run
|
||||
changed in the lock as one JSON object on stdout - `{"added", "removed", "changed", "unchanged"}`, an
|
||||
entry as the lock records it (`name`, `version`, `hash`, `kind`, `provides`), a change as `{name, from,
|
||||
to, from_hash, to_hash}` - with the resolver's own lines on stderr.
|
||||
12
changes/schema-code.md
Normal file
12
changes/schema-code.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
bump: minor
|
||||
type: feature
|
||||
**`ludic schema` carries the code map: a `"code"` section.** Beside the records, registries and
|
||||
`lang`, the schema now lists what an editor's code map needs, from the compiler's own reading:
|
||||
`modules` (uses, layer, friend, files), `states`, `actions`, `reducers` and every `dispatch`, `events`
|
||||
(cancellable, net) with every `emit` and their `@On` listeners, `ports` (members with their `fn`
|
||||
types and defaults) and `binds` (port, member, the function named, where), `handlers` (phase, hook
|
||||
and what it names, `@Public`, `@Server` / `@Predicted`, `@Queries` with their filters, the scene and
|
||||
layer), `models` (`@Owned`, `@Sync`), `prefabs`, `scenes` (start, shows, lasts / loads and what
|
||||
follows, layers) and `fn_refs` - every `fn name` in code or in a resource file, with the slot it
|
||||
fills (a registry's field and row, a port's member, a record field, an argument, ...). Every place
|
||||
is `"file:line:col"`; the rest of the schema is unchanged, so `schema_version` stays 1.
|
||||
Loading…
Add table
Add a link
Reference in a new issue