Emacs¶
ESLint¶
请参阅 devtools 文档,其中介绍了如何在 Emacs 中集成 ESLint。
C/C++ 开发包¶
Emacs C++ 编程通用指南¶
以下指南概述了 emacs 的 C++ 编辑功能。
建议通读这些指南以了解可用的功能。本节的其余部分专门介绍 Mozilla/Gecko 包的特定设置。
irony(基于 LLVM/Clang 的代码补全)¶
有关 irony-mode 安装说明,请访问 irony-mode github 仓库。
irony-mode 需要一个 编译数据库。
请注意,irony-mode 默认使用 elisp 解析 compile_commands.json
文件。由于 gecko 是一个非常大的代码库,此文件很容易达到几兆字节,这可能导致 irony-mode 在 gecko 文件上加载需要几秒钟。
建议使用 irony-mode 的此分支,它需要 boost System 和 Filesystem 库。
建议检查此错误以将此补丁合并到 irony-mode 的主分支,以查看是否可以使用该分支或是否可以使用主分支仓库。使用 Boost 版本的 irony-mode 服务器将文件加载时间缩短到 1 秒以内。
Projectile(项目管理)¶
有关 projectile 安装说明,请访问 projectile github 仓库。
Projectile 预先配置了许多项目类型。由于 gecko 使用了自己的特殊构建系统 (mach),因此需要添加新的项目类型。这可以通过将以下 elisp 配置命令添加到您的 emacs 配置文件中来完成。
(projectile-register-project-type 'gecko
'("mach" "moz.build")
"python mach --log-no-times build"
"python mach mochitest"
"python mach run")
假设 projectile-global-mode 已开启,这将允许 projectile 在 gecko 仓库中工作时运行正确的命令。
gdb¶
Emacs 与 gdb 具有良好的集成,尤其是在使用 gdb-many-windows 时。
但是,当通过 mach 调用 gdb 时,需要传入一些特殊参数以确保使用正确的显示模式。要在 Firefox 上使用 M-x gdb 与 mach,请使用以下命令
gecko_repo_directory/mach run --debug --debugparams=-i=mi