nushell: Set up external completion using fish

This commit is contained in:
2024-02-28 14:16:30 +01:00
parent fa6f170e78
commit 0271518975

View File

@ -174,11 +174,22 @@ let light_theme = {
shape_vardecl: purple shape_vardecl: purple
} }
# External completer example # Use fish for external completion
# let carapace_completer = {|spans| let fish_completer = {|spans|
# carapace $spans.0 nushell $spans | from json # if the current command is an alias, get it's expansion
# } let expanded_alias = (scope aliases | where name == $spans.0 | get -i 0 | get -i expansion)
# overwrite
let spans = (if $expanded_alias != null {
# put the first word of the expanded alias first in the span
$spans | skip 1 | prepend ($expanded_alias | split row " " | take 1)
} else { $spans })
fish --command $'complete "--do-complete=($spans | str join " ")"'
| $"value(char tab)description(char newline)" + $in
| from tsv --flexible --no-infer
}
$env.config = { $env.config = {
show_banner: false show_banner: false
@ -259,7 +270,7 @@ $env.config = {
external: { external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
completer: null # check 'carapace_completer' above as an example completer: $fish_completer
} }
} }