skywind3000/z.lua

[Feature Request] Support for Nushell?

brglng opened this issue · 4 comments

brglng commented

Any possibility to add support for Nushell?

最近有点忙,需要整块时间系统学习下 nushell 的 script 才行,如果你很熟悉 nushell 能否帮做个 PR?
就是加一段类似 bash/zsh 初始化的字符串,检测到 --init nushell 时返回就行了,参考 bash/zsh 代码如下(不到 60 行):

z.lua/z.lua

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

我也用得不久,还不能算很熟。不过有空我可以研究下怎么弄。

多谢!

brglng commented

已在 #210 合并了,所以先 close 了。