您现在的位置是:首页 >技术交流 >Blade项目的IDE支持网站首页技术交流

Blade项目的IDE支持

zzy979 2023-06-12 04:00:02
简介Blade项目的IDE支持

Blade是一个C/C++构建工具,详细介绍见Blade构建工具。虽然功能强大,但是缺少IDE支持。本文介绍如何在Blade项目中使用IDE的智能提示、自动补全、自动跳转等特性。

1.VSCode

VSCode的C/C++插件(ms-vscode.cpptools)提供了C/C++代码的智能提示、自动补全和调试等功能。对于Blade项目,该插件将自动检索项目源文件,支持

  • 代码智能提示和自动补全
  • 相对于项目根目录或build目录的头文件跳转

例如,在Blade构建工具第4节的示例项目中:

VSCode自动补全

缺点:对于大型项目,检索过程将会非常慢,导致自动补全功能经常不可用,并且内存占用也非常高。

2.CLion

CLion只支持Make和CMake两种构建工具。但是,对于不是基于Make或CMake的项目,还可以使用编译数据库(compilation database)来加载项目,从而能够使用CLion提供的IDE特性,详见文档Compilation database

编译数据库是一个描述编译命令的JSON文件,名为compile_commands.json。CLion可以从中提取必要的编译器信息,例如包含路径、编译选项等。Blade使用的底层构建工具Ninja提供了生成编译数据库的工具compdb

仍然以上面的Blade示例项目为例,默认情况下CLion无法进行自动补全和跳转:

无法自动补全

无法跳转到符号

无法跳转到头文件

可以按照以下步骤来生成编译数据库,从而启用CLion的IDE功能:

第1步:在命令行中使用blade命令构建需要的目标,目的是生成Ninja的构建文件build.ninja,可以使用-n选项避免真正执行编译命令:

blade build -n //quick-start:hello_world

构建完成后将在blade-bin目录下生成build.ninja文件。

第2步:使用Ninja生成编译数据库,在项目根目录下执行以下命令:

ninja -f blade-bin/build.ninja -t compdb cc cxx cxxhdrs > compile_commands.json

这将在项目根目录下生成compile_commands.json文件。

第3步:使用CLion打开项目,CLion会自动加载compile_commands.json,加载完成后可以在Build窗口中看到成功信息(忽略其中的红字):

导入成功

之后即可使用CLion提供的IDE特性:

CLion自动补全

CLion智能提示

跳转到符号和头文件功能也都能使用。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。