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 stuff. But when the gradle build file happens to be broken at the time of completion, this fails (and gradle error message from standard error appears on console).
Ended up doing following modifications to task completion for my purposes:
cut -d' ' -f1 | grep "^[a-z]"
to filter tasks from Gradle output (which relies on convention of task names beginning with lowercase alphabetic character -- so far never encountered anything else :))Snippet of changes: