I don’t know how detailed people like to read these, I thought I’d go in depth a bit more this time because I enjoy talking about this project. So here’s like a semi-dev vlog
GUI library
I finally finished the GUI library for my calorie tracker.
Making text work with clicking, scrolling and copy paste as well as highlighting was surprisingly hard (especially scrolling when you resize, what most browsers do if you resize the window is they throw your scroll into a position miles away from where you were, and avoiding that was non-trivial.)
I hope other people that had to solve this problem for immediate mode GUI will sympathize with my pain.
It’s a keyboard based app, but many people will want to use the click, and I didn’t want the mouse to just be dead.

Unfortunately the bottom of the window in this video is cropped, but it’s not too important, it’s just clickable for “abort” “help” or “exit”.
0.17 migration + Incremental
I also recently migrated the project to 0.17 dev builds, because 0.16 had some bugs that were fixed in master, and got to enjoy incremental compilation. That REALLY came in clutch when I needed to update the project to the new version of the GUI library, which made many breaking changes, I was fixing a ton of compile errors.
GUI design
Currently I need to finalize the GUI and add some new ideas I had about how to make using the parser faster.
I think GUI design is where I am getting very stuck. Showing this to people unfortunately gives you vague advise like “frendlier GUI” which I can’t really make something actionable out of. Asking some friends that actually program thankfully give you concrete talking points.
I think I’ll probably have to just accept the GUI as it is, and probably release a BETA and get feedback from people that actually tried to use the app.
The things that are needed before release are better colors (these are a placeholder) and of course, the chef costume for the plebosaur in the corner. I Was planning to add nutritional guides but that will probably have to wait after the beta.
Parsing
It’s something I call “implicit addition” basically for example if you were to type “100g weetabix 100g milk” it wouldn’t work in status quo, you would have to write “100g weetabix + 100g milk” which is unacceptable, as the ‘+’ is 1 keystroke that we can save.
The other thing is a better system surrounding portion sizes, I want to add default portion sizes, so basically for example “100weetabix” will convert to “100g weetabix” this will also save keystrokes, and it can also work with the fuzzy finder such that when you press tab to autocomplete it can add the portionsize.
The first version of the parser was a parser without an AST, however with these, to be able to format the user’s input, I ended up being forced to re-write it such that it uses an AST.
TLDR
10 months in a project I thought would take 1 month, it’s almost done.