February Project: A Text Tool
I started this project a little late in the month. Initial plan was to use the Team Dogpit Jam for the February activity, but that’s been postponed because of weather troubles and power outages in Texas. My substitute project is a small scriptable text tool.
A few times a week I find myself needing to decode something in base64, wanting to pick apart a JWT token, or needing to nicely format some JSON. Sure, I can post each of these into an untrusted website or, in the base64 case, throw
pbpaste | base64 --decode | pbcopy into the terminal, but I’d like something that’s fairly low resource, extensible, and serves the singular purpose of running tiny scripts on text inputs.
The proposed text tool has two fields: one for running a plugin (with autocomplete and suggestions) and another area which takes a big block of text and gets replaced with another block of text. Support for multiple scripting languages is great, but ultimately not worth it if it pushes the project past the time limit. There should be a clean, minimal UI with friendly features like autocomplete (suggest) and keyboard shortcuts for copy/paste into specific command areas.
Update: Despite the late start, I was able to wrap up this project. It’s not quite where I want it to be, but when is it ever? The full source is available on my GitHub page at https://github.com/JosephCatrambone/TextUtil . It needs a documentation pass and a lot of code cleanup, but it works. Here’s a demo of me invoking the base64 decode plugin, using a keyboard shortcut to jump back to the command entry, and invoking the ‘hello_world’ plugin.