@neocompose/cli 0.89.1 → 0.89.3
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 +32 -0
- package/dist/neo-runtime.mjs +1082 -587
- package/dist/test-worker.mjs +2533 -2327
- 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/initializers.md +3 -0
- package/skills/neocompose-cli/references/declarations/member-kinds.md +4 -1
- package/skills/neocompose-cli/references/neoscript/collections.md +3 -0
- package/skills/neocompose-cli/references/neoscript/strings.md +8 -0
- package/skills/neocompose-cli/references/neoscript/types-and-narrowing.md +10 -0
- package/skills/neocompose-cli/references/sync/unity-export.md +5 -3
- package/skills/neocompose-cli/references/values/references.md +7 -0
package/package.json
CHANGED
|
@@ -109,7 +109,7 @@ The marker near the top of `SKILL.md` must exactly match the package version,
|
|
|
109
109
|
and this quoted copy is checked too:
|
|
110
110
|
|
|
111
111
|
```html
|
|
112
|
-
<!-- reviewed-through-cli: 0.89.
|
|
112
|
+
<!-- reviewed-through-cli: 0.89.3 -->
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
Keep this skill on current behavior. Upgrade steps, rollout prerequisites,
|
|
@@ -17,6 +17,9 @@ Immutable construction, and edits to stored constructions.
|
|
|
17
17
|
own their value; use `Clone()` or `Reference`.
|
|
18
18
|
- Inherited initializers read parameters from the constructor that declared
|
|
19
19
|
them; a storage-only override keeps that scope.
|
|
20
|
+
- Editing a header constructor recompiles dependent child initializers in the
|
|
21
|
+
new scope, including unchanged children with explicit IDs. Keep those IDs
|
|
22
|
+
when adding an optional parameter and updating the child expression.
|
|
20
23
|
- Omitted constructor fields use their defaults. Writable collection defaults
|
|
21
24
|
belong to each instance. Fields without defaults stay absent, and `null`
|
|
22
25
|
arguments to generated member-wise constructors mean omission.
|
|
@@ -104,4 +104,7 @@ Each position has a derived descriptor; author no descriptor IDs. Relabeling
|
|
|
104
104
|
keeps identity. Changing arity or moving positions needs a migration. A
|
|
105
105
|
required tuple without a default must be supplied at construction. Owned
|
|
106
106
|
class and collection elements follow the single-owner rule. Tuple
|
|
107
|
-
|
|
107
|
+
elements may use constructed generic classes, such as `(GBox<int>?, int)`.
|
|
108
|
+
Unity exports preserve these type arguments, including forwarded arguments
|
|
109
|
+
such as `GBox<T>` inside a generic class.
|
|
110
|
+
Tuple expressions are in [types and narrowing](../neoscript/types-and-narrowing.md#tuples).
|
|
@@ -69,6 +69,9 @@ return this.Beds
|
|
|
69
69
|
|
|
70
70
|
These apply to writable collections and are statements:
|
|
71
71
|
|
|
72
|
+
- `items.Add(value)` appends an entry. An aggregate already owned by another
|
|
73
|
+
entry or field can't be added again. Add a new value, or `Clone()` a class
|
|
74
|
+
instance.
|
|
72
75
|
- `items.Insert(index, value)` accepts 0 through `items.Count` (append);
|
|
73
76
|
other indices throw.
|
|
74
77
|
- `items.Remove(value)` removes the first equal entry; a missing value is a
|
|
@@ -39,6 +39,14 @@ Numbers format only with an explicit format: `D<n>` (int only, zero-padded),
|
|
|
39
39
|
value, decimal rounds half away from zero, and an all-zero result has no `-`.
|
|
40
40
|
For plain text, interpolate: `$"{value}"`.
|
|
41
41
|
|
|
42
|
+
Vector and Color interpolation follows Unity's default `ToString`: float
|
|
43
|
+
vectors use two decimals, integer vectors use integer coordinates, and colors
|
|
44
|
+
use `RGBA(r, g, b, a)` with three decimals. These use Unity's seven significant
|
|
45
|
+
digits and midpoint-away-from-zero rounding, including through a type parameter.
|
|
46
|
+
For example, `new Vector2(1.005, 2)` interpolates as `(1.01, 2.00)`.
|
|
47
|
+
Sequences print `<IEnumerable<T> unenumerated>` or `<IEnumerator<T> unenumerated>`;
|
|
48
|
+
formatting never advances them.
|
|
49
|
+
|
|
42
50
|
## Int-to-float conversion
|
|
43
51
|
|
|
44
52
|
An int assigned to `float` rounds to float32. This applies to arguments,
|
|
@@ -89,6 +89,10 @@ classes (`Box<int> box = new(1);`). Explicit lambda parameter types accept
|
|
|
89
89
|
the full declaration grammar, including `decimal`, generics, collections, and
|
|
90
90
|
nullables.
|
|
91
91
|
|
|
92
|
+
Inherited tuple types use the subclass's generic bindings, including nested
|
|
93
|
+
tuple elements. For `Ints : G<int>` and `G<T>.Items` declared as
|
|
94
|
+
`Set<(T,int)>`, `new Ints().Items.Add((7,1))` accepts an `int` in the first slot.
|
|
95
|
+
|
|
92
96
|
## Tuples
|
|
93
97
|
|
|
94
98
|
```neo
|
|
@@ -105,7 +109,13 @@ var score = positions.Select(((r, c)) => r + c);
|
|
|
105
109
|
discards. Assignment deconstruction is unsupported.
|
|
106
110
|
- Equality is recursive by element; decimal scale is ignored, classes and
|
|
107
111
|
collections compare by identity.
|
|
112
|
+
- Strings inside tuple sets may use the default localized format. Stored
|
|
113
|
+
uniqueness compares text IDs or literal strings; runtime equality compares
|
|
114
|
+
the text read in the active locale. Translations can make distinct stored
|
|
115
|
+
entries compare equal. Direct `Set<string>` entries still require `.Plain`.
|
|
108
116
|
- `(int, int)?` is a nullable tuple; `(int?, int)` has a nullable element.
|
|
117
|
+
- Tuples can bind class type parameters, including named and nested tuples:
|
|
118
|
+
`Box<(int Key, (string Label, int Count) Detail)>`.
|
|
109
119
|
|
|
110
120
|
Stored tuple members are covered in
|
|
111
121
|
[member kinds](../declarations/member-kinds.md#stored-tuples).
|
|
@@ -57,7 +57,9 @@ and its source. An unrecognized Unity version produces a baseline warning.
|
|
|
57
57
|
|
|
58
58
|
Closed instance extension functions can generate classic C# extension methods.
|
|
59
59
|
Interface receivers, open receiver types, static extensions, and computed
|
|
60
|
-
extension properties require C# 14. Export
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
extension properties require C# 14. Export summarizes these omitted wrappers in
|
|
61
|
+
one warning with the affected member count. Other wrapper warnings remain
|
|
62
|
+
individual, and export diagnostics retain member IDs, receivers, and missing
|
|
63
|
+
capabilities. The members remain available to the NeoScript evaluators and SDK
|
|
64
|
+
direct invocation API. Changing
|
|
63
65
|
the target regenerates wrappers and removes obsolete owned wrapper files.
|
|
@@ -66,6 +66,13 @@ public Reference<NeoVariant<Tree>> Look = root.Garden.Felled;
|
|
|
66
66
|
- `Set<Reference<T>>` selections can mix bare paths and explicit references.
|
|
67
67
|
Computed selections deduplicate by target identity, not by current value.
|
|
68
68
|
A literal selection of fixed targets must not repeat the same target.
|
|
69
|
+
A selection literal may also evaluate its entries, for example
|
|
70
|
+
`[root.Assets.Items.First(), selected]`. Those entries must resolve to
|
|
71
|
+
existing objects; the selection evaluates when its owner is constructed.
|
|
72
|
+
A compatible `Set<T>` path is a computed selection, including a set of a
|
|
73
|
+
derived class assigned to `Set<Reference<Base>>`. Each selected object keeps
|
|
74
|
+
its identity; the selection does not acquire the source collection's row.
|
|
75
|
+
Convert a `List<T>` to a set with `.ToSet()`.
|
|
69
76
|
- A bare path to an existing reference copies its current target when the
|
|
70
77
|
object is constructed. Later rebinding of that source reference does not
|
|
71
78
|
rebind the copy.
|