Overview
Thepm activate command generates shell integration code that enables advanced features like actual directory changes with pm cd and intelligent tab completions for workspace packages.
Syntax
Arguments
string
required
Your shell type:
zsh or bashInstallation
Add to your shell configuration file:What It Enables
1. Actual Directory Changes
Without activation,pm cd only prints the path:
2. Tab Completions
Complete package names with Tab:3. Command Completions
Complete allpm commands and flags:
How It Works
Shell Wrapper Function
The activation creates a wrapper function that interceptspm cd commands:
From src/commands/activate.ts:6-22:
- Intercepts
pm cdcalls - Handles flags by passing through to the command
- Gets the directory path from
pm cd - Uses shell’s builtin
cdto actually change directory - Passes all other commands through normally
Completion Functions
For zsh, fromsrc/commands/activate.ts:24-34:
- Loads base completions from
pm --completions zsh - Wraps the completion function
- For
pm cd <TAB>, gets package names frompm cd --completions - For other commands, uses base completions
Testing Activation
Verify Installation
Check if the function exists:Output (activated)
Output (not activated)
Test Directory Change
Test Completions
Manual Setup
If you prefer not to useeval, save the output:
~/.zshrc:
Troubleshooting
Completions Not Working
-
Reload shell:
-
Check function is loaded:
-
Verify activation line:
Directory Changes Not Working
-
Verify shell integration:
-
Test without cd:
-
Check package exists:
Conflicts with Existing Function
If you have anotherpm function:
Shell Support
For fish and other shells, basic command completions may work but cd integration is not supported.
What Gets Activated
1
Shell Wrapper
Function that intercepts
pm cd and uses builtin cd2
Base Completions
Tab completion for all
pm commands and flags3
Package Completions
Tab completion for workspace package names in
pm cd4
Smart Filtering
Completions filter based on what you’ve typed
Advanced Usage
Lazy Loading
For faster shell startup, lazy load activation:~/.zshrc
Custom Wrapper
Extend the wrapper with your own logic:~/.zshrc