Releases: gradle/gradle-completion
1.4.1
General improvements
- Completion is updated for all new Gradle options and arguments up through Gradle 5.2.
- New contributing guide
- The
md5: too many arguments
is mitigated by being a little smarter about which Gradle scripts are cached (#71) - Fixes "illegal access Java warning" text appearing on the screen while generating task names cache
- Fixed a regression in completion of Gradle properties using bash
1.4.0
General improvements
- Completion is updated for all new Gradle options and arguments up through Gradle 5.2.
- The
md5: too many arguments
is mitigated by being a little smarter about which Gradle scripts are cached (#71) - Fixes "illegal access Java warning" text appearing on the screen while generating task names cache
- Fixed a regression in completion of Gradle properties using bash
1.3.0
General improvements
You can now install gradle-completion
via Homebrew! 🎉
- Completion is updated for all new Gradle options and arguments up through Gradle 4.4. (#39)
- If the cache exists but is empty, it is now automatically regenerated in the background. (#48)
Bash improvements
- Bash no longer changes
COMP_WORDBREAKS
and therefore no longer interferes with some other completion scripts. (#29) - File and directory argument completion are now available. (e.g.
gradle --include-build ../fo<TAB>
) (#26, #35) - Completion cache updates now work with
set -o noclobber
is set. (#40 — thanks @yloiseau)
Zsh improvements
1.2.0
Completion improvements
You can now complete options and tasks while in a subproject! This should be especially good news for gw
users, who don't have to specify their root build file or path to Gradle wrapper.
Zsh now has completes all options for gradle init
, gradle tasks
, gradle wrapper
and more.
Completion Cache Improvements
Regenerating the completion cache is now done in the background. You can also trigger it with __gradle-completion-init
. Completion caching and retrieval is much, much faster for large projects (note: large array operations in shell scripts get exponentially slower as the array grows).
1.1.0
Major completion speed improvements
For bash, reducing the amount of data being processed by compgen
makes completion 2-20x faster depending on size of project (bigger gains for larger projects).
For zsh, manually managing the completion cache (instead of using zsh's built-in cache) makes completion 1.5-10x faster depending on the size of project (again, larger projects benefit more).
Completion should now occur under 200ms after initial caching for the vast majority of projects and environments. Please file an issue if you see otherwise with details of your build/environment.
Optional unqualified task completion
Gradle allows you to access tasks of subprojects from the project root implicitly. For example, given these tasks:
:foo
:help
:bar:baz
You can execute gradle baz
from the project root and it will execute :bar:baz
.
gradle-completion will not tab complete these tasks by default because it adds a significant number of completion options, which may not be what you want.
To allow completion of implicit tasks, export GRADLE_COMPLETION_UNQUALIFIED_TASKS=true
.
Cache configuration options
2 new options here, see details in the README Configuration section.
- You can now configure which build scripts from the cache UP-TO-DATE check, including turning it off completely using
export GRADLE_COMPLETION_EXCLUDE_PATTERN="(build|integTest|samples)/"
- By default, the build script cache is invalidated every 3 weeks to allow for new build scripts to affect the completion cache. You can configure this value by exporting a new value for
$GRADLE_CACHE_TTL_MINUTES
- By default, the build script cache is invalidated every 3 weeks to allow for new build scripts to affect the completion cache. You can configure this value by exporting a new value for
gw (gdub) completion support
gradle-completion will now perform completions when you're using the gw
command. Please note that completion from subprojects isn't supported yet (#3). Hoping that will be addressed in v1.2.0.