Skip to content

refactor(terminal): extract duplicated AppleScript patterns#617

Merged
Wirasm merged 2 commits into
mainfrom
kild/dry-terminal-applescript
Feb 27, 2026
Merged

refactor(terminal): extract duplicated AppleScript patterns#617
Wirasm merged 2 commits into
mainfrom
kild/dry-terminal-applescript

Conversation

@Wirasm

@Wirasm Wirasm commented Feb 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Extract shared AppleScript template substitution + osascript execution into high-level helpers (spawn_via_applescript, close_via_applescript, focus_via_applescript, hide_via_applescript) in common/applescript.rs
  • Add default close_window trait method that validates window ID then delegates to new required close_window_by_id, removing require_window_id boilerplate from all four backends
  • Simplify iTerm and Terminal.app backends from multi-line method bodies to single function calls

Test plan

  • cargo fmt --check passes
  • cargo clippy --all -- -D warnings passes
  • cargo test --all passes (127 terminal tests, 3 pre-existing unrelated failures in resolve_self_branch)
  • No behavior changes — pure refactor

Closes #436

Add high-level helpers (spawn_via_applescript, close_via_applescript,
focus_via_applescript, hide_via_applescript) that combine template
substitution with osascript execution, reducing boilerplate in iTerm
and Terminal.app backends.

Move window ID validation into a default close_window trait method
that delegates to a new close_window_by_id required method, removing
require_window_id duplication from all four backends.

Closes #436
- Fix stale doc in platform_unsupported! macro (close_window → close_window_by_id)
- Add non-macOS stubs for high-level AppleScript helpers to match low-level pattern
- Update close_window_by_id doc to include Alacritty alongside Ghostty
- Update CLAUDE.md trait snippet to reflect new close_window_by_id and defaults
@Wirasm Wirasm merged commit 4bd8421 into main Feb 27, 2026
6 checks passed
@Wirasm Wirasm deleted the kild/dry-terminal-applescript branch February 27, 2026 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DRY: extract duplicated terminal backend AppleScript patterns

1 participant