将.clang-format代码样式导出到Android Studio

3

问题: 在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

正如您所看到的,我们可以使用单个 .clang-format 文件来配置整个代码库,而不管使用的是哪个IDE(无论是CLion还是VS Code都可以通过该文件进行配置)。但是,我找不到一种方法来强制Android Studio也使用在那里定义的样式。我应该提到,Android项目包括本机C++代码,我希望使用相同的代码风格进行格式化。
我考虑了多种实现方式,但没有一种成功。我已经尝试过:
  1. 强制CLion使用.clang-format并导出IDEA XML设置-这行不通,因为设置仅包括启用clang-format支持的指令
  2. 查找将.clang-format转换为AS支持的.editorconfig的方法-找不到任何工具,并且不确定这两个规范是否有足够的重叠。
  3. 寻找一些插件、自定义的保存时操作等-正在进行研究,目前还没有找到。
有人有可行的解决方案或其他建议吗?
2个回答

1

您可以使用Android Studio的外部工具直接调用clang-format可执行文件对要格式化的文件进行格式化。AS external tools

它不像内置格式化程序那样集成(例如,“撤消”将提示您从磁盘重新加载),但它可以完成工作。创建工具后,您可以使用CTRL+SHIFT+A运行它,然后键入“clang-format”(或其他您选择的名称)。您还可以使用Android Studio的Keymap运行该工具。在创建此键映射之前,请先关闭并重新打开设置菜单,否则clang-format External Tool尚未出现,您无法创建快捷方式。 AS keymap

任何一种方法都将格式化当前编辑器中聚焦的文件。

-style=file 参数会告诉 clang-format 在被格式化的文件的父目录中寻找 .clang-format 文件。 -i 标志会告诉 clang-format 在行内更新文件(而不是打印到标准输出)。$FilePath$ 是由外部工具提供的替换变量,将被当前聚焦的文件所替换。


0

尝试查看 文件 > 设置 > 语言和框架 > C/C++,您将能够更改是否要使用内部的Android Studio clang-tidy或外部的clangd。 Android Studio设置


1
问题是关于clang-format,而不是你提到的工具。据我所知,在Android Studio中没有clang-format的设置。 - GeeVooL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接