Me porting Runestone from UIKit to AppKit.

Currently leaning towards having separate implementations of TextView for UIKit and AppKit with shared logic moved into separate types. The alternative is a single implementation with lots of if-else-endif macros.

It makes for some duplicated logic but also means that the two implementations can easily be maintained and implemented in isolation.

@simonbs I’d go for separate implementations too.