Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The window-update observer accesses view.window without first checking isViewLoaded, causing unrelated window updates to initialize an unused preloaded editor’s UI and install event monitors.
1 open issue
What changed in this PR
Adds editor.writingToolsAffordance to the runtime configuration, allowing users to control Writing Tools affordance visibility in the editor.
Changes:
- Adds system-default, always-hidden, and complete-mode-only options.
- Applies suppression through window-update notifications.
- Extends runtime checks for the private window classes used by suppression.
| File | Description |
|---|---|
| MarkEditMac/Sources/Main/AppRuntimeConfig.swift | Defines affordance options, decoding, and defaults. |
| MarkEditMac/Sources/Editor/Controllers/EditorViewController.swift | Applies the configured suppression policy. |
| MarkEditMac/Modules/Tests/RuntimeTests.swift | Checks for the targeted Writing Tools window classes. |
| MarkEditMac/Modules/Sources/AppKitExtensions/UI/NSViewController+Extension.swift | Adds notification-based affordance hiding. |
Review effort: Balanced
9fd0ef2 to
ff4b1db
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Suppression depends on private macOS window classes and notification/parent behavior, but tests only check class existence, leaving affordance hiding and continued manual Writing Tools invocation unverified on macOS 26 and 27.
No open issues 🎉
1 resolved since last review
Review effort: Balanced
There was a problem hiding this comment.
🔵 Needs a closer look
Suppression relies on undocumented macOS window classes and ordering behavior, requiring native UI validation across supported versions to confirm it hides only the affordance without disrupting Writing Tools.
No open issues 🎉
Review effort: Balanced

See https://github.com/MarkEdit-app/MarkEdit/wiki/Customization#editorwritingtoolsaffordance.