fix(nushell): improve robustness and clarify abstraction boundaries

- pj_completions: merge into $env.config instead of replacing it wholesale
- pj_completions: use parse-time const for cache dir instead of pwd fallback
- pj_fzf / pj_historyhintcomplete: null-safe keybindings access via ? and default
- pj_helix: replace $env.OS (Windows-only) with $nu.os-info.name; extract shared launcher
- pj_prompt: fix off-by-one in git OID substring (0..7 -> 0..<7)
- pj_prompt: use $nu.os-info.name for OS detection instead of sys host hostname
- pj_prompt: cache git availability in static base, skip per-render which call
- pj_prompt: bind LAST_EXIT_CODE once in right-prompt closure
- pj_brew / pj_uv: add --ignore-errors to hide-env calls
- pj_aliases: convert quote/dadjoke to defs with try/catch error handling
- pj_deepseek: guard curl availability before invoking
- pj_zoxide: add ? to $nu.os-info.name access
- pj_starship: fix null-to-nuon producing "null" string; broaden detection
- nu_polyjuice: load pj_starship module
This commit is contained in:
2026-07-31 00:31:04 +08:00
parent 427fa547a6
commit deb4e45c4e
13 changed files with 78 additions and 80 deletions
+16 -2
View File
@@ -16,8 +16,22 @@ export alias .......... = cd ../../../../../../../..
export alias weather = curl wttr.in
export alias moon = curl wttr.in/Moon
export alias quote = curl https://api.quotable.io/random | from json | get content
export alias dadjoke = curl -H "Accept: application/json" https://icanhazdadjoke.com/ | from json | get joke
export def quote [] {
try {
curl -sf https://api.quotable.io/random | from json | get content
} catch {
print "Failed to fetch quote (network or API error)."
}
}
export def dadjoke [] {
try {
curl -sf -H "Accept: application/json" https://icanhazdadjoke.com/ | from json | get joke
} catch {
print "Failed to fetch joke (network or API error)."
}
}
# --- System ---
export def df [] {