mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-04-10 16:32:00 +00:00
Compare commits
4 Commits
71cfd27fb4
...
f92a185ed5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f92a185ed5 | ||
|
|
9e2c1548c3 | ||
|
|
cb13cc539f | ||
|
|
a2b5bfd435 |
2
.github/workflows/scorecard.yml
vendored
2
.github/workflows/scorecard.yml
vendored
@@ -60,6 +60,6 @@ jobs:
|
||||
retention-days: 5
|
||||
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
|
||||
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -1,9 +1,49 @@
|
||||
# Symfony
|
||||
|
||||
This plugin provides completion for [Symfony](https://symfony.com/).
|
||||
This plugin provides unified completion and aliases for [Symfony](https://symfony.com/) across all versions (Symfony 1.x, 2.x, 3.x, 4.x, 5.x, and 6+).
|
||||
|
||||
To use it add symfony to the plugins array in your zshrc file.
|
||||
The plugin automatically detects your Symfony version and console location, using:
|
||||
- Native completion for Symfony 6.2+ when available
|
||||
- Legacy completion for older Symfony versions
|
||||
- Automatic console detection (`bin/console`, `app/console`, `console`, or `symfony`)
|
||||
|
||||
To use it add `symfony` to the plugins array in your zshrc file.
|
||||
|
||||
```bash
|
||||
plugins=(... symfony)
|
||||
```
|
||||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
|---------------|------------------------------|-------------------------------|
|
||||
| `sf` | Auto-detected console path | Start the symfony console |
|
||||
| `sfcl` | sf cache:clear | Clear the cache |
|
||||
| `sfsr` | sf server:run -vvv | Run the dev server |
|
||||
| `sfcw` | sf cache:warmup | Use the Bundles warmer |
|
||||
| `sfroute` | sf debug:router | Show the different routes |
|
||||
| `sfcontainer` | sf debug:container | List the different services |
|
||||
| `sfgb` | sf generate:bundle | Generate a bundle |
|
||||
| `sfgc` | sf generate:controller | Generate a controller |
|
||||
| `sfgcom` | sf generate:command | Generate a command |
|
||||
| `sfge` | sf doctrine:generate:entity | Generate an entity |
|
||||
| `sfsu` | sf doctrine:schema:update | Update the schema in Database |
|
||||
| `sfdc` | sf doctrine:database:create | Create the Database |
|
||||
| `sfdev` | sf --env=dev | Update environment to `dev` |
|
||||
| `sfprod` | sf --env=prod | Update environment to `prod` |
|
||||
|
||||
## Supported Commands
|
||||
|
||||
The plugin provides completion for all of the following console commands:
|
||||
- `sf` (alias)
|
||||
- `bin/console`
|
||||
- `app/console`
|
||||
- `console`
|
||||
- `php bin/console`
|
||||
- `php app/console`
|
||||
- `php console`
|
||||
- `php symfony`
|
||||
|
||||
## Migration from other Symfony plugins
|
||||
|
||||
This unified plugin replaces the need for separate `symfony2` and `symfony6` plugins. If you were previously using either of those plugins, you can simply replace them with this `symfony` plugin in your `.zshrc` file.
|
||||
|
||||
@@ -1,13 +1,141 @@
|
||||
# symfony basic command completion
|
||||
# Unified Symfony plugin for all versions
|
||||
# Supports Symfony 2, 3, 4, 5, and 6+ with automatic version detection
|
||||
|
||||
_symfony_get_command_list () {
|
||||
php symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }'
|
||||
_symfony_console_path() {
|
||||
if [[ -f "bin/console" ]]; then
|
||||
echo "bin/console"
|
||||
elif [[ -f "app/console" ]]; then
|
||||
echo "app/console"
|
||||
elif [[ -f "console" ]]; then
|
||||
echo "console"
|
||||
elif [[ -f "symfony" ]]; then
|
||||
echo "symfony"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
_symfony () {
|
||||
if [ -f symfony ]; then
|
||||
compadd `_symfony_get_command_list`
|
||||
fi
|
||||
_symfony_console_command() {
|
||||
local console_path
|
||||
console_path=$(_symfony_console_path)
|
||||
if [[ -n "$console_path" ]]; then
|
||||
if [[ "$console_path" == "symfony" ]]; then
|
||||
echo "php symfony"
|
||||
else
|
||||
echo "php $console_path"
|
||||
fi
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
compdef _symfony symfony
|
||||
_symfony_supports_native_completion() {
|
||||
local console_cmd
|
||||
console_cmd=$(_symfony_console_command)
|
||||
if [[ -n "$console_cmd" ]]; then
|
||||
$console_cmd _complete --no-interaction -szsh -a1 -c1 >/dev/null 2>&1
|
||||
return $?
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
_symfony_legacy_completion() {
|
||||
local console_cmd commands
|
||||
console_cmd=$(_symfony_console_command)
|
||||
if [[ -n "$console_cmd" ]]; then
|
||||
if [[ "$console_cmd" == *"symfony"* ]]; then
|
||||
commands=$(php symfony 2>/dev/null | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }')
|
||||
else
|
||||
commands=$($console_cmd --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^ ?[^ ]+ / { print $1 }')
|
||||
fi
|
||||
compadd ${(f)commands}
|
||||
fi
|
||||
}
|
||||
|
||||
_symfony_native_completion() {
|
||||
local lastParam flagPrefix requestComp out comp
|
||||
local -a completions
|
||||
|
||||
words=("${=words[1,CURRENT]}") lastParam=${words[-1]}
|
||||
|
||||
setopt local_options BASH_REMATCH
|
||||
if [[ "${lastParam}" =~ '-.*=' ]]; then
|
||||
flagPrefix="-P ${BASH_REMATCH}"
|
||||
fi
|
||||
|
||||
local console_cmd
|
||||
console_cmd=$(_symfony_console_command)
|
||||
if [[ -z "$console_cmd" ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
requestComp="$console_cmd _complete --no-interaction -szsh -a1 -c$((CURRENT-1))" i=""
|
||||
for w in ${words[@]}; do
|
||||
w=$(printf -- '%b' "$w")
|
||||
quote="${w:0:1}"
|
||||
if [ "$quote" = \' ]; then
|
||||
w="${w%\'}"
|
||||
w="${w#\'}"
|
||||
elif [ "$quote" = \" ]; then
|
||||
w="${w%\"}"
|
||||
w="${w#\"}"
|
||||
fi
|
||||
if [ ! -z "$w" ]; then
|
||||
i="${i}-i${w} "
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${i}" = "" ]; then
|
||||
requestComp="${requestComp} -i\" \""
|
||||
else
|
||||
requestComp="${requestComp} ${i}"
|
||||
fi
|
||||
|
||||
out=$(eval ${requestComp} 2>/dev/null)
|
||||
|
||||
while IFS='\n' read -r comp; do
|
||||
if [ -n "$comp" ]; then
|
||||
comp=${comp//:/\\:}
|
||||
local tab=$(printf '\t')
|
||||
comp=${comp//$tab/:}
|
||||
completions+=${comp}
|
||||
fi
|
||||
done < <(printf "%s\n" "${out[@]}")
|
||||
|
||||
eval _describe "completions" completions $flagPrefix
|
||||
return $?
|
||||
}
|
||||
|
||||
_symfony() {
|
||||
if _symfony_supports_native_completion; then
|
||||
_symfony_native_completion
|
||||
else
|
||||
_symfony_legacy_completion
|
||||
fi
|
||||
}
|
||||
|
||||
# Aliases
|
||||
alias sf='$(_symfony_console_command)'
|
||||
alias sfcl='sf cache:clear'
|
||||
alias sfsr='sf server:run -vvv'
|
||||
alias sfcw='sf cache:warmup'
|
||||
alias sfroute='sf debug:router'
|
||||
alias sfcontainer='sf debug:container'
|
||||
alias sfgb='sf generate:bundle'
|
||||
alias sfgc='sf generate:controller'
|
||||
alias sfgcom='sf generate:command'
|
||||
alias sfge='sf doctrine:generate:entity'
|
||||
alias sfsu='sf doctrine:schema:update'
|
||||
alias sfdc='sf doctrine:database:create'
|
||||
alias sfdev='sf --env=dev'
|
||||
alias sfprod='sf --env=prod'
|
||||
|
||||
# Completions for all supported console commands
|
||||
compdef _symfony sf
|
||||
compdef _symfony 'php app/console'
|
||||
compdef _symfony 'php bin/console'
|
||||
compdef _symfony 'php console'
|
||||
compdef _symfony 'php symfony'
|
||||
compdef _symfony 'app/console'
|
||||
compdef _symfony 'bin/console'
|
||||
compdef _symfony console
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# Symfony2
|
||||
|
||||
> **⚠️ DEPRECATION WARNING**
|
||||
> This plugin is deprecated and will be removed in a future release.
|
||||
> **Please migrate to the unified [`symfony`](../symfony/) plugin** which supports all Symfony versions (2.x through 6+).
|
||||
> Simply change `symfony2` to `symfony` in your `.zshrc` plugins list.
|
||||
|
||||
This plugin provides completion for [Symfony 2](https://symfony.com/), as well as aliases for frequent Symfony commands.
|
||||
|
||||
To use it add symfony2 to the plugins array in your zshrc file.
|
||||
@@ -8,6 +13,16 @@ To use it add symfony2 to the plugins array in your zshrc file.
|
||||
plugins=(... symfony2)
|
||||
```
|
||||
|
||||
## Migration
|
||||
|
||||
**Recommended:** Use the unified [`symfony`](../symfony/) plugin instead:
|
||||
|
||||
```bash
|
||||
plugins=(... symfony) # Replace symfony2 with symfony
|
||||
```
|
||||
|
||||
The unified plugin provides the same functionality plus automatic version detection and support for all Symfony versions.
|
||||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
# Symfony2 basic command completion
|
||||
#
|
||||
# DEPRECATION WARNING: This plugin is deprecated and will be removed in a future release.
|
||||
# Please migrate to the unified 'symfony' plugin which supports all Symfony versions.
|
||||
# Simply change 'symfony2' to 'symfony' in your .zshrc plugins list.
|
||||
#
|
||||
echo "⚠️ WARNING: The 'symfony2' plugin is deprecated. Please use the unified 'symfony' plugin instead." >&2
|
||||
echo " Change 'symfony2' to 'symfony' in your .zshrc plugins list." >&2
|
||||
|
||||
_symfony_console () {
|
||||
echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' -type f | head -n 1)"
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# Symfony
|
||||
|
||||
> **⚠️ DEPRECATION WARNING**
|
||||
> This plugin is deprecated and will be removed in a future release.
|
||||
> **Please migrate to the unified [`symfony`](../symfony/) plugin** which supports all Symfony versions (2.x through 6+).
|
||||
> Simply change `symfony6` to `symfony` in your `.zshrc` plugins list.
|
||||
|
||||
This plugin provides native completion for [Symfony](https://symfony.com/), but requires at least Symfony 6.2.
|
||||
|
||||
To use it add `symfony6` to the plugins array in your zshrc file.
|
||||
@@ -7,3 +12,13 @@ To use it add `symfony6` to the plugins array in your zshrc file.
|
||||
```bash
|
||||
plugins=(... symfony6)
|
||||
```
|
||||
|
||||
## Migration
|
||||
|
||||
**Recommended:** Use the unified [`symfony`](../symfony/) plugin instead:
|
||||
|
||||
```bash
|
||||
plugins=(... symfony) # Replace symfony6 with symfony
|
||||
```
|
||||
|
||||
The unified plugin provides the same native completion functionality plus automatic version detection and support for all Symfony versions.
|
||||
|
||||
@@ -7,6 +7,14 @@
|
||||
# For the full copyright and license information, please view
|
||||
# https://symfony.com/doc/current/contributing/code/license.html
|
||||
|
||||
#
|
||||
# DEPRECATION WARNING: This plugin is deprecated and will be removed in a future release.
|
||||
# Please migrate to the unified 'symfony' plugin which supports all Symfony versions.
|
||||
# Simply change 'symfony6' to 'symfony' in your .zshrc plugins list.
|
||||
#
|
||||
echo "⚠️ WARNING: The 'symfony6' plugin is deprecated. Please use the unified 'symfony' plugin instead." >&2
|
||||
echo " Change 'symfony6' to 'symfony' in your .zshrc plugins list." >&2
|
||||
|
||||
#
|
||||
# zsh completions for console
|
||||
#
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# VS Code
|
||||
|
||||
This plugin provides useful aliases to simplify the interaction between the command line and VS Code, VSCodium, or Cursor editor.
|
||||
This plugin provides useful aliases to simplify interaction between the command line and VS Code, VSCodium, or Cursor.
|
||||
|
||||
To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
|
||||
|
||||
@@ -10,46 +10,45 @@ plugins=(... vscode)
|
||||
|
||||
## Requirements
|
||||
|
||||
This plugin requires to have a flavour of VS Code installed and its executable available in PATH.
|
||||
This plugin requires one of the supported editors to be installed and its executable to be available in `PATH`.
|
||||
|
||||
You can install either:
|
||||
You can install one of the following:
|
||||
|
||||
- VS Code (code)
|
||||
- VS Code Insiders (code-insiders)
|
||||
- VSCodium (codium)
|
||||
- Cursor (cursor)
|
||||
- VS Code (`code`)
|
||||
- VS Code Insiders (`code-insiders`)
|
||||
- VSCodium (`codium`)
|
||||
- Cursor (`cursor`)
|
||||
|
||||
### MacOS
|
||||
### macOS
|
||||
|
||||
While Linux installations will add the executable to PATH, MacOS users might still have to do this manually:
|
||||
While Linux installations usually add the executable to `PATH`, macOS users might still have to do this manually:
|
||||
|
||||
[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line),
|
||||
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
|
||||
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'code' command in PATH
|
||||
|
||||
[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal),
|
||||
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
|
||||
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'codium' command in PATH
|
||||
|
||||
For Cursor, open the Command Palette via (F1 or ⌘⇧P) and type shell command to find the Shell Command:
|
||||
For Cursor, open the Command Palette with `F1` or `Cmd+Shift+P`, then search for the following command:
|
||||
|
||||
> Shell Command: Install 'cursor' command in PATH
|
||||
|
||||
## Using multiple flavours
|
||||
## Choosing an editor
|
||||
|
||||
If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code
|
||||
Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file
|
||||
(between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined
|
||||
executable.
|
||||
If you have multiple supported editors installed, e.g., VS Code (stable) and VS Code Insiders, you can manually
|
||||
specify which executable the plugin should use. Add the following line to `~/.zshrc` between the `ZSH_THEME`
|
||||
and `plugins=()` lines. This makes the plugin use your manually defined executable.
|
||||
|
||||
```zsh
|
||||
ZSH_THEME=...
|
||||
|
||||
# Choose between one [code, code-insiders, codium, or cursor]
|
||||
# The following line will make the plugin to open VS Code Insiders
|
||||
# Invalid entries will be ignored, no aliases will be added
|
||||
# Choose one of `code`, `code-insiders`, `codium`, or `cursor`.
|
||||
# The following line makes the plugin open VS Code Insiders.
|
||||
# Invalid entries are ignored and no aliases are added.
|
||||
VSCODE=code-insiders
|
||||
|
||||
plugins=(... vscode)
|
||||
@@ -61,29 +60,29 @@ source $ZSH/oh-my-zsh.sh
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
|
||||
| vsc | code . | Open the current folder in VS code |
|
||||
| vsc `dir` | code `dir` | Open passed folder in VS code |
|
||||
| vsca `dir` | code --add `dir` | Add folder(s) to the last active window |
|
||||
| vsc | code . | Open the current folder in VS Code |
|
||||
| vsc `[args ...]` | code `[args ...]` | Pass arguments through to VS Code, e.g., a file, folder, or CLI flags. |
|
||||
| vsca `dir` | code --add `dir` | Add one or more folders to the last active window. |
|
||||
| vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. |
|
||||
| vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. |
|
||||
| vscn | code --new-window | Force to open a new window. |
|
||||
| vscr | code --reuse-window | Force to open a file or folder in the last active window. |
|
||||
| vscn | code --new-window | Force opening in a new window. |
|
||||
| vscr | code --reuse-window | Force opening a file or folder in the last active window. |
|
||||
| vscw | code --wait | Wait for the files to be closed before returning. |
|
||||
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code. |
|
||||
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory where user data is stored. Can be used to open multiple distinct instances of Code. |
|
||||
| vscp `profile` | code --profile `profile` | Specifies the profile to open Code with. |
|
||||
|
||||
## Extensions aliases
|
||||
## Extension aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ----------------------- | ---------------------------------------------------------------- | --------------------------------- |
|
||||
| vsced `dir` | code --extensions-dir `dir` | Set the root path for extensions. |
|
||||
| vscie `id or vsix-path` | code --install-extension `extension-id> or <extension-vsix-path` | Installs an extension. |
|
||||
| vscue `id or vsix-path` | code --uninstall-extension `id or vsix-path` | Uninstalls an extension. |
|
||||
| Alias | Command | Description |
|
||||
| --------------------------- | ---------------------------------------------- | -------------------------------------- |
|
||||
| vsced `dir` | code --extensions-dir `dir` | Set the root directory for extensions. |
|
||||
| vscie `ext-id or vsix-path` | code --install-extension `ext-id or vsix-path` | Installs or updates an extension. |
|
||||
| vscue `ext-id` | code --uninstall-extension `ext-id` | Uninstalls an extension. |
|
||||
|
||||
## Other options:
|
||||
## Other options
|
||||
|
||||
| Alias | Command | Description |
|
||||
| ------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| vscv | code --verbose | Print verbose output (implies --wait). |
|
||||
| vscl `level` | code --log `level` | Log level to use. Default is 'info'. Allowed values are 'critical', 'error', 'warn', 'info', 'debug', 'trace', 'off'. |
|
||||
| vscde | code --disable-extensions | Disable all installed extensions. |
|
||||
| Alias | Command | Description |
|
||||
| ------------ | ------------------------- | ---------------------------------------- |
|
||||
| vscv | code --verbose | Print verbose output (implies `--wait`). |
|
||||
| vscl `level` | code --log `level` | Log level to use. Default is `info`. |
|
||||
| vscde | code --disable-extensions | Disable all installed extensions. |
|
||||
|
||||
Reference in New Issue
Block a user