dstll(short for “distill”) gives you a high level overview of various
“constructs” in your code.
Motivation
Sometimes, you want to quickly understand how a project is organized. It could
be a new repo you’re working on, or a specific part of a project you’re
unfamiliar with. When given a list of files you’re curious about, dstll shows
you a list of signatures representing various “code constructs” found in those
files, such as functions, methods, classes, traits, interfaces, objects, type
aliases, enums, etc.
# print findings to stdoutdstll [PATH ...]# write findings to a directorydstll write [PATH ...] -o /var/tmp/findings
# serve findings via a web serverdstll serve [PATH ...] -o /var/tmp/findings
# open TUIdstll tui
🛠️ Configuration
Create a configuration file that looks like the following. By default,
dstll will look for this file at ~/.config/dstll/dstll.yml.
view_file_command = ["your", "command"]
# for example, ["bat", "--style", "plain", "--paging", "always"]# will run 'bat --style plain --paging always <file-path>'
Δ dstlled-diff
dstll can be used to generate specialized diffs that only compare changes in
signatures of “code constructs” between two git revisions. This functionality is
available as a Github Action via dstlled-diff.
Examples
Running dstll in the scala repo gives the following output: