diff --git a/fish-shell.md b/fish-shell.md new file mode 100644 index 000000000..7673f25cd --- /dev/null +++ b/fish-shell.md @@ -0,0 +1,94 @@ +--- +title: Fish shell +--- + +## Function + + function my_function + .. + end + + --description "My description" + +### Conditional + + if test -f foo.txt + else if test -f bar.txt + else + end + +### Combining tests + + test -f foo.txt -a -f bar.txt + test \( -f foo.txt \) -a -f \( bar.txt \) + +### Events + + emit my_event + + function myhook --on-event my_event + ... + end + +## Completions + +### Creating completions + + # ~/.fish/completions/mycommand.fish + complete -c mycommand ... + complete -c mycommand ... + complete -c mycommand ... + +### Options + + -c command + -s short option + -l long option + -r, --require-parameter + -f, --no-files + -x exclusive (-r -f) + -n '__fish_use_subcommand' condition + --description ".." + # complete -c $cmd -n '__fish_use_subcommand' -x -a hello --description 'lol' + + +### Conditions + + __fish_complete_directories STRING DESCRIPTION performs path completion on STRING, allowing only directories, and giving them the description DESCRIPTION. + __fish_complete_path STRING DESCRIPTION performs path completion on STRING, giving them the description DESCRIPTION. + __fish_complete_groups prints a list of all user groups with the groups members as description. + __fish_complete_pids prints a list of all processes IDs with the command name as description. + __fish_complete_suffix SUFFIX performs file completion allowing only files ending in SUFFIX. The mimetype database is used to find a suitable description. + __fish_complete_users prints a list of all users with their full name as description. + __fish_print_filesystems prints a list of all known file systems. Currently, this is a static list, and not dependent on what file systems the host operating system actually understands. + __fish_print_hostnames prints a list of all known hostnames. This functions searches the fstab for nfs servers, ssh for known hosts and checks the /etc/hosts file. + __fish_print_interfaces prints a list of all known network interfaces. + __fish_print_packages prints a list of all installed packages. This function currently handles Debian, rpm and Gentoo packages. + + __fish_use_subcommand + __fish_seen_subcommand_from init + + + complete -c ruby -s X -x -a '(__fish_complete_directories (commandline -ct))' --description 'Directory' + +### Examples + +Start each example with `complete -c cmdname` + + -x + # no filename completion + + -s d -x -a "read skip" + # -d {read|skip} + + -s d -x + # -d + + -s f -r + # -f FILE + + -s f -l force + # -f, --force + + -a "(cat /etc/passwd | cut -d : -f 1)" + # first argument as filename diff --git a/js-array.md b/js-array.md index 160580a9b..b1b600d52 100644 --- a/js-array.md +++ b/js-array.md @@ -45,6 +45,18 @@ layout: default array.shift() //=> a array == [b,c,d,e] array.splice(2, 1) //=> [c] array == [a,b,d,e] +### Iterables + + .find(n => ...) // es6 + .findIndex(...) // es6 + .every(n => ...) // ie9+ + .some(n => ..) // ie9+ + .map(n => ...) // ie9+ + .reduce((total, n) => total) // ie9+ + .reduceRight(...) + + +