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中)
cd "${ZIRCON_DIR}"
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非常简单:
cd "${ZIRCON_DIR}"
make clean
bear make -j$(getconf _NPROCESSORS_ONLN)
上述命令将在本地目录中创建compile_commands.json
文件。
使用
YouCompleteMe使用compile_commands.json
来补全代码并查找符号的定义/声明。有关这方面使用的详细信息,请参阅编辑器的YouCompleteMe文档。
YouCompleteMe可以自动提取json
文件,如果你想将其移出zircon
代码树,可以将该文件移动到其父目录。
另见
有关Fuchsia的Vim集成,请参阅(英文原文)。