Zircon的编辑器集成


英文原文快照


YouCompleteMe

YouCompleteMe是基于语义的代码补全引擎,它原本是配合vim一起工作的,但它也可以通过ycmd与其他编辑器进行集成。

在你的编辑器中安装YouCompleteMe

安装指南

注意:由于库的兼容性错误,建议不要使用Homebrew在MacOS上安装YCM,请改用官方的安装指南。

gLinux(仅Googler有效)

译者注:仅对内部googler适用,在翻译中已省略

生成编译数据库

YouCompleteMe(和其他工具,如clang-tidy)需要JSON编译数据库来指定每个文件的编译方式,该数据库通常存储在名为compile_commands.json的文件中。有以下多种方法为Zircon生成该数据库。

compiledb-generator

compiledb-generator是生成编译数据库的推荐方法,它的工作原理是在no-op模式下运行make并解析输出。所以它可能不如bear准确,但可以非常快速地生成完整的数据库,而不需要一次完整的构建。

要使用它,请从GitHub下载并运行(并确保compiledb在PATH中)

  1. cd "${ZIRCON_DIR}"
  2. compiledb -o compile_commands.json -n make <make args>

Bear

Bear截获在构建期间执行的exec(3)调用,并且修改命令行,使其看起来像C/C++编译器的调用,所以它可以确保准确地捕获编译期间使用的命令。但是它无法增量式地维护编译数据库,因此需要执行完整的构建。

安装Bear

你可以尝试使用系统的包管理器(如apt-get,brew)来安装Bear,但是需要2.2.1或更高版本的Bear才能匹配到Zircon使用的编译器名称。Homebrew和Debian的testing版本都是足够新的,你也可以选择从GitHub来安装它。

在Zircon构建系统上调用Bear

每当源代码或makefile发生影响包含头文件或类型的更改时,或者当你添加/删除/移动文件时,你都需要调用Bear,尽管使用过时的数据库并没有什么坏处。

调用Bear非常简单:

  1. cd "${ZIRCON_DIR}"
  2. make clean
  3. bear make -j$(getconf _NPROCESSORS_ONLN)

上述命令将在本地目录中创建compile_commands.json文件。

使用

YouCompleteMe使用compile_commands.json来补全代码并查找符号的定义/声明。有关这方面使用的详细信息,请参阅编辑器的YouCompleteMe文档。

YouCompleteMe可以自动提取json文件,如果你想将其移出zircon代码树,可以将该文件移动到其父目录。

另见

有关Fuchsia的Vim集成,请参阅(英文原文)