Wilfred
wilfredh.bsky.social
Wilfred
@wilfredh.bsky.social
Programming languages, human factors, and a healthy dose of Emacs.
Difftastic 0.67 is released!

* Added support for protobuf, improved bash and YAML.
* Updated 16 parsers to the latest upstream version (thanks Antonin Delpeuch!)
* A ton of display polish for word highlighting, alignment, and binary files.

github.com/Wilfred/diff...
November 16, 2025 at 5:04 PM
I've not seen this before: a captcha to distinguish adults from children! The in-app purchases were behind this screen.

The primary user is a 3 year old who can only count to 20 😊
November 8, 2025 at 11:29 AM
It is *really* hard to find a good screenshot for a CLI tool when users are on a mobile browser.

This is the best I've come up with so far. I'm showing the terminal GUI to show where you'd use the tool.

I'm also trying several standalone screenshots to make it more comprehensible.
October 21, 2025 at 9:24 AM
I've added syntax highlighting to the prompt of my programming language!

It's not strictly necessary, but it's nice to have. It caught a bug with lexing incomplete string literals too.
October 19, 2025 at 11:14 PM
I'm trying to improve the readability of the --help output from difftastic.

I'm experimenting with making example invocations bold, so they are easier to distinguish from the text.

I'm also trying OSC 8 to make my URLs clickable.

Opinions welcome :)
October 6, 2025 at 10:29 PM
I've released difftastic 0.65! Highlights of this release:

* Better parsing of Clojure, Common Lisp, Kotlin, Rust and Zig.
* Quality of life improvements for binary files.

github.com/Wilfred/diff...
September 24, 2025 at 4:17 AM
I've been playing with labels on my code blocks. Sometimes I have useful labels, other times it's just "Example 2".

It's also unclear exactly where I put the label: Inside the box? Outside?

Are there any docs sites that do this really well?
September 2, 2025 at 10:56 PM
I've been playing with labels on my code blocks. Sometimes I have useful labels, other times it's just "Example 2".

It's also unclear exactly where I put the label: Inside the box? Outside?

Are there any docs sites that do this really well?
September 2, 2025 at 10:55 PM
I'm experimenting with syntax in examples. I don't really like Rust's `assert(inc(1) == 2)` syntax, I find it a little distracting.

I'm trying `inc(1) //-> 2`. The comment is rendered differently, and there's nothing before the sample code. What do you think?
August 15, 2025 at 11:16 PM
I'm still experimenting with UIs for live (sandboxed) evaluation of tests. I've realised that you really want to highlight the failing assertion, not just the failing test.

Feedback welcome :)
June 20, 2025 at 10:44 PM
I'm still tinkering with the website for my PL experiment. I want the styling to express "labour of love hobby project".

Choosing what to program to show on the home page is really hard too. All the keywords are links like Racket.

What do you think? www.garden-lang.org
May 27, 2025 at 7:53 AM
Further tinkering with diagnostics, following feedback!

* Two lines of context above and below now.
* The caret is included in the line below where possible.
* Syntax highlighting of keywords.

I kinda feel that smart context sizing would be better. What do you think so far?
May 9, 2025 at 10:43 PM
I'm experimenting with diagnostics formatting.

* I've added a left margin, showing both the file name and line numbers
* I'm showing one line of context above/below the offending line.
* I'm using grey for comments.

What do you think? Is there anything you'd change?
May 8, 2025 at 10:39 PM
Trying the nix CLI today, and I'm seriously impressed with the formatting of its --help output.

Indented warnings, italics, bullets, even adding a left border to code snippets! It's a nice reminder to take full advantage of terminal features to help the reader.
April 27, 2025 at 4:31 AM
I'm working on arity errors in Garden, my toy programming language.

Rather than just saying "expected 3, got 4 arguments", I'm trying to report where the extra argument is, or what extra argument was expected.
March 12, 2025 at 7:28 AM
Doing another iteration on my diagnostics display. I'm reasonably happy with the bold highlighting within the error message.

I'm not sure about the colour on Warning and Error though. It gives the output some visual structure, but arguably the message itself is more important.
February 21, 2025 at 4:41 PM
Do you have a favourite way of highlighting text in a CLI error message? Currently I'm using backticks, but I'm wondering what's the most readable.
February 19, 2025 at 8:45 AM
I'm experimenting with live-evaluating tests in my programming language project.

It's relatively fiddly to hook up a UI for this, but it saves a precious keystroke to run the tests! I'm hoping that it results in more, better tests due to the convenience.
February 3, 2025 at 4:31 AM
I have a bunch of open tasks on my GH repos, so I tried asking ChatGPT and Claude to write a card-based web UI that showed some random open issues.

ChatGPT gave me something that worked, but the Claude mock-ups look better (and render inline!).
January 21, 2025 at 8:03 AM
I've released difftastic 0.62! In this release:

* Updated parsers for Bash, C, C++, C#, CSS, Go, Haskell, HTML, Java, JavaScript, JSON, Julia, Lua, Objective-C, OCaml, PHP, Python, Ruby, Scala, TOML, TypeScript and XML.
* Obligatory crash fixes.

github.com/Wilfred/diff...
December 21, 2024 at 4:11 AM