将.clang格式的代码风格导出到Android Studio

问题描述 投票:0回答: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

如您所见,无论使用什么 IDE,我们都可以对整个存储库使用单个

.clang-format
文件(CLion 和 VS Code 都可以通过此文件进行配置)。但是,我找不到一种方法来强制 Android Studio 也使用那里定义的样式。我应该提到的是,Android 项目包含本机 C++ 代码,我想使用相同的代码风格对其进行格式化。

我正在考虑多种方法来实现这一目标,但没有一个奏效。我试过:

  1. 强制 CLion 使用
    .clang-format
    并导出 IDEA XML 设置 – 不起作用,因为这些设置仅包含启用 clang 格式支持的指令
  2. 找到一种将
    .clang-format
    转换为
    .editorconfig
    的方法,这是 AS 支持的 - 找不到任何工具,并且不确定这两个规格是否足够重叠。
  3. 寻找一些插件,自定义保存操作等 - 研究正在进行中,到目前为止还没有。

有人有可行的解决方案或我可以尝试的其他想法吗?

android c++ android-studio intellij-idea clang-format
3个回答
1
投票

您可以使用 Android Studio 的外部工具直接在要格式化的文件上调用 clang-format 可执行文件。

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

任一选项都会格式化当前在编辑器中聚焦的文件。

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


0
投票

尝试查看文件>设置>语言和框架>C/C++如果你想使用内部android工作室clang-tidy或外部工作室或clangd,你将能够进行更改。


0
投票

只需启用

ClangFormat
选项即可:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.