mirror of
https://github.com/ivuorinen/phpenv.fish.git
synced 2026-03-03 04:57:24 +00:00
chore(deps): update pre-commit hooks and implement repository improvements (#38)
* Initial plan * Implement code refactoring, pre-commit enhancements, and documentation improvements Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com> * chore(deps): update pre-commit hooks to latest versions Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com> * docs: fix markdown linting issues in README and CONTRIBUTING Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com> * feat(pre-commit): add editorconfig-checker for code style validation - Add editorconfig-checker hook to validate .editorconfig rules - Update .editorconfig to allow 200 char lines in markdown files (aligns with markdownlint config) - Fix .secrets.baseline to have proper final newline - All files now pass editorconfig validation Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com> * chore: copilot cr fix in phpenv.fish Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com> Co-authored-by: Ismo Vuorinen <ismo@ivuorinen.net> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
47
README.md
47
README.md
@@ -25,6 +25,7 @@ fisher install ivuorinen/phpenv.fish
|
||||
### Manual Installation
|
||||
|
||||
1. Copy files to your fish configuration:
|
||||
|
||||
```bash
|
||||
# Functions
|
||||
curl -L https://raw.githubusercontent.com/ivuorinen/phpenv.fish/main/functions/phpenv.fish > ~/.config/fish/functions/phpenv.fish
|
||||
@@ -37,11 +38,13 @@ fisher install ivuorinen/phpenv.fish
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
|
||||
```bash
|
||||
brew install jq
|
||||
```
|
||||
|
||||
3. Add Homebrew taps:
|
||||
|
||||
```bash
|
||||
brew tap shivammathur/php
|
||||
brew tap shivammathur/extensions
|
||||
@@ -120,12 +123,14 @@ phpenv automatically detects PHP versions from multiple sources (in priority ord
|
||||
### Composer.json Support
|
||||
|
||||
Supports all semver constraints:
|
||||
|
||||
- `^8.1` → Uses PHP 8.3 (latest 8.x)
|
||||
- `~8.2.0` → Uses PHP 8.2
|
||||
- `>=8.0` → Uses PHP 8.3
|
||||
- `8.1.*` → Uses PHP 8.1
|
||||
|
||||
Checks both locations:
|
||||
|
||||
```json
|
||||
{
|
||||
"require": {
|
||||
@@ -178,6 +183,7 @@ phpenv config set auto-install-extensions true
|
||||
Uses [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php) with dynamic version detection:
|
||||
|
||||
**Version Aliases:**
|
||||
|
||||
- `latest` - Latest stable PHP version
|
||||
- `nightly` - Development version
|
||||
- `8.x` - Latest PHP 8.x version
|
||||
@@ -267,12 +273,50 @@ phpenv config list
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions welcome! Please:
|
||||
Contributions welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
|
||||
|
||||
**Quick Guidelines:**
|
||||
|
||||
1. Follow fish shell best practices
|
||||
2. Add tests for new functionality
|
||||
3. Update documentation
|
||||
4. Maintain performance optimizations
|
||||
5. Run pre-commit hooks before submitting
|
||||
|
||||
**Development Setup:**
|
||||
|
||||
```bash
|
||||
# Link development version to Fish config
|
||||
ln -sf $PWD/functions/phpenv.fish ~/.config/fish/functions/phpenv.fish
|
||||
ln -sf $PWD/completions/phpenv.fish ~/.config/fish/completions/phpenv.fish
|
||||
ln -sf $PWD/conf.d/phpenv.fish ~/.config/fish/conf.d/phpenv.fish
|
||||
|
||||
# Install pre-commit hooks
|
||||
pip install pre-commit
|
||||
pre-commit install
|
||||
```
|
||||
|
||||
## Performance Optimizations
|
||||
|
||||
phpenv.fish is designed for speed and efficiency:
|
||||
|
||||
### Caching System
|
||||
|
||||
- **API Data Caching**: Version information cached for 5 minutes
|
||||
- **Homebrew Path Caching**: Cellar path permanently cached
|
||||
- **Smart Debouncing**: Auto-switching limited to prevent excessive PATH changes
|
||||
|
||||
### Unified Helper Functions
|
||||
|
||||
- **Consolidated jq Parsing**: Single function eliminates repeated API calls
|
||||
- **Unified Tap Management**: Shared logic for Homebrew tap operations
|
||||
- **Optimized Formula Listing**: Cached and shared across operations
|
||||
|
||||
### Performance Metrics
|
||||
|
||||
- **100-1000x faster** than `brew list` for version detection
|
||||
- **Direct directory checks** instead of subprocess calls
|
||||
- **Minimal network requests** with intelligent caching
|
||||
|
||||
## License
|
||||
|
||||
@@ -283,4 +327,3 @@ MIT License - see LICENSE file for details.
|
||||
- [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php)
|
||||
- [shivammathur/homebrew-extensions](https://github.com/shivammathur/homebrew-extensions)
|
||||
- [jorgebucaran/fisher](https://github.com/jorgebucaran/fisher)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user