【问题标题】:VS Code - no suggestions with #defineVS Code - #define 没有建议
【发布时间】:2022-01-13 20:18:57
【问题描述】:

我想知道是否可以通过 C/C++ 定义使用智能感知建议。例如,在这张照片中,我想要建议“TEST_1”,但什么都没有。谢谢

【问题讨论】:

  • 这并没有解决问题,但是以下划线开头后跟大写字母 (_TEST_H_) 的名称和包含两个连续下划线的名称保留供实现使用。不要在你的代码中使用它们。
  • 无关:What are the rules about using an underscore in a C++ identifier? 打破这些规则很少会咬你,但当它咬人时,真的会很痛。结果完全离奇,几乎难以理解。更好地通过理解和遵守规则来完全避免问题。是的。皮特刚才说的。
  • 我不是 VS Code 的用户,但在 IDE 中,您通常需要在检测到新令牌并将其添加到自动完成选项之前通过保存文件来强制重新解析文件。确保文件已保存。
  • @PeteBecker 你的意思是执行什么? VS Code 还是标准库?这不是我的想法,这是我们公司的标准,而且STMs CubeIDE生成的头文件定义为 __MAIN_H ,所以我习惯了这个命名。
  • 您可以尝试基于 clangd 的自动完成功能,而不是现有的自动完成功能。

标签: c++ c visual-studio-code autocomplete


【解决方案1】:

好的,我想我得到了答案:不支持以“#”开头的自动完成。运气不好……

我可以这样想解决方案,而不是:

#define TEST_2 TES....

你开始输入它没有#:

define TEST_2 TES....

它会自动完成。比把#放在行首的快捷方式更好......

link 1, link 2

【讨论】:

  • 战术说明:如果排除 C,#define 宏可以替换为 constexpr 变量。不仅可以避免这个问题,还有更好的类型检查,并且不可能用constexpr 不幸地进行预处理器文本替换。
猜你喜欢
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2021-04-07
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 2016-10-18
相关资源
最近更新 更多