Tanagram Roadmap: January 2024
Tanagram remains a nights-and-weekends project. My progress pace during December averaged a bit under 1.0 workdays per week; I was on vacation for much of the month
Results: December 2023
I spent December implementing the search UI that I sketched last month. It looks like this (click through for a video):
A first draft of the search UI — you can search for symbols using a variety of conditions, all keyboard-navigable. Or search for paths through a project’s reference graph. pic.twitter.com/1xLtMitrIt
— Tanagram (@tanagram_) January 7, 2024
The search tokens input looks simple, but involves a lot of custom AppKit code:
- The tokens are custom views rendered inline in an
NSTextView
. - I wanted the tokens to be transparently navigable via arrow keys — users can use the arrow keys to move the cursor between the outer text view and the text fields inside each token. I prototyped this earlier in December, and have refined it since then.
- Users can press ⌘↩ in either the outer text view or the inner text fields to submit the search.
- The autocomplete suggestions are rendered in a custom
NSWindow
whose position is calculated to match the cursor's position. Arrow keys can be used to select suggestions.
Roadmap: January 2024
In January, I'll spend a bit of time fixing some bugs and rough edges with the search UI. Most of my time will go towards revisiting the foundation of how I work with Xcode projects and SourceKit-LSP. My current implementation is brittle and requires a lot of manual effort from users, which has limited potential users' ability to try using Tanagram. I'm not sure how I can make this better yet; that's part of what I'll have to figure out.