We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如题,负数参数会被错误的识别成选项。
一般说来,所有选项需要被放置在所有的参数之前,在开始读入参数之后,不应该再定义短横杠 - 为选项标志。
-
此外,在没有定义选项的参数之中,短横杠 - 也不应该被定义为选项标志。
ctx .command('echo <digit:number>', { showWarning: true, checkArgCount: true }) .action(({ }, digit) => <>{digit}</>)
echo 1 // returns 1 echo -1 // throw error echo "-1" // returns -1
ctx .command('echo <string> <digit:number>', { showWarning: true, checkArgCount: true }) .action(({ }, string, digit) => <>{digit}</>)
echo x 1 // returns 1 echo x -1 // throw error echo x "-1" // returns -1
满足一定的前提下,负数可以被正确识别,简化输入逻辑。
这里的前提包括但不限于
No response
The text was updated successfully, but these errors were encountered:
我在搜索网络资源后并没有找到相关的说法。如果可以的话希望能够提供一些资料,或是其他应用中的示例。我个人经常在指令末尾附加选项,因此我觉得这个观点并没有成为共识。此外,很多著名的 Koishi 插件 提供的示例也在指令末尾附加选项。
个人推荐的解决方法是 Double Dash。这是 Bash 标准,也被现今的大部分 CLI 应用所采用。依稀记得 Koishi 在很久以前实现了此标准,但我刚才测试似乎并不生效。
Sorry, something went wrong.
一般说来,所有选项需要被放置在所有的参数之前,在开始读入参数之后,不应该再定义短横杠 - 为选项标志。 我在搜索网络资源后并没有找到相关的说法。如果可以的话希望能够提供一些资料,或是其他应用中的示例。我个人经常在指令末尾附加选项,因此我觉得这个观点并没有成为共识。此外,很多著名的 Koishi 插件 提供的示例也在指令末尾附加选项。 个人推荐的解决方法是 Double Dash。这是 Bash 标准,也被现今的大部分 CLI 应用所采用。依稀记得 Koishi 在很久以前实现了此标准,但我刚才测试似乎并不生效。
抱歉,是我的认知错误,之前可能是用错了,导致我一直以为选项只能写在开头(
我测试了下,选项是可以写在指令末尾的
ctx .command('echo [...digit:number]', { showWarning: true, checkArgCount: true }) .option('trans', '-t') .action(({ options }, ...digit) => <>{options.trans ? digit.map(d => -d).join(', ') : digit.join(', ')}</>)
echo 1 2 3 -t // returns -1, -2, -3
这个问题从本质上无法解决,因为选项优先于数字解析,用户需要有意识地使用引号进行转义。
但我非常认同本 issue 的场景是普遍发生的,因而值得被专门优化。我能想到的方案有:
我个人倾向于只做 1, 2。方案三有点破坏一致性,而且 1, 2 本身就应当覆盖大部分情况。
216b819
No branches or pull requests
Describe the bug
如题,负数参数会被错误的识别成选项。
一般说来,所有选项需要被放置在所有的参数之前,在开始读入参数之后,不应该再定义短横杠
-
为选项标志。此外,在没有定义选项的参数之中,短横杠
-
也不应该被定义为选项标志。Steps to reproduce
Expected behavior
满足一定的前提下,负数可以被正确识别,简化输入逻辑。
这里的前提包括但不限于
Screenshots
Versions
Additional context
No response
The text was updated successfully, but these errors were encountered: