代码编辑
CodeArts IDE Online的C/C++插件功能强大,能够帮助用户编写代码,为得到最佳体验,需要为C/C++插件提供头文件的位置。如果头文件放置在以“include”命名的文件夹中,则C/C++插件会自动识别。
其它情形下,需设置“clangd.includePath”选项(请参考配置头文件路径和宏)。
对于复杂的工程,推荐配置“compile_commands.json”文件(请参考精确配置代码跳转)。
基本编辑操作如下:
登录工作界面请参考启动IDE实例。
查找定义
以下三种方式均可以查找符号定义。
- 将光标移到需要查看的符号上,鼠标右键选择 。
- 同时按下“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
配置头文件路径和宏
CodeArts IDE Online可对工程进行自动扫描。但对于需要额外配置头文件路径或者宏的工程,自动扫描与配置可能会失效,此时需要在配置中为工程添加相应配置。
- 单击左上角,选择 。
- 添加“clangd.defines”和“clangd.includePath”配置,并保存。
精确配置代码跳转
对于复杂工程,如果自动扫描结果不能令人满意,则需要配置一个名为“编译数据库”的文件,配合C/C++插件使用。
- CMake
- 设置 CMAKE_EXPORT_COMPILE_COMMANDS,可以带参数执行。
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON…
- 或在“CMakeLists.txt”文件中添加如下信息。
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- 设置 CMAKE_EXPORT_COMPILE_COMMANDS,可以带参数执行。
- 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”文件后,CodeArts IDE Online会询问是否将此文件配置为“compileCommands”。
下面以bear和make为例,介绍详细操作:
- 单击左上角,选择“Ctrl+Shift+`”打开 “终端”。 。或者使用快捷键
- 在终端窗口执行“bear make”命令进行编译,Makefile的内容如下:
default: g++ -g -o helloworld src/helloworld.cpp -DVERBOSE
- bear在根目录生成了“compile_commands.json”文件后,CodeArts IDE Online提示是否将包含此文件的目录,设置为compileCommands值,单击“Yes”。
- CodeArts IDE Online提示是否重新加载“compile_commands.json”使配置生效,单击“Reload”。