vscode宏控部分代码跳转失效

想从si转到vscode做c/c++开发,但是在最新的1.44.2版本中,发现一个致命缺陷,导致无法使用vscode:

已安装c/c++插件0.27.1
如果一段代码是被某个宏括起来的,这个宏定义在makefile或其他文件中定义,则该宏里面的代码跳转不能成功,代码编辑时也不会自动提示宏控代码中函数或变量。

==========issues #3108:
https://github.com/microsoft/vscode-cpptools/issues/3108

codes as blow:

#define DEBUG_CHECK_RANGE 1;

void test()
{
int count = 0;
#ifdef DEBUG_CHECK_RANGE0 // it's not defined
int local = 0;
local++; // can't go to definition
count++; // can't go to definition
#endif
count++; //it's ok
}

按照开发者的回答是说这是设计本意,只有将每一个macro添加进c_cpp_properity.json里面的defines(默认只有三个系统macro):
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "${default}",
"cStandard": "c11",
"cppStandard": "c++11"
}
],
"version": 4
}

但是对于一个大型工程来说,将每个macro手动输入到脚本中是不现实的,如何才能解决这个问题?

hot__rain
hot__rain 作为提了issue,开发者表示这是一个bug,在vs中工作正常,但是vscode中有问题,已经标记为bug等待修复。https://github.com/microsoft/vscode-cpptools/issues/5398
2 个月之前 回复
hot__rain
hot__rain 昨晚提了issue,开发者回应确实是一个bug,目前已标记为bug等待修复。
2 个月之前 回复

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问