Selection and filter depth: the thirteen selection.* and filter.* commands the shell never binds

Đang mở
#138 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
desktop, tooling

Hướng nghiên cứu

Start with ShellAction::SelectAll and fn select_inverse in crates/app/src/shell/mod.rs, which currently act on the editor's cell selection directly. Find where the engine's selection.* and filter.* commands are registered, then route the shell's menu or panel actions through those dispatches. Done means each of the thirteen commands is dispatched from a real UI surface, the reachability floor is re-blessed with cargo run -p xtask -- reachability --bless, and a regression test fails when a binding is removed.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement parity

The engine already carries these thirteen selection and filter commands; the shell's designed surface never binds any of them.

The selection half is the sharpest case: the shell implements Select All and Select Inverse, but over the editor's own cell selection (ShellAction::SelectAll in crates/app/src/shell/mod.rs, fn select_inverse) rather than by dispatching selection.selectAll / selection.selectInverse. The behaviour exists; the registry path is not exercised from the UI, so the engine's own semantics (its selection model, its undo, its scripting surface) are not what the user gets.

The commands:

  • selection.selectAll, selection.selectNone, selection.selectInverse, selection.selectAllOnLayer — the four selection verbs.
  • selection.duplicateToFrames, selection.duplicateToFrameRange, selection.distributeToFrames — CS6's "duplicate to frames" and "distribute to frames".
  • filter.selection, filter.selectionByID, filter.selectionByName, filter.convolveSelection, filter.motionBlurSelection, filter.setEffectName — the filters that act on a selection, and the effect-name setter.

Acceptance:

  • the shell dispatches the engine's selection verbs rather than reimplementing them over its own state, so the engine's selection model, undo and scripting surface are the ones the user gets.
  • 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.
Ngôn ngữ chính
Rust
Star
11
Fork
1
Merge trung bình
13 giờ 16 phút
Pull request đã merge (30 ngày)
38

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của aliasfoxkde/FireCraft

Tất cả issue của aliasfoxkde/FireCraft

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.