问题:有没有办法在Android Studio中导入
.clang-format
代码风格进行原生开发?
背景:
大家好
我目前正在做一个跨平台的C++项目,其中也涉及到Android。我们有多个子项目,包括一个独立于平台的通用代码库。
整个存储库的结构看起来像这样:
.
├── .idea - Settings for CLion
├── .vscode - Settings for VS Code
├── app
│ ├── android - Full Android project generated by Android Studio
│ │ └── .idea - Settings for Android Studio
│ └── linux - Project for targeting hardware based on Linux
├── core - Platform-independent library with business logic etc.
└── .clang-format - Clang-format configuration file for the whole repository
如您所见,无论使用什么 IDE,我们都可以对整个存储库使用单个
.clang-format
文件(CLion 和 VS Code 都可以通过此文件进行配置)。但是,我找不到一种方法来强制 Android Studio 也使用那里定义的样式。我应该提到的是,Android 项目包含本机 C++ 代码,我想使用相同的代码风格对其进行格式化。
我正在考虑多种方法来实现这一目标,但没有一个奏效。我试过:
.clang-format
并导出 IDEA XML 设置 – 不起作用,因为这些设置仅包含启用 clang 格式支持的指令.clang-format
转换为 .editorconfig
的方法,这是 AS 支持的 - 找不到任何工具,并且不确定这两个规格是否足够重叠。有人有可行的解决方案或我可以尝试的其他想法吗?
您可以使用 Android Studio 的外部工具直接在要格式化的文件上调用 clang-format 可执行文件。
它不像内置格式化程序那么集成(例如“撤消”会提示您从磁盘重新加载),但它可以完成工作。创建该工具后,您可以使用 CTRL+SHIFT+A 运行它,然后输入“clang-format”(或您选择的名称)。您还可以使用 Android Studio 的 Keymap 来运行该工具。在创建此键映射之前,首先关闭并重新打开“设置”菜单,否则 clang 格式的外部工具将无法供您创建快捷方式。
任一选项都会格式化当前在编辑器中聚焦的文件。
-style=file
参数将告诉 clang-format 在正在格式化的文件的父目录中查找您的 .clang-format
文件。 -i
标志将告诉 clang-format 在线更新文件(而不是打印到标准输出)。 $FilePath$
是外部工具提供的替换变量,将被当前焦点文件替换。
只需启用
ClangFormat
选项即可: