Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Snap editor records one Undo step per keystroke and per slider tick

Abierto
#331 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
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
swift
Área
desktop

Línea de trabajo

Start with the change() and undo() logic in ImageWorkspaceEditing.swift (around lines 103-118 and 110), then the updateSelected calls for the caption and sliders in SnapEditorView.swift (lines 94, 103, 109). Compare with the canvas drag commit in ImageWorkspaceCanvas.swift (lines 212-213). Done means the acceptance cases pass under --check-image-workspace: 150 keystrokes make one undo step, and undo order is text, mark, then crop.

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

Descripción

bug

Outcome: typing a caption or dragging Text size or Line width makes one Undo step, so earlier crops and marks stay undoable.

Evidence (main edc15df)
  • The text binding and the sliders call updateSelected on every change (SnapEditorView.swift:94, :103, :109).
  • change() pushes every edit and trims to 100 entries (ImageWorkspaceEditing.swift:103-118). A caption of about 100 characters therefore drops the crop from history.
  • undo() clears the selection (:110), which closes the inspector.
  • Canvas drags already commit once (ImageWorkspaceCanvas.swift:212-213).
  • docs/snap.md:22 promises Undo for crop, text and marks.
Change
  • Add a coalescing key (mark id plus property). Consecutive edits with the same key replace the top entry.
  • select, undo and redo reset the key.
  • After undo or redo, reselect the mark if it still exists.
Acceptance

In --check-image-workspace:

  • 150 keystrokes make one step.
  • Undo order is text, then the mark, then the crop.
  • Redo restores.
  • A fontSize run is one step.
  • A selection change or an unkeyed edit splits runs.
  • An edit after undo starts a new step.
Value before scope
  1. Outcome: Undo works on the capture-to-deck path. Evidence: the traced stack.
  2. Simpler route: none.
  3. Owner: ImageWorkspaceEditing.
  4. Complexity: one key.
  5. Verified by: source checks.

Grammar: Quality.

Refs #154


Build-ready record from the overnight lead session of 15 Oct 2026, verified against main edc15df by an independent skeptic per item. Implementation follows on a claude/* branch; this issue closes only after native acceptance.

Lenguaje dominante
Swift
Estrellas
0
Forks
1
Merge medio
8 h 5 min
PR fusionados (30 d)
215

Preparar el entorno

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 Ship-Work/workbench

Todos los issues de Ship-Work/workbench

Issues similares

Más issues de Swift

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.