如何折叠带有预处理器的控制语句?

时间:2019-01-24 14:17:06

标签: c visual-studio-code preprocessor folding

最近,我一直在处理一些同事的一些遗留代码,使用Visual Studio代码可以将其转换为理智且可读的C格式。但是,我想折叠一些控制语句,因为我的同事编写的控制语句有时大于100行。

在这些行中,我添加了预处理器控制语句以启用和禁用我的更改。

在Visual Studio代码中,我可以很好地折叠代码,但是一旦遇到预处理器语句(至少是#ifdef和#ifndef),它就会停止。 因为每10行大约有1条折叠一条控制语句,所以我需要折叠10次,这比它背后的想法好吗?

我尝试在设置中进行折叠和折叠,并进行了一些谷歌搜索,但找不到任何可以解决问题的方法。

例如我有这个片段

if(true)
{
    Some functions();
#ifdef DEBUG
    Functions with debugging only();
#else
    Functions without debugging only();
#endif
    Some other functions();
}

我希望每当折叠if(true)时,此控制语句中的所有内容都会被折叠。这就是我习惯的,并且在Eclipse中vs2017中会发生什么。这在VSCODE中不会发生!而是仅某些函数();折叠。

如何使VSCODE折叠行为与其他IDE相似?

1 个答案:

答案 0 :(得分:0)

听起来您的编辑器正在使用缩进级折叠。

根据https://code.visualstudio.com/docs/editor/codebasics#_folding

  

折叠范围默认情况下根据缩进量进行评估   线。当行的缩进小于   一或多个以下行,并在与   相同或较小的缩进。

     

从1.22版本开始,折叠范围也可以基于   编辑器配置语言的语法标记。下列   语言已经提供了语法识别折叠:

     
      
  • Markdown,HTML,CSS,LESS,SCSS和JSON
  •   

可能有一些插件支持其他语言的语法折叠。如果不是这样,您可以缩进预处理程序行作为解决方法。