WriteRoom 4 Update – I don't practice distraction free development

I’ve been having some fun, and WriteRoom 4 is coming along slowly as a result.

Progress slowed when I decided that I wanted to implement plain text search for WriteRoom 4’s library. I guessed this would be a little tricker then it seemed, so I looked for an existing solution. That lead me to ripgrep which is a really cool tool with great search performance.

I started out using ripgrep as a shell program that WriteRoom 4 called out to. But I couldn’t get ripgrep to give me results in quite the format that I wanted. That lead me to ripgrep’s source code (Rust), and hacking it to get the results in the format I wanted.

But still a problem. I wanted the results streamed in parallel (so really fast), but also ordered so the UI list where they are presented is stable. Ripgrep couldn’t do that, and that lead me to start really learning Rust (still working on that) and learning a bunch of parallel programming stuff. Been a long time since I worked with a low level programming language, and I’ve never really done parallel programming beyond simple background jobs. So lots of new stuff to think about!

The story goes on with many more details, but I’ve got a result to show. If you are a Rust programmer I’ve just published my first Rust package jwalk. It’s a really fast directory walk that streams ordered results. Kinda boring if your not a programmer, but exciting to me because it’s faster then anything else I’ve been able to find, and exercises my growing Rust and parallel programming skills.

9 Likes