add windows compatibility for command not found hook (#811)

the hook (did_you_mean.nu) had stopped working for me recently, I added
an if branch for Windows to use their `Path` env var (not `PATH`) and
only list files that match in the `PATHEXT` env var to resolve my issue
This commit is contained in:
Christofer 2024-04-07 08:46:35 -04:00 committed by GitHub
parent df90d65eec
commit 554cb31819
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -18,9 +18,18 @@
# ```
{|cmd|
let commands_in_path = (
$env.PATH | each {|directory|
if ($directory | path exists) {
ls $directory | get name | path parse | update parent "" | path join
if ($nu.os-info.name == windows) {
$env.Path | each {|directory|
if ($directory | path exists) {
let cmd_exts = $env.PATHEXT | str downcase | split row ';' | str trim --char .
ls $directory | get name | path parse | where {|it| $cmd_exts | any {|ext| $ext == ($it.extension | str downcase)} } | get stem
}
}
} else {
$env.PATH | each {|directory|
if ($directory | path exists) {
ls $directory | get name | path parse | update parent "" | path join
}
}
}
| flatten