[pull] master from GaijinEntertainment:master#979
Merged
Conversation
The card warned that struct field defaults silently fail to fire on [widget] auto-emitted globals. Fixed upstream in dasImgui commit 111f7dc (bbatkin/dasimgui-widget-auto-init) — the macro now emits `var IDENT : T = T()` so the default constructor runs. Card's primary teaching is wrong post-fix; deleting beats updating to avoid future search hits surfacing obsolete advice.
…ui phase 0b.3 cards
`daslib/delegate.das` — promote `struct template DelegateReturn` to
`struct template public` so callers in other modules can instantiate the
non-void-return template (the void variant `Delegate` was already public;
the asymmetry was a copy-paste oversight).
Mouse cards (dasImgui Phase 0b.3 — containers + hierarchical path keys
session): four Q&A entries captured during the [container] annotation
implementation:
- dasimgui-container-annotation-and-hierarchical-path-keys
— How [container] differs from [widget]: same widget_ident injection
and auto-emit gate, plus container_path_push/pop wrapping the body
so leaf children get hierarchical registry keys (MAIN/CHILD/LEAF).
- daslang-block-last-arg-blocks-default-arg-fill
— `def foo(a, b=def, blk : block)` does NOT auto-shift defaults so
BLOCK lands in slot 2; positional resolution is left-to-right and
BLOCK collides with b. Workaround: drop defaults on per-call config
for [container] defs, supply via the named-tuple at the call site.
- daslib-json-optional-bool-omitted-when-false-snapshot-test-impact
— `@optional bool : opened` is OMITTED from the JSON envelope when
false; `wait_for_bool_value(target, "opened", false)` never fires.
Switch the assertion to leaf-disappearance instead — also a more
meaningful UI signal for closed-tree visibility.
- imgui-closable-window-skip-begin-when-closed-not-call-with-pfalse
— ImGui's contract: stop calling Begin once `*p_open` flips to false.
Calling Begin with `*p_open=false` does NOT reliably suppress the
body — leaves render at least one extra frame. dasImgui's `window`
/ `tab_item` containers gate the entire Begin/End on `state.open`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… `= ""` Replacement for the deleted `dasimgui-widget-auto-emit-skips-struct-field-defaults` card with the post-fix answer (defaults DO fire), pointing to the canonical test under `modules/dasImgui/tests/integration/test_widget_init_defaults.das` and listing what the post-0b state struct sweep changed (capacity=256, combo/list value=-1, window/tab open=true). Edited the error-31014 string-field card to lead with `@live value : string = ""` as the primary recommendation; demoted `@safe_when_uninitialized` to the "genuinely-want-null-pointer" alternative. Removed the stale companion gotcha about numeric defaults not firing; replaced with a forward link to the new card. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…perf017-and-dasimgui-mouse-cards daslib(delegate): public DelegateReturn template + dasImgui phase 0b.3 mouse cards
- setup_call_list per-module [init] accumulator pattern (decs_boost
precedent)
- [init] vs [init, lateInit]: lateInit is sort-order only; both
re-fire on hot-reload via runInitScript
- JV(float2) serializes as {x, y} object, NOT [x, y] array (vs tuple
which serializes as {_0, _1})
- GetScrollMaxX/Y must be read AFTER invoke(blk) populates content;
reading before returns 0
- require X public re-exports symbols transitively — used to expose
daslib/json_boost::JV from imgui_boost_runtime to user modules
- dasImgui Phase 1: widget_exists (registered) vs widget_rendered
(painting) — semantic split with the daslib/json ?[] quirk
- Skip text-input cursor / selection telemetry — public API too
limited; imgui_test_engine reads via Ctrl+A/Ctrl+C/clipboard, no
direct InputTextState access
- New skills/mouse.md: practitioner manual behind the MOUSE FIRST rule
(triggers, asking, adding, editing, carve-outs, dupe-on-add gate).
Bakes in two telemetry-derived lessons: skip the meta-ask
("when-to-consult-mouse" was the #1 hit by 2x and almost all noise);
symbol-shaped misses go to daslang MCP, not new cards.
- CLAUDE.md: trim "Asking blind-mouse" prose (operational detail moved
to the skill); add skills-table row.
- install/CLAUDE.md: skills-table row, add utils/mouse/ to SDK Directory
Layout, add "Personal Q&A Cache (blind-mouse)" section parallel to the
MCP Server one.
- install/skills.list: add mouse.md (alphabetical).
- No CMake changes — skills.list is read dynamically via file(STRINGS).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )