@neocompose/cli 0.76.2 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/dist/neo.mjs +2090 -614
- package/dist/test-worker.mjs +1486 -953
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/declarations-and-construction.md +42 -10
- package/skills/neocompose-cli/references/neoscript.md +20 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.77.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- efb7ad8: Breaking: lookup members are spelled `Reference<T>` and `Set<Reference<T>>`. A lookup
|
|
8
|
+
declared as `T` with `@settings(collection:)` is now an error; the language
|
|
9
|
+
server's quick fix rewrites the type and drops `selection:`. To respell a clean
|
|
10
|
+
working copy in one step, run `neo pull --reset`.
|
|
11
|
+
|
|
12
|
+
`@settings(collection:)` is optional. An unbound reference selects any stored
|
|
13
|
+
row of `T` or a subclass, and that row's store decides whether a write lands.
|
|
14
|
+
Its default may name a row with an index path such as
|
|
15
|
+
`root.Assets.Items.Index.Slug["seed.carrot"]!`. A `Reference<T>` member
|
|
16
|
+
satisfies interface and abstract `T` getter contracts. Unity needs SDK 0.67.0 to read
|
|
17
|
+
unbound references.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- cc110a0: Completion, hover, go to definition, references, and rename now work on members read through a parenthesized conditional, such as `(ready ? first : second).Count`, or a chained delegate call, such as `Helpers.Factory()().Count`. Renaming `Item.Count` no longer misses the chained call.
|
|
22
|
+
- 4989f8c: The editor infers the element type of `List.Repeat`, so `var items = List.Repeat(new Item(), 2);` makes `items[0].Count` complete, navigate, and rename. The type comes from the repeated value, an explicit type argument such as `List.Repeat<Item?>(null, 2)`, or the expected list type.
|
|
23
|
+
|
|
24
|
+
## 0.76.3
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- 62912f7: Generic constructions whose collection type arguments appear only in code, such as a `Box<List<int>>` built inside a function, now run in functions and specs without an unrelated field that declares the same type. Dictionaries are fixed too.
|
|
29
|
+
- 19ac23d: Completion, go to definition, references, and rename now work on a local assigned from a conditional, such as `var item = ready ? first : second;`.
|
|
30
|
+
- 734baf4: Members of a delegate call's result, such as `factory().Count`, complete and rename again, and a lambda that returns `new(...)` gets constructor argument help.
|
|
31
|
+
- 2bf9270: Delegates can now be called straight from an index, a conditional, a function result, or a force-unwrapped value, such as `callbacks["key"]!()`, `(condition ? first : second)()`, or `Factory.Make()()`. These calls get the same argument, return type, and null checks as other delegate calls.
|
|
32
|
+
- b971d88: An enum default of the wrong type is reported at the expression you wrote instead of failing later. An invalid local definition reports its own error instead of breaking the values that use it. Qualified enum options work in instance defaults, and `neo pull` writes a nested enum value that refers to another stored value as `Reference<…>(id: …)` instead of a plain string.
|
|
33
|
+
- 7643c12: A collection field initialized from a class header parameter, such as `class Box<T>(List<T> value) { public List<T> Value = value; }`, keeps its element type. Unused generic classes now push, and compiler errors keep their file and line.
|
|
34
|
+
- 04a188d: Delegate fields with defaults, such as `public NeoDelegate<int> Value = () => this.Number;`, now run on new and stored instances. An invalid lambda is reported at its line by status and editor validation.
|
|
35
|
+
- dc3ab1d: When a list or dictionary is extracted into a local definition, invalid entries are reported at that definition in status, editor validation, and push or test preparation. Invalid qualified enum keys are reported where they are written, and an invalid option written as `.Name` is reported at that option.
|
|
36
|
+
- 77e4479: Member completion works again after `?.` and `!.`, including on dictionary values such as `items["key"]?.` and on partly typed member names.
|
|
37
|
+
- 1d7b2a3: Large pushes prepare faster.
|
|
38
|
+
- fbab09a: Push, test, and status are faster on projects with many stored instances.
|
|
39
|
+
- 1052547: Static delegate fields, such as `public static NeoDelegate<int> Value = () => Number;`, and lambdas passed to constructors in static fields now run. Invalid lambdas passed to constructors in field values are now reported by status and editor validation, not only when preparing a push or test.
|
|
40
|
+
- 621cb75: A static field can now be initialized by calling another class's static delegate, such as `Helper.Run()`, or by reading a field of a new instance, such as `new Counter().Count`. Status and editor validation now accept a static field built from a generic type that only code names, such as `new Box<List<int>>([1]).Value[0]`, instead of reporting a missing type descriptor.
|
|
41
|
+
- 1ed5f02: Generic constructors accept collection arguments: static fields such as `public static Box<List<int>> Value = new([1, 2]);` now prepare and run with populated, empty, or nested lists and dictionaries.
|
|
42
|
+
|
|
3
43
|
## 0.76.2
|
|
4
44
|
|
|
5
45
|
### Patch Changes
|