File tree Expand file tree Collapse file tree
modules/home-manager/nushell Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3535 algorithm = "fuzzy" ;
3636 external . enable = true ;
3737 external . max_results = 100 ;
38- external . completer = lib . nushell . mkNushellFnInline ( { spans } : # nu
39- ''
40- let expanded_alias = scope aliases
41- | where name == ${ spans } .0
42- | get -o 0.expansion
43-
44- let spans = if $expanded_alias != null {
45- ${ spans }
46- | skip 1
47- | prepend ($expanded_alias | split row ' ' | take 1)
48- } else {
49- ${ spans }
50- }
51-
52- match $spans.0 {
53- devenv => $_argc_completer
54- _ => $_carapace_completer
55- } | do $in $spans
56- '' ) ;
5738 } ;
5839 cursor_shape = {
5940 vi_insert = "line" ;
Original file line number Diff line number Diff line change @@ -10,3 +10,43 @@ let _argc_completer = {|args: list<string>|
1010 | each { |line | $line | split column " \t " value description }
1111 | flatten
1212}
13+
14+ let _fish_completer = {|spans |
15+ fish -- command $" complete '--do-complete=($spans | str replace -- all " '" " \\ '" | str join ' ' )'"
16+ | from tsv -- flexible -- noheaders -- no-infer
17+ | rename value description
18+ | update value {|row |
19+ let value = $row.value
20+ let need_quote = [' \' ' ,' ' [' ' ]' ' (' ' )' ' ' ' \t' " '" ' "' " `" ] | any {$in in $value }
21+ if ($need_quote and ($value | path exists )) {
22+ let expanded_path = if ($value starts-with ~ ) {$value | path expand -- no-symlink } else {$value }
23+ $' "($expanded_path | str replace -- all " \" " " \\\" " )"'
24+ } else {$value }
25+ }
26+ }
27+
28+ $env .config.completions.external.completer = ({|spans |
29+ let expanded_alias = scope aliases
30+ | where name == $spans.0
31+ | get - o 0.expansion
32+
33+ let spans = if $expanded_alias != null {
34+ $spans
35+ | skip 1
36+ | prepend ($expanded_alias | split row ' ' | take 1 )
37+ } else {
38+ $spans
39+ }
40+ let sudos = [" doas" " sudo" " please" ]
41+ let use_fish = [ " zfs" " zpool" ]
42+ let use_argc = [ " devenv" ]
43+ if ($spans.0 in $sudos ) and ($spans.1 ? in $use_fish ) {
44+ $_fish_completer
45+ } else if ($spans.0 in $sudos ) and ($spans.1 ? in $use_argc ) {
46+ $_argc_completer
47+ } else if ($spans.0 in $use_fish ) {
48+ $_fish_completer
49+ } else if ($spans.0 in $use_argc ) {
50+ $_argc_completer
51+ } else $_carapace_completer | do $in $spans
52+ })
You can’t perform that action at this time.
0 commit comments