mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-19 05:13:44 +08:00
93aa5a9376
* feat(completion): support guile command * feat(completion): support guild command * feat(completion): support guild subcommand * feat(completion): squeeze code
116 lines
3.8 KiB
Fish
116 lines
3.8 KiB
Fish
function __fish_guile__complete_srfis
|
||
printf '%s\n' 0\t'cond-expand' \
|
||
1\t'List library' \
|
||
2\t'and-let*' \
|
||
4\t'Homogeneous numeric vector datatypes' \
|
||
6\t'Basic String Ports' \
|
||
8\t'receive' \
|
||
9\t'define-record-type' \
|
||
10\t'Hash-Comma Reader Extension' \
|
||
11\t'let-values' \
|
||
13\t'String Library' \
|
||
14\t'Character-set Library' \
|
||
16\t'case-lambda' \
|
||
17\t'Generalized set!' \
|
||
18\t'Multithreading support' \
|
||
19\t'Time/Date Library' \
|
||
23\t'Error Reporting' \
|
||
26\t'specializing parameters' \
|
||
27\t'Sources of Random Bits' \
|
||
28\t'Basic Format Strings' \
|
||
30\t'Nested Multi-line Comments' \
|
||
31\t'A special form ‘rec’ for recursive evaluation' \
|
||
34\t'Exception handling for programs' \
|
||
35\t'Conditions' \
|
||
37\t'args-fold' \
|
||
38\t'External Representation for Data With Shared Structure' \
|
||
39\t'Parameters' \
|
||
41\t'Streams' \
|
||
42\t'Eager Comprehensions' \
|
||
43\t'Vector Library' \
|
||
45\t'Primitives for Expressing Iterative Lazy Algorithms' \
|
||
46\t'Basic syntax-rules Extensions' \
|
||
55\t'Requiring Features' \
|
||
60\t'Integers as Bits' \
|
||
61\t'A more general cond clause' \
|
||
62\t'S-expression comments' \
|
||
64\t'A Scheme API for test suites' \
|
||
67\t'Compare procedures' \
|
||
69\t'Basic hash tables' \
|
||
71\t'Extended let-syntax for multiple values' \
|
||
87\t'in case clauses' \
|
||
88\t'Keyword Objects' \
|
||
98\t'Accessing environment variables' \
|
||
105\t'Curly-infix expressions' \
|
||
111\t'Boxes' \
|
||
119\t'Wisp: simpler indentation-sensitive Scheme'
|
||
end
|
||
|
||
function __fish_guile__complete_function_names
|
||
set -l path (commandline -poc |
|
||
string match --regex '.*\\.scm$' |
|
||
sed -n 1p)
|
||
|
||
test -e "$path" && begin
|
||
cat $path |
|
||
string match --all --groups-only --regex '\(\s*define\s+\(\s*(\w+)'
|
||
end
|
||
end
|
||
|
||
set -l command guile
|
||
complete -c $command -f
|
||
|
||
complete -c $command -s h -l help -d 'Show help'
|
||
complete -c $command -s v -l version -d 'Show version'
|
||
complete -c $command -s s -F -r -d 'Specify the script to run'
|
||
complete -c $command -s c -x -d 'Specify the code to run'
|
||
|
||
complete -c $command -s L -F -r \
|
||
-d 'Specify the directory to prepend to module load path'
|
||
|
||
complete -c $command -s C -F -r \
|
||
-d 'Specify the directory to prepend to module load path for compiled files'
|
||
|
||
complete -c $command -s x -x \
|
||
-a '.scm\tdefault' \
|
||
-d 'Specify the extension to prepend to extension list'
|
||
|
||
complete -c $command -s l -F -r -d 'Specify the script to load'
|
||
|
||
complete -c $command -s e -x \
|
||
-a '(__fish_guile__complete_function_names)' \
|
||
-d 'Specify the entry point of a script'
|
||
|
||
complete -c $command -o ds \
|
||
-d 'Treat the last -s option as if it occurred at this point'
|
||
|
||
complete -c $command -l use-srfi \
|
||
-a '(__fish_complete_list , __fish_guile__complete_srfis)' \
|
||
-d 'Specify the SRFI modules to load'
|
||
|
||
for standard in 6 7
|
||
set -l option r$standard"rc"
|
||
|
||
complete -c $command -l $option \
|
||
-d "Use $(string upper -- $option) compatible mode"
|
||
end
|
||
|
||
complete -c $command -l debug -d 'Use debug mode'
|
||
complete -c $command -l no-debug -d "Don't use debug mode"
|
||
complete -c $command -s q -d "Don't load .guile file"
|
||
|
||
complete -c $command -l listen \
|
||
-a '37146\tdefault' \
|
||
-d 'Specify the port to list to'
|
||
|
||
complete -c $command -l auto-compile -d 'Compile scripts automatically'
|
||
|
||
complete -c $command -l fresh-auto-compile \
|
||
-d 'Compile scripts automatically forcefully'
|
||
|
||
complete -c $command -l no-auto-compile -d "Don't compile scripts automatically"
|
||
|
||
complete -c $command -l language \
|
||
-a 'scheme\tdefault elisp ecmascript' \
|
||
-d 'Specify the language for sources'
|