文档首页 > > 用户指南> C/C++技术栈>

代码编辑

代码编辑

分享
更新时间:2020/12/28 GMT+08:00

CloudIDE的C/C++插件功能强大能够帮助编写代码,为得到最佳体验,需要为C/C++插件提供头文件的位置。如果头文件放置在以“include”命名的文件夹中,则C/C++插件会自动识别。其它情形下,请设置“clangd.includePath”选项(请参考配置头文件路径和宏)。对于复杂的大工程,推荐配置“compile_commands.json”文件(请参考精确配置代码跳转),达到完美配置的目的。

代码提示

CloudIDE可以根据输入的内容,实时提示代码。单击提示中的,还可以查看函数、变量的详细信息。

将鼠标悬停在代码变量上,可以显示变量的相关信息。

查找定义

将光标移到要查看的符号上,右键选择“Peek Definition”,或者按下“Alt+F12”,可以查找符号的定义;也可以按下“Ctrl”键,单击要查看的符号,查找其定义。

代码格式化

使用“Format Document”命令,或者按下“Alt+Shift+F”组合键,可对当前编辑器的代码进行格式化;也可以选中部分代码,使用“Format Selection”命令进行格式化。

  

在工程中添加一个“.clang-format”文件,可以定制格式化样例,“.clang-format”文件的配置参考如下:

---
BasedOnStyle: LLVM
---
Language: Cpp
AccessModifierOffset: -4
AlignEscapedNewlines: DontAlign
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
BreakBeforeBraces: Custom
BraceWrapping:
AfterFunction: true
ColumnLimit: 0
ConstructorInitializerAllOnOneLineOrOnePerLine: true
IncludeCategories:
- Regex:    '^<ext/.*\.h>'
Priority: 2
- Regex:    '^<.*\.h>'
Priority: 1
- Regex:    '^<.*'
Priority: 2
- Regex:    '.*'
Priority: 3
IndentCaseLabels: true
IndentWidth: 4
ObjCBlockIndentWidth: 4
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpacesBeforeTrailingComments: 2
UseTab: Never
TabWidth: 4

查找引用

将光标移到需要查找的符号上,右键选择“Peek Reference”,可以查看符号引用情况。

配置头文件路径和宏

大多数情况下,CloudIDE可对工程进行自动扫描。对于需要额外配置头文件路径或者宏的工程,自动扫描与配置可能会失效,此时需要在配置中为工程添加相应配置。

步骤说明:

  1. 单击File > Settings打开配置。
  2. 添加“clangd.defines”“clangd.includePath”配置,并保存。

精确配置代码跳转

对于复杂工程,如果自动扫描结果不能令人满意,则需要配置一个名为“编译数据库”的文件,配合C/C++插件使用。“编译数据库”是一个JSON格式、名为“compile_commands.json”的文件。现有多种方式来生成“compile_commands.json”。CMake和Clang自带支持生成“compile_commands.json”,对于make和ninja管理的工程,则可以用bear工具,参考如下:

CMake

设置 CMAKE_EXPORT_COMPILE_COMMANDS,可以带参数执行。

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON…

或者在“CMakeLists.txt”文件中添加如下信息。

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

Clang (version 5.0 and later)

使用 -Mj 参数 (参考)。

Bear 与 intercept-build 工具

Bear 和 intercept-build(来自 scan-build) 可以帮助生成“compile_commands.json”文件。

Ubuntu系统可用“sudo apt-get install bear”命令安装 bear工具。

生成“compile_commands.json”文件后,CloudIDE会询问是否将此文件配置为“compileCommands”

下面以bear和make为例,介绍详细操作:

步骤说明:

  1. 单击Terminal > New Terminal或者使用快捷键“Ctrl+Shift+`”打开 “Terminal”
  2. 执行“bear make”命令进行编译,案例中Makefile的内容如下:

    default:
    g++ -g -o helloworld src/helloworld.cpp -DVERBOSE

      

  3. bear在根目录生成了“compile_commands.json”文件后,CloudIDE提示是否将包含此文件的目录,设置为compileCommands值,单击“Yes”
  4. CloudIDE提示是否重新加载“compile_commands.json”使配置生效,单击“Reload”
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问
{{site}}{{lan}}
{{site}}{{language}}