-
-
Notifications
You must be signed in to change notification settings - Fork 790
New issue
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
xmake f --menu not responding in vscode terminal on windows #1610
Comments
linux下vscode terminal也正常,windows上vscode remote连接linux使用也正常,只有原生windows环境vscode terminal有问题 |
这。。还真有在vscode terminal 下用这玩意的哈,等回头有时间看看 = = |
我试了下,可以的么 这边没法复现,不过我这里是 powershell 不是 pwsh |
cmd里也有此问题 |
我这里都可以。 |
Version: 1.60.0 (user setup) |
可以直接调下这里 xmake/xmake/core/ui/program.lua Line 369 in 67c6212
用 log:print() 日志文件在 project/.xmake/ui.log |
在其他terminal里面这些是259、258、260、261 |
那这个要调下 pdcurse 里面 getch 为啥不识别了 xmake/core/src/lcurses/lcurses.c Line 259 in 67c6212
|
这些终端才是正常行为,pdcures 里面定义的也是这些。。
这个是不正常的,我不知道你这 vscode 下为啥为收到这些,我这都是 259 等正常值。。感觉像是 vscode 的问题,跟 xmake 没啥太大关系 |
反正目前这边只能处理收到正常 key code 值,其他未知的 key 也没法额外做特殊 map,所以暂时无解,先 close 了 |
我debug了一下,原因是VSCode基于ConPTY,而ConPTY(Pseudo Terminal)相当于加了一层虚拟键盘,所以和普通terminal输出不同。在其他使用ConPTY API的terminal(extraterm,etc)里面都能复现这个问题。ConPTY API不会设置extended,因此具有和Console API不同的行为,而pdcurses没有对ConPTY API的这种行为进行支持。 https://github.com/wmcbrine/PDCurses/blob/HEAD/wincon/pdckbd.c#L444-L453 这里state&extended结果在传统console上是0x100,在ConPTY里面是0,所以原来map到KEY_UP的键会map到KEY_A2,KEY_DOWN map到KEY_C2,以此类推。所以会出不同结果。 https://github.com/wmcbrine/PDCurses/blob/HEAD/wincon/pdckbd.c#L236-L239 https://github.com/wmcbrine/PDCurses/blob/HEAD/wincon/pdckbd.c#L72-L75 关于这些键位,pdcurses的解释是Virtual keyboard上的键,见 https://github.com/wmcbrine/PDCurses/blob/HEAD/curses.h#L766-L774 MS现在在推新的ConPTY,未来基于ConPTY的terminal可能会越来越多,不支持ConPTY还是有影响的。这里还是改下好。 |
它没支持,那这是需要 pdcurses 改什么么?我看它不是已经识别标示为 virtual key 了么 如果这些虚拟键位的值在所有 ConPTY 终端上 map 关系一致,key up对应的值固定,我可以外面兼容处理下 map |
是固定的 |
7f3706c 我加上了,再试试 |
|
改进过了,不过需要等 https://github.com/xmake-io/xmake/actions/runs/1470072651 上跑完,才能全量更新,因为改了 core xmake update master |
现在可以了 |
描述问题
Windows上使用VSCode的terminal时,运行xmake f --menu,则上下左右方向键均无响应,只有Enter和Backspace有响应。在其他terminal都正常。
期待的结果
在vscode terminal中也能使用xmake f --menu功能
错误信息
相关环境
请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:
其他信息
The text was updated successfully, but these errors were encountered: