代码编辑
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可对工程进行自动扫描。对于需要额外配置头文件路径或者宏的工程,自动扫描与配置可能会失效,此时需要在配置中为工程添加相应配置。
步骤说明:
- 单击 打开配置。
- 添加“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)
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为例,介绍详细操作:
步骤说明:
- 单击“Ctrl+Shift+`”打开 “Terminal”。 或者使用快捷键
- 执行“bear make”命令进行编译,案例中Makefile的内容如下:
default: g++ -g -o helloworld src/helloworld.cpp -DVERBOSE
- bear在根目录生成了“compile_commands.json”文件后,CloudIDE提示是否将包含此文件的目录,设置为compileCommands值,单击“Yes”。
- CloudIDE提示是否重新加载“compile_commands.json”使配置生效,单击“Reload”。
