Thomas Sibley

Devtools

As I suspect many old-school programmers do, I have a pretty idiosyncratic way of working which is supported by a menagerie of development tools fit to my rhythms of thought and action. Those that aren’t so niche are listed below, with the ones I use all the time highlighted. If you use any of these, drop me a line to let me know!

git hitlist
Pick up where you left off by opening vim to all uncommitted changes or the changes of a specific (usually WIP) commit
git ack
git viack
ack-like behaviour for git grep plus the ability to effortlessly navigate the results in vim (or your favorite editor)
jq-shell
Interactively explore a JSON document (or document set) using jq in a REPL (read-eval-print-loop) with rich line editing, command history, and auto-paging of results
xxx
List, edit, and count XXX/TODO/FIXME remarks in a git repo, branch, or arbitrary collection of files
recs
Slice and dice streams of structured data quickly and efficiently the Unix way
git prune-branches
Prune local branches that are merged into master and no longer exist on the remote
git reword
Reword an existing commit message in one step, without thinking about git rebase
git eslint
Run eslint only on the lines touched by the current branch. Then quickly edit any issues found in vim to correct them
git on-github
Jump from the command-line to the GitHub page for a given commit or file (without installing hub)
git authorship
Summarize authorship of a repository by the number of surviving lines that exist in HEAD (or any other revision), optionally limited to a subset of files. Much of the time git shortlog -ns, which counts all commits and not surviving lines, is more appropriate. Past contributors matter after all!
rstudio-console
Run code in your RStudio session from your terminal or favorite editor.