Tanagram Updates

Subscribe
Archives
May 4, 2024

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 -file to exclude chunks of filepaths) inline. And keyboard shortcuts to toggle options and select results. https://t.co/mqQbqeXH1G pic.twitter.com/F1VkNZLr5i

— Tanagram (@tanagram_) May 4, 2024

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.

Don't miss what's next. Subscribe to Tanagram Updates:
This email brought to you by Buttondown, the easiest way to start and grow your newsletter.