cli icon indicating copy to clipboard operation
cli copied to clipboard

Heroku CLI Autocomplete does not respect `$ZSH_COMPDUMP` location for zsh.

Open superatomic opened this issue 3 years ago • 2 comments
trafficstars

Do you want to request a feature or report a bug?

This is a bug report.

  • Heroku version: heroku/7.59.2 darwin-x64 node-v12.21.0
  • OS: macOS Monterey 12.2.1

What is the current behavior?

After installing Heroku CLI Autocomplete by running heroku autocomplete and following the install instructions, a .zcompdump file will be created at $ZDOTDIR every time .zshrc is run, or at $HOME if $ZDOTDIR is not set.

This is because no -d option is given in ~/Library/Caches/heroku/autocomplete/zsh_setup (macOS), which is a file that is created by create.ts when running heroku autocomplete. https://github.com/heroku/cli/blob/67b9080ad0b48e654d799bced119cbab768c759a/packages/autocomplete/src/commands/autocomplete/create.ts#L228-L229

What is the expected behavior?

If the environment variable $ZSH_COMPDUMP is set, the .zcompdump file should be created there instead of $ZDOTDIR or $HOME.

So if $ZSH_COMPDUMP exists, compinit -d "$ZSH_COMPDUMP"; should run instead of just compinit;.

A potential implementation for a fix would be replacing line 229 in with the following check:

if [[ -z "$ZSH_COMPDUMP" ]]; then
    compinit;
else
    compinit -d "$ZSH_COMPDUMP";
fi

This would not change any behavior for anyone without $ZSH_COMPDUMP set, and respects $ZSH_COMPDUMP for those who do.

superatomic avatar Mar 06 '22 01:03 superatomic

I can submit a pull request with the proposed changes if that would be useful.

superatomic avatar Mar 14 '22 06:03 superatomic