I decided to pull the "Soft line wrapping in source editor" ticket into the Windows 0.6 release, because a lot of documents seem to require it. Sorry for the delay. github.com/ktraunmuelle...
I decided to pull the "Soft line wrapping in source editor" ticket into the Windows 0.6 release, because a lot of documents seem to require it. Sorry for the delay. github.com/ktraunmuelle...
And here's source editor warnings & errors in the Windows app:
UI is absolutely my weak spot, I have to say in my defense 😅
Prototyping source editor warnings & errors in the macOS app. I guess that should work for a first iteration. I'll implement the missing UI on the Windows side next, and then call github.com/ktraunmuelle... done.
Thanks to Codex, I am making swift progress on the Windows 0.6 tickets. Probably another 2-3 weeks until the release. github.com/ktraunmuelle...
I recently tried both Claude Code and OpenAI Codex, and Codex wins—hands down.
Scrolling the current line visible in the source editor when navigating up or down. The red outline is just diagnostic line bounding box visualization. github.com/ktraunmuelle...
I guess that's a milestone, somehow? 🥳
I have written a blog post about my experience with integrating the fabulous Tracy profiler into Compositor on both Windows and macOS: compositorapp.com/blog/2026-02...
...and Windows:
Line numbers in the source editor, on macOS...
Compositor for Windows release 0.5 is finally available! 🎉 This prototype brings the first iteration of a brand-new LaTeX source editor. Read all about it on the blog: compositorapp.com/blog/2026-02...
#TeXLaTeX
Compositor for Windows 0.5 will probably be released tomorrow! Sorry for the long wait.
github.com/ktraunmuelle...
The observed delays of between 1~15 milliseconds smells a lot like a 60 frames/sec (16.7ms) cadence, presumably coming from XAML's rendering architecture. My idea now is to replace the current CanvasControl with a CanvasSwapChainPanel, to get the delay down to 1ms or less. github.com/ktraunmuelle...
Ok, the problem is not the dispatch from the background thread to the main queue, that takes less than 100 microseconds (with the Windows DispatcherQueue). There's a 10ms gap on the main queue between updating the page data and rendering. Investigating... 🔎
Same measurement on macOS: the delay is around 1ms.
On Windows, there's still a delay of up to 15ms between "typesetting completed" and page drawing. I had hoped the issue with DispatchQueue/MainRunLoop integration had been solved by this commit, but it doesn't look like it: github.com/ktraunmuelle...
I need to try something else.
Some performance insights from Tracy profiler: on my Microsoft Surface laptop with an Intel Core Ultra 7, rendering one page of a document takes around 700 microseconds (0.7ms). A page pass (typesetting one page) takes around 20ms. The gaps between the page passes is basically my typing speed.
I added support for the hugely impressive frame-based instrumentation profiler Tracy to Compositor. This lets me closely inspect the performance characteristics of every part of the app. Here's a first run, I still need to instrument the code with (a lot) more annotations.
If anyone is interested in what’s happening with Swift on Windows, Saleem (@compnerd) is hosting biweekly Windows office hours. See this Swift Forums post: forums.swift.org/t/introducin...
I’ve taken something away from almost every meeting.
Syntax highlighting and code completion will likely be added in milestone 0.6 github.com/ktraunmuelle...
The new source code editor is finally integrated into the Windows app. Looks and behaves pretty much identical to the Mac app. This brings us close to the next prototype release, milestone 0.5 #WYSIWYG #LaTeX github.com/ktraunmuelle...
Taking a close look at how the new ASCII piece table responds to different editing scenarios (WYSIWYG editing, in this case).
Here's a short clip of the UI tests running:
I am generally not a fan of UI tests, but I have some "smoke test" UI tests. I am not using XCUITest here, however -- this is XCTest with the app itself as the test host, an approach I described in this blog post: compositorapp.com/blog/2018-09...
Next up, I am gonna wrap up the Cross-platform source editor foundation, and add a basic source code editor to the Windows app. github.com/ktraunmuelle...
At the heart of Compositor's LaTeX source code handling sits an ASCIIString type. As part of the new source editor foundation, I have replaced its backing store with an ASCIIPieceTable type. The heart surgery is now complete, and my extensive test suite gives me confidence about the changes.
And all that logic is now nicely unit-testable.
All of the editor layout, navigation, and selection logic is now in the shared Core library that's used by both the Mac and Windows apps. On Mac, the NSView just forwards input events and contains a few lines of drawing code.
Basic mouse and keyboard navigation, together with selection, in the new source code editor (here, on the Mac - Windows will follow soon).