Skip to content

🐛 Respect ZDOTDIR for zsh completion install#1706

Closed
lawrence3699 wants to merge 1 commit intofastapi:masterfrom
lawrence3699:fix/zsh-zdotdir-completion
Closed

🐛 Respect ZDOTDIR for zsh completion install#1706
lawrence3699 wants to merge 1 commit intofastapi:masterfrom
lawrence3699:fix/zsh-zdotdir-completion

Conversation

@lawrence3699
Copy link
Copy Markdown

Fixes #171

When ZDOTDIR is set, --install-completion zsh was still writing the init line to ~/.zshrc, so the active zsh config never picked it up.

This uses ZDOTDIR/.zshrc when ZDOTDIR resolves to an absolute path and keeps the existing fallback to ~/.zshrc.

Validation:

  • _TYPER_RUN_INSTALL_COMPLETION_TESTS=1 pytest -q tests/test_completion/test_completion_install.py -k 'completion_install_zsh'
  • pytest -q tests/test_completion/test_completion.py -k 'completion_source_zsh'

Copilot AI review requested due to automatic review settings April 19, 2026 12:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes zsh completion installation so that when ZDOTDIR is set, Typer appends the initialization line to the active zsh config ($ZDOTDIR/.zshrc) instead of always writing to ~/.zshrc, addressing issue #171.

Changes:

  • Add _get_zshrc_path() to choose $ZDOTDIR/.zshrc when ZDOTDIR expands to an absolute path, otherwise fall back to ~/.zshrc.
  • Update install_zsh() to use the new zshrc path resolver.
  • Add a regression test validating --install-completion zsh respects ZDOTDIR.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
typer/_completion_shared.py Resolve the zsh rc file path via ZDOTDIR (absolute-path cases) for zsh completion installation.
tests/test_completion/test_completion_install.py Add coverage to ensure installation modifies $ZDOTDIR/.zshrc and not $HOME/.zshrc when ZDOTDIR is set.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Member

@svlandeg svlandeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate of #1553, closing

@svlandeg svlandeg closed this Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] typer doesn't respect ZDOTDIR env var when adding autocompletion for zsh

4 participants