Go to file
Joshua Clayton 2650e1f040 Improve likelihood calculation and include reasons for evaluation
Why?
====

A simple calculation ("yes, this should be removed" or "no, this is
probably fine") is frankly not enough information for someone evaluating
their codebase to understand why we made the decision.

This introduces a removal reason, so a user understands why we ranked it
the way we did, and adds additional logic around a method and its tests
to determine if a method exists and is only being used in the tests (if
so, it should probably be deleted).

This is done with an Occurrances record, which is created for total
files, test code, and non-test code. The test code logic is somewhat
naive but works in most cases. It doesn't ensure a particular directory,
in the case that tests live alongside source code (e.g. Go), and
captures RSpec cases as well.
2016-05-11 05:18:55 -04:00
app Hook into interrupt to trigger other behavior 2016-05-10 05:35:28 -04:00
src/Unused Improve likelihood calculation and include reasons for evaluation 2016-05-11 05:18:55 -04:00
test Improve likelihood calculation and include reasons for evaluation 2016-05-11 05:18:55 -04:00
.gitignore Ignore tmp 2016-05-01 05:25:50 -04:00
LICENSE Initial 2016-04-28 05:37:06 -04:00
README.md Add notes about the test suite 2016-05-10 21:03:56 -04:00
Setup.hs Initial 2016-04-28 05:37:06 -04:00
stack.yaml Initial 2016-04-28 05:37:06 -04:00
unused.cabal Improve likelihood calculation and include reasons for evaluation 2016-05-11 05:18:55 -04:00

Unused

A command line tool in Haskell to identify unused code.

Image of Unused Output

Using Unused

unused reads from a pipe expecting a series of tokens to search the codebase for.

This could be done with echo:

echo "module\nimport" | unused

Or pulling in a ctags file:

cat .git/tags | cut -f1 | sort -u | unused

My end goal is to have the latter rolled up into unused itself, so you can navigate to a directory, run unused, and everything works as expected.

Building and Compiling

This project uses Haskell and Stack.

Once you have these tools installed:

stack install

This will generate a binary in $HOME/.local/bin; ensure this directory is in your $PATH.

Testing

To run the test suite, run:

stack test

License

Copyright 2016 Josh Clayton. See the LICENSE.