Files
fastfetch/completions/fish
T
2023-11-14 16:36:08 +08:00

63 lines
2.0 KiB
Fish
Executable File

#!/usr/bin/env fish
if not test -x fastfetch
return
end
set -l whole_text (fastfetch --pipe --help)
set -l modules (fastfetch --list-modules | string sub -s 5 | string lower)
complete -c fastfetch -f
for line in (string match -- ' -*' $whole_text)
set -l kv (string split -n ':' $line -m1)
set -l args (string trim -- $kv[1])
set -l desc (string trim -- $kv[2])
if string match -q -- '--<*' $args # ignore --<module>-*
continue
end
set -l res -c fastfetch
set -l regexp '<\??[\w=]+>'
switch (string match -r -- $regexp $args)
case '<\?command>'
set -l modules_format $modules-format"\tModule_format"
set res $res -x -a "color\tSupported_colors format\tCustom_format config\tConfiguration $modules_format"
case '<\?bool>'
set res $res -x -a "true\tBool false\tBool"
case '<config>'
set -l presets (fastfetch --list-presets false)"\tPreset"
set res $res -r -a "$presets"
case '<path>'
set res $res -F -r
case '<num>'
set res $res -x -a "0\tNumber 1\tNumber 2\tNumber 3\tNumber 4\tNumber 5\tNumber 6\tNumber 7\tNumber 8\tNumber 9\tNumber"
case '<\?num>'
set res $res -x -a "0\tNumber 1\tNumber 2\tNumber 3\tNumber 4\tNumber 5\tNumber 6\tNumber 7\tNumber 8\tNumber 9\tNumber"
case '<structure>'
set temp $modules"\tModule"
set res $res -x -a "$temp"
case '<logo>'
set res $res -x -a "none\tNone small\tSmall"
case '<color>'
set res $res -x -a "black\tColor red\tColor green\tColor yellow\tColor blue\tColor magenta\tColor cyan\tColor white\tColor default\tColor"
case '<*>'
set res $res -x
case '*'
set res $res -f
end
set args (string replace -r -- $regexp '' $args | string split ',' | string trim)
for arg in $args
if string match -q -- '--*' $arg
set res $res -l (string sub -s 3 -- $arg)
else
set res $res -o (string sub -s 2 -- $arg)
end
end
complete $res -d (string replace -- ' (+)' '' $desc)
end