【问题标题】:Using clang-format in CLion在 CLion 中使用 clang 格式
【发布时间】:2016-04-11 10:28:28
【问题描述】:

我想在 CLion 中使用 clang-format 格式化我的代码。我已经完成了设置,但没有找到任何允许我运行外部命令来转换代码的设置。这些事情在 CLion 中通常是如何完成的?

【问题讨论】:

标签: c++ clang clion clang-format


【解决方案1】:

您可以在 CLion 中使用外部工具

转到File->Settings->Tools->External Tools 并点击加号。

应该会弹出一个窗口。使用您选择的名称。

对于Tool settings 选项卡,我正在使用此配置:

  • 程序:clang-format-3.7(您应该在此处使用可执行文件的名称)

  • 参数:-i $FileName$

  • 工作目录:$FileDir$

现在,打开文件后,您可以转到 Tools->External tools 并运行上面的配置。它基本上调用 clang-format 并进行就地格式化。

您也可以为其设置自定义键盘映射,只需在“设置”菜单的“键盘映射”中搜索您的外部工具的名称即可。

【讨论】:

  • 谢谢,这正是我想要的!
  • 是否可以将其应用于所有文件? Clion 格式化选项指南是否有任何 clang 格式?
  • @DuckQueen:clang-format 默认使用 LLVM 样式,但也可以使用其他样式。 CLion 支持大多数(如果不是全部)这些样式,您可以这样设置:twitter.com/clion_ide/status/758203475704635392
  • 每当您保存文件时,我都在努力让 clang-format 运行。这些说明很有帮助:marcesher.com/2014/03/30/…
【解决方案2】:

CLion 2019.1 的最新版本已原生支持 ClangFormat。

对于以前的版本,请转到 File->Preferences->Plugins 并搜索 ClangFormatIJ。安装这个插件。

它安装上下文菜单以调用本地安装的clang-format 来获取文件或选择。它还为“使用 clang-format 重新格式化当前语句”操作设置了快捷键。

这个选项在 CLion 218.3 中非常适合我,但是它也可能包含在早期版本中。

【讨论】:

  • ClangFormatIJ 超级慢...我的意思是当我按下代码格式的快捷方式时,有时需要 1-3 秒来更新代码...如果您在格式化过程中保存文件,它将破坏您的代码(剪切一些零件或其他奇怪的东西)。当您多次按下它时,它也会挂起 clion ......我认为是某种僵局。 Check for issues
  • 可能取决于。我从来没有遇到过这个问题。好消息是每个人都可以期待在下一个版本中对 clang 格式的原生支持。这是一个已经计划好的任务CPP-4809
【解决方案3】:

之前的答案效果很好,但不允许在保存时执行 clang-format 而不使用不适用于我正在使用的 Vim 仿真插件的解决方法。

这是一个在保存时执行 clang-format 的解决方案,并且在我遇到的每种情况下都能正常工作。

  • 首先您需要安装File Watchers 插件。
  • 从那里你需要去File->Settings->Tools->File Watchers并创建一个自定义模板
  • 我使用以下设置在保存当前打开的文件之一时执行clang-format。您可以调整这些设置以满足您的需求

    • 例如,如果您希望在文件更改时自动执行clang-format(无需保存),您可以启用Advanced Options->Auto-save edited files to trigger the watcher

File Watchers 插件的文档:https://www.jetbrains.com/help/clion/using-file-watchers.html

【讨论】:

    【解决方案4】:

    由于 CLion 191 EAP ClangFormat 是 supported from the box.

    【讨论】:

    • 感谢您的链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 2017-03-19
    • 2017-10-30
    • 2020-12-13
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多