Tanagram Roadmap: May 2024
Tanagram remains a nights-and-weekends project. My progress pace during April averaged about 1.5 workdays per week.
Results: April 2024
Last month, I showed some sketches of a search tool for Xcode. Over the past month, I've been building this product, and it currently looks like this (click through for a video):
Here's a working demo: you start typing, and it returns results interactively. It matches on both symbol names and full-text search. You can add filters (like
— Tanagram (@tanagram_) May 4, 2024-file
to exclude chunks of filepaths) inline. And keyboard shortcuts to toggle options and select results. https://t.co/mqQbqeXH1G pic.twitter.com/F1VkNZLr5i
The core functionality is all working: you can start typing and Tanagram will show you matching symbols or strings in your source code; you can continue typing to refine results, including support for file allowlists (file:
) and blocklists (-file:
); you can use keyboard shortcuts to toggle case sensitivity and whether to treat the input as a regex; and you can use arrow keys to select results and open them directly in Xcode.
It's occasionally buggy; it sometimes hangs or crashes (Swift concurrency is hard). The biggest usability challenge at the moment is the quality of search results — currently, symbols only match on exact substrings, and the results are unsorted. I'd like to support "Quick Open"-style fuzzy matches, e.g. having an input of "msa" return MatchSymbolAction
. I've just started to implement this, using the Needleman-Wunsch algorithm as a starting point.
Roadmap: May 2024
In May, I'm focusing on usability — improving symbol search results and hopefully making them faster, better error handling, and fixing bugs that appear on computers that aren't my dev machine. I'll also add a few settings toggles and some logging. My goal is to get something that works, with a little bit of polish, in the hands of some testers in time for WWDC week.