[Feature Request] Support for Nushell?
brglng opened this issue · 4 comments
skywind3000 commented
最近有点忙,需要整块时间系统学习下 nushell 的 script 才行,如果你很熟悉 nushell 能否帮做个 PR?
就是加一段类似 bash/zsh 初始化的字符串,检测到 --init nushell 时返回就行了,参考 bash/zsh 代码如下(不到 60 行):
Lines 2164 to 2218 in 7c890c3
| local script_zlua = [[ | |
| _zlua() { | |
| local arg_mode="" | |
| local arg_type="" | |
| local arg_subdir="" | |
| local arg_inter="" | |
| local arg_strip="" | |
| if [ "$1" = "--add" ]; then | |
| shift | |
| _ZL_RANDOM="$RANDOM" "$ZLUA_LUAEXE" "$ZLUA_SCRIPT" --add "$@" | |
| return | |
| elif [ "$1" = "--complete" ]; then | |
| shift | |
| "$ZLUA_LUAEXE" "$ZLUA_SCRIPT" --complete "$@" | |
| return | |
| fi | |
| while [ "$1" ]; do | |
| case "$1" in | |
| -l) local arg_mode="-l" ;; | |
| -e) local arg_mode="-e" ;; | |
| -x) local arg_mode="-x" ;; | |
| -t) local arg_type="-t" ;; | |
| -r) local arg_type="-r" ;; | |
| -c) local arg_subdir="-c" ;; | |
| -s) local arg_strip="-s" ;; | |
| -i) local arg_inter="-i" ;; | |
| -I) local arg_inter="-I" ;; | |
| -h) local arg_mode="-h" ;; | |
| --help) local arg_mode="-h" ;; | |
| --purge) local arg_mode="--purge" ;; | |
| *) break ;; | |
| esac | |
| shift | |
| done | |
| if [ "$arg_mode" = "-h" ] || [ "$arg_mode" = "--purge" ]; then | |
| "$ZLUA_LUAEXE" "$ZLUA_SCRIPT" $arg_mode | |
| elif [ "$arg_mode" = "-l" ] || [ "$#" -eq 0 ]; then | |
| "$ZLUA_LUAEXE" "$ZLUA_SCRIPT" -l $arg_subdir $arg_type $arg_strip "$@" | |
| elif [ -n "$arg_mode" ]; then | |
| "$ZLUA_LUAEXE" "$ZLUA_SCRIPT" $arg_mode $arg_subdir $arg_type $arg_inter "$@" | |
| else | |
| local zdest=$("$ZLUA_LUAEXE" "$ZLUA_SCRIPT" --cd $arg_type $arg_subdir $arg_inter "$@") | |
| if [ -n "$zdest" ] && [ -d "$zdest" ]; then | |
| if [ -z "$_ZL_CD" ]; then | |
| builtin cd "$zdest" | |
| else | |
| $_ZL_CD "$zdest" | |
| fi | |
| if [ -n "$_ZL_ECHO" ]; then pwd; fi | |
| fi | |
| fi | |
| } | |
| # alias ${_ZL_CMD:-z}='_zlua 2>&1' | |
| alias ${_ZL_CMD:-z}='_zlua' | |
| ]] |
brglng commented
我也用得不久,还不能算很熟。不过有空我可以研究下怎么弄。
skywind3000 commented
多谢!