The fallback used when the aws binary is missing matched every bracketed
header, so 'aws_profiles' emitted '[sso-session name]' and
'[services name]' verbatim alongside real profile names.
Only match headers that hold a single unspaced name, optionally prefixed
with 'profile'.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
'set zle_bracketed_paste' cannot restore a zsh default: there is no
option by that name, and 'set' with a bare word assigns positional
parameters. Sourcing the plugin replaced $1 with the literal string
'zle_bracketed_paste'.
zle_bracketed_paste is an array parameter, so nothing here was setting
it either. Removing the line does not change paste behaviour.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sd was defined as 'ruby script/destroy' immediately before being
redefined as 'ruby script/server --debugger'. The first has done nothing
since 2021.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zcl was defined twice: 'zypper clean' in the repositories section and
'zypper cl' (cleanlocks) in the package locks section. The second wins,
so the first has never had any effect, and the README documented both
meanings. Drop the dead definition and the README row that described
behaviour the plugin does not have.
zcl keeps working exactly as it does today.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(poetry-env): preserve venv in project subdirectories
Keep the active environment while navigating ordinary project children, but switch when entering a nested Poetry project.
Use a path-component boundary so similarly named sibling projects are not mistaken for subdirectories.
Fixes#12377
* fix(poetry-env): normalize active project root
* fix(pipenv): don't activate or leak errors when virtualenv is missing
* fix(pipenv): compare whole path components when deactivating
$PWD
$pipfile_dir is a string-prefix test, so moving from a project to an
unrelated sibling whose path merely starts with the same text (…/proj ->
…/proj-archive, …/projX) does not deactivate: the project's virtualenv
stays active in a directory that has no Pipfile. Require an exact match or
a component boundary instead. Subdirectories of the project keep their
current behaviour, and a project at / still matches everything.
* feat(uv-env): create plugin
This plugin automatically activates/deactivates a uv-managed virtual
environment when you cd into or out of a project directory. It looks
for pyproject.toml and uv.lock to detect a uv project, and reads
UV_PROJECT_ENVIRONMENT to support custom venv locations.
* fix(uv-env): address review feedback from robbyrussell
- Add `local` to venv_dir to prevent leaking into user's shell
- Replace `export` with `typeset -g` for uv_active and uv_dir
- Use `autoload -Uz` to match the style guide
asp() already writes its "profile not found" error to stderr and ends
with ${reset_color}; asr() printed its region error to stdout without a
reset, leaving the terminal red and mixing diagnostics into piped output.
Mirror asp() so both selection helpers behave the same.
Refs #13949
Rails applications can define more than one database (`primary`, `cache`, `cable`, `queue`, ...), and each one gets its own namespaced task. These commands accept an optional database name as the first argument:
`rdc`, `rdd`, `rdm`, `rdmd`, `rdmr`, `rdms`, `rdmu`, `rdr`, `rdrs`, `rdsl`
Co-authored-by: Robby Russell <robby@planetargon.com>
Since eza 0.23 `--hyperlink` is an option with an optional WHEN value
instead of a boolean flag, so a bare `--hyperlink` at the end of the
alias consumes the following argument:
$ ll ./tmp
error: invalid value './tmp' for '--hyperlink [<WHEN>]'
[possible values: always, auto, never]
Pass `--hyperlink=auto` (mirroring how the plugin already handles
`--icons=auto`) when eza accepts it, and fall back to the bare flag on
older releases.
Co-authored-by: Robby Russell <robby@planetargon.com>
Use `${0:A:h}` to get the absolute plugin directory path before entering
the anonymous function, where `$0` refers to the function itself. Store
it in a local variable to ensure the completion file path is resolved
correctly.
Fixes#14003
HOME="${HOME:-$(eval echo ~"$USER")}" expands any shell metacharacters in
$USER when HOME is unset (CWE-78), e.g. USER='x"; <command>; "'. Validate the
username against a safe character set before running the eval and fall back
to $PWD for unsafe values. Also quote $USER in the getent call to avoid word
splitting.
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
* chore(z): update to 102fb780
* remove tests
* do not include tests
---------
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
BREAKING CHANGE: `kubectx_prompt_info` uses the async prompt API by default on supported zsh versions. Set async-prompt to no for synchronous behavior, or force it when calling it through a wrapper function. See the plugin README for details.
Adds a cache policy for the `gi` command completion function, i.e.
`_gitignoreio`. Previously, every completion call would request the list
endpoint of gitignore.io over the network, resulting in a delay between
pressing <Tab> and the autocomplete options showing up.
Since we don't expect the gitignore.io templates to change that
frequently, configured the cache policy to expire after 7 days.
Signed-off-by: Rishvic Pushpakaran <rishvic@gmail.com>
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
The issue is that Ghostty shell-integration tries to parse PS1. How we're
defining it now, the precmd function from Ghostty does not properly read
the newlines, resulting in broken prompts. This doesn't happen if:
- Zsh is reloaded (`omz reload` or `exec zsh`)
- Ghostty shell integration is disabled (`shell-integration = none` in config)
This fix just removes the newlines, and it's enough to fix the integration.