更新时间:2023-08-07 GMT+08:00
分享

代码编辑

CodeArts IDE Online的C/C++插件功能强大,能够帮助用户编写代码,为得到最佳体验,需要为C/C++插件提供头文件的位置。如果头文件放置在以“include”命名的文件夹中,则C/C++插件会自动识别。

其它情形下,需设置“clangd.includePath”选项(请参考配置头文件路径和宏)。

对于复杂的工程,推荐配置“compile_commands.json”文件(请参考精确配置代码跳转)。

基本编辑操作如下:

登录工作界面请参考启动IDE实例

代码提示

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

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

查找定义

以下三种方式均可以查找符号定义。

  • 将光标移到需要查看的符号上,鼠标右键选择缩略 > 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,可以查看符号引用情况。

配置头文件路径和宏

CodeArts IDE Online可对工程进行自动扫描。但对于需要额外配置头文件路径或者宏的工程,自动扫描与配置可能会失效,此时需要在配置中为工程添加相应配置。

  1. 单击左上角,选择文件 > 首选项 > 首选项
  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”文件后,CodeArts IDE Online会询问是否将此文件配置为“compileCommands”

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

  1. 单击左上角,选择终端 > 新建终端。或者使用快捷键“Ctrl+Shift+`”打开 “终端”
  2. 在终端窗口执行“bear make”命令进行编译,Makefile的内容如下:

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

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

相关文档