Symbol depth: instance animation, button states, and the sixteen symbol.* commands the shell never binds

Abierto
#137 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
desktop-dev

Línea de trabajo

Start with the parity matrix in docs/planning/generated/dom-parity.md and decision 0044, which list the setAnimInstance* verbs as carried in the engine, then find where the shell's menus, panels and tools dispatch commands. Each of the sixteen symbol.* commands needs a real dispatch from the shell surface, and the renderer must honour any value it writes. Done means the reachability measurement rises, the floor is re-pinned with cargo run -p xtask -- reachability --bless, and a regression test fails when a binding is removed.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement parity

The engine already carries these sixteen symbol.* commands; the shell's designed surface never binds any of them.

The DOM parity matrix (docs/planning/generated/dom-parity.md) marks all six setAnimInstance* verbs as carried (decision 0044) — the engine writes the ANNi / ANXf / ANYf / ANRi carriers and they round-trip. What is missing is the surface: a user cannot set an instance's frame count, loop count, offset, rotation, scale or start/end opacity, and CS6 exposes all six. The loop count also closes a residual already recorded in docs/NEXT.md (20.3) and docs/TASKS.md row 8 — "a document-level loop count (CS6's {loopCount:%Ai})".

The commands:

  • symbol.setAnimInstanceNumFrames, symbol.setAnimInstanceLoopCount, symbol.setAnimInstanceOffsetDist, symbol.setAnimInstanceRotationAmount, symbol.setAnimInstanceScaleAmount, symbol.setAnimInstanceStartEndOpacity — the instance animation properties.
  • symbol.setButtonOptions, symbol.setButtonAutoSlice, symbol.setButtonShowDownOnLoad, symbol.setButtonIncludeDownState, symbol.setButtonIncludeOverWhileDownState — the button-symbol states and the auto-slice wiring.
  • symbol.setParam, symbol.setCustomData — the parameter and custom-data carriers.
  • symbol.editDetach, symbol.editReorder — the symbol editor's detach and reorder verbs.
  • symbol.duplicateSymbolForAlias — the alias duplication path (decision 0053).

Acceptance:

  • each command named here is dispatched from the shell's designed surface — a menu row, a panel field or a tool action. A literal in a comment does not count: the gate is a literal scan, and the binding has to be a real dispatch.
  • where the surface writes a value the renderer ignores, the renderer honours it too. A field that engages and changes nothing observable is not a binding.
  • the reachability measurement rises accordingly and the floor is re-pinned deliberately with cargo run -p xtask -- reachability --bless (the bless refuses to lower it).
  • a regression test fails when the binding is removed.
Lenguaje dominante
Rust
Estrellas
11
Forks
1
Merge medio
13 h 16 min
PR fusionados (30 d)
38

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aliasfoxkde/FireCraft

Todos los issues de aliasfoxkde/FireCraft

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.