A tab completion script that works for Bash. Relies on the BSD md5
command on Mac and md5sum
on Linux, so as long as you have one of those two commands, this should work.
$ gradle [TAB]
androidDependencies check init properties
assemble clean installDebug signingReport
assembleDebug connectedCheck installDebugTest tasks
assembleDebugTest connectedInstrumentTest installRelease uninstallAll
assembleRelease dependencies lint uninstallDebug
build dependencyInsight lintDebug uninstallDebugTest
buildDependents deviceCheck lintRelease uninstallRelease
buildNeeded help projects wrapper
$ gradle c[TAB]
check clean connectedCheck connectedInstrumentTest
Gives tab completions relevent to the current Gradle project (if any).
curl -L -s https://gist.github.com/nolanlawson/8694399/raw/gradle-tab-completion.bash \
-o ~/gradle-tab-completion.bash
Then add to your ~/.bash_profile
:
source ~/gradle-tab-completion.bash
It will be kinda slow the first time you use it. But after that, it'll be super fast, because everything's cached based on the md5sum of your build.gradle
files.
Thanks to @ligi for Linux support!
Nice tool, thanks! One minor bug, it looks like the line that builds the commands only hits on lines that have a hyphen in them (in other words, only tasks with a description visible when you run "gradle tasks" will be added to the cache of commands). For an illustration of what I'm talking about, here's the tail of my execution of the task list.
jacocoTestReport does not show up as an available task.
Not sure there's a good fix for this, but figured I'd log it here. The workaround is to edit the cache file, in ~/.gradle_tabcompletion/ and add the missing task name.