本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

重构 C++ 代码

Visual Studio Code 中的 C/C++ 扩展具有多种代码重构功能,可以帮助您在不改变运行时行为的情况下改进代码的结构、可读性和可维护性。这些功能包括提取方法和创建声明及定义。

创建声明或定义

通过让 C/C++ 扩展为您生成这些项目,简化创建函数声明或定义的过程。此功能适用于成员函数、作为类的命名空间和模板。

在两个文件中创建定义和声明

要创建函数声明或定义,可以使用以下任一种方法:

  • 选择类函数定义,选择代码操作(灯泡图标),然后选择 创建声明。同样,要创建定义,请选择函数声明,选择代码操作,然后选择 创建定义
  • 右键单击函数的声明或定义,并从上下文菜单中选择“创建声明/定义”。根据您的代码,将创建一个声明或定义。
  • 选择函数,然后使用命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并输入命令创建声明/定义。根据你的代码,将创建一个定义或声明。

定义和声明的创建位置基于您在代码中之前建立的模式。例如,如果您之前在同一个文件中添加了定义和声明,该扩展也会将新的添加到同一个文件中。函数顺序会自动保持。

在一个文件中创建定义和声明

如果你在源文件之外定义了声明或定义,扩展会遵循你的约定。例如,对于一个头文件和一个具有匹配名称的源文件,即使头文件没有包含在源文件中,两者都会被识别。在这种情况下,一旦添加了声明或定义,扩展会自动在你的源文件中引用你的头文件。

否则,该扩展将为您创建一个与当前文件同名的新头文件或源文件。这个新文件包含新生成的声明或定义。然后,新文件会自动在您的当前文件中引用。

对于模板,如果在头文件中声明了一个函数模板,那么该函数模板的定义也在该头文件中创建。这同样适用于类模板的非模板成员函数。

复制声明或定义

如果你想在代码中选择添加声明或定义的位置,可以使用代码操作复制声明/定义。这将声明或定义复制到剪贴板,而不是直接添加到你的代码中。

要调用代码操作,请选择一个有快速修复功能的函数,然后选择代码操作(灯泡),并选择复制“YourFunctionName”的定义复制“YourFunctionName”的声明

复制声明或定义

提取到方法

提取方法的重构功能使您可以将代码块提取到单独的方法中,以帮助提高代码可读性、减少代码冗余并使代码更加模块化。

要提取一个方法,请选择您想要提取的C++代码,选择代码操作(灯泡),然后选择提取到函数。或者,右键单击代码并选择重构 > 提取或使用键盘命令(Ctrl + Shift + R, Ctrl + E在Windows上) 以获取更多信息。

然后可以命名新创建的功能。包含您选择代码的新功能将放置在当前功能的上方。

提取方法并创建声明

快速修复/代码行动

C/C++ 扩展根据您的代码上下文,提供 C/C++ 特定的建议来修复和改进您的 C++ 代码。您可以通过悬停在符号上并选择 QuickFix 链接,或者通过选择代码操作(在代码旁边显示的灯泡图标)来查看这些建议。例如,如果一段代码可以提取到一个方法中,选择灯泡图标会显示“提取到方法”。除了上面提到的功能,C/C++ 扩展在以下情况下提供快速修复/代码操作:

添加缺失的头文件

如果在你的 C++ 代码中有一个未知的符号,并且 C/C++ 扩展在你的工作区中识别出了正确的头文件,现在有一个快速修复选项。选择该快速修复,相应的头文件包含将会被添加到你当前的 C++ 文件的顶部。

在代码中使用代码操作添加缺失的包含文件

下一步

继续阅读,了解:

如果您有任何其他问题或遇到任何问题,请在 GitHub 上提交问题。您可能需要提供扩展的日志信息以帮助诊断问题。请参阅 C/C++ 扩展日志 以获取提供扩展日志的帮助。