Skip to content
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

windows 下 project -k compile_commands 生成的命令包含多余的斜杠,导致lsp无法解析 #720

Closed
codehz opened this issue Mar 20, 2020 · 9 comments

Comments

@codehz
Copy link
Contributor

codehz commented Mar 20, 2020

注:提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没有根据下面的模板给出任何相关辅助信息的,将绝对不会有任何反馈。

描述问题

windows 下 project -k compile_commands 生成的命令包含多余的斜杠,导致lsp无法解析
具体就是这样

{
  "directory": "C:\\Users\\CodeHz\\source\\repos\\ElementZero",
  "arguments": ["cl.exe", "-c", "-FS", "-Zi", "-Fdbuild\\windows\\x64\\release\\compile.Base.pdb", "-std:c++latest", "-IPublic", "-IMinecraftHeaders", "-DBase_EXPORTS", "-IC:\\\\Users\\\\CodeHz\\\\AppData\\\\Local\\\\xmake\\\\.xmake\\\\packages\\\\b\\\\boost\\\\1.72.0\\\\c58755261a554c379c74fff6ddf125fa\\\\include", "-IC:\\\\Users\\\\CodeHz\\\\AppData\\\\Local\\\\xmake\\\\.xmake\\\\packages\\\\s\\\\sqlite3\\\\3.31.0100\\\\c6d35553172d4eef836d09b206be23c8\\\\include", "-IC:\\\\Users\\\\CodeHz\\\\AppData\\\\Local\\\\xmake\\\\.xmake\\\\packages\\\\s\\\\sqlite_cpp\\\\master\\\\c6d35553172d4eef836d09b206be23c8\\\\include", "-IC:\\\\Users\\\\CodeHz\\\\AppData\\\\Local\\\\xmake\\\\.xmake\\\\packages\\\\y\\\\yaml-cpp\\\\master\\\\c6d35553172d4eef836d09b206be23c8\\\\include", "-IC:\\\\Users\\\\CodeHz\\\\AppData\\\\Local\\\\xmake\\\\.xmake\\\\packages\\\\j\\\\jsoncpp\\\\master\\\\c6d35553172d4eef836d09b206be23c8\\\\include", "-DUNICODE", "-D_UNICODE", "-MD", "-EHsc", "-nologo", "-Fobuild\\.objs\\Base\\windows\\x64\\release\\Base\\scheduler.cpp.obj", "Base\\scheduler.cpp"],
  "file": "Base\\scheduler.cpp"
}

经测试,将\\替换为\后lsp工作正常

期待的结果

使用\而不是\作为目录分隔符

错误信息

(xmake没有报错,lsp报错找不到头文件)

相关环境

windows 10 x64
xmake v2.3.1+202003181541

其他信息

vscode 官方 c/c++ 扩展

@waruqi waruqi added this to the v2.3.2 milestone Mar 20, 2020
@waruqi
Copy link
Member

waruqi commented Mar 20, 2020

是就directory, file里面不行,还是包括 args里面全不行?还是仅args里面不行?

args里面,是因为 有 "-IC:\\\\Users 不行? 还是里面的 "-IC:\\Users也不行?

@codehz
Copy link
Contributor Author

codehz commented Mar 20, 2020

json里改成 \\ 就可以了

@codehz
Copy link
Contributor Author

codehz commented Mar 20, 2020

啊,原文中 \\ 被替换成 \ 了(原本是 \\\\

@waruqi
Copy link
Member

waruqi commented Mar 20, 2020

啊,原文中 \\ 被替换成 \ 了(原本是 \\\\

? 反正就是要全部\\都替换成\对吧。。

@codehz
Copy link
Contributor Author

codehz commented Mar 20, 2020

啊,原文中 \\ 被替换成 \ 了(原本是 \\\\

? 反正就是要全部\\都替换成\对吧。。

我是说issues里的 \\ 也被换成 \ 了(被github markdown 渲染了)
原文中
经测试,将\\替换为\后lsp工作正常

经测试,将\\\\替换为\\后lsp工作正常

@waruqi
Copy link
Member

waruqi commented Mar 20, 2020

哦 这个我回头看下

@waruqi
Copy link
Member

waruqi commented Mar 21, 2020

这块问题大概了解了 不过我得稍微做点重构重新理下 并且得先完善下test cases 才行

@waruqi
Copy link
Member

waruqi commented Mar 25, 2020

我改进过了,你全量更新下dev再试试。。xmake update dev

@codehz
Copy link
Contributor Author

codehz commented Mar 25, 2020

确认已经解决了

@codehz codehz closed this as completed Mar 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants