问题标签 [clang-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
31931 浏览

git - clang-format 可以告诉我是否需要更改格式?

有没有一种方法可以clang-format在报告文件是否符合指定格式的模式下运行?一种试运行模式,它报告是否需要更改,但不进行更改。理想情况下,如果文件需要更改,我希望 clang-format 只返回一个非零退出代码。或者,更理想的是,非零退出代码和标准输出上需要更改的文件列表。

我试图保持问题的通用性,以便更多人可以回答,但我想做的是编写一个 git pre-commit 钩子,它将拒绝任何与预期 .clang-format 不匹配的提交。在索引中的文件列表上运行 clang-format 很容易。但很难知道 clang-format 是否真的改变了任何东西。

我有一个基于-output-replacements-xml(我将作为答案发布)的潜在解决方案,但这是一个 hack,我觉得这应该更简单。欢迎评论/建议、编辑、不同的答案/方法。

0 投票
1 回答
499 浏览

objective-c - 返回类型后空格的 clang-format 样式选项

我想找出哪个clang-format样式选项负责在Objective-C中插入(或删除)返回类型和方法名称之间的空格。我无法在 clang-format 样式指南中找到此选项。

例子:

对比

0 投票
4 回答
6357 浏览

xcode - 枚举的 clang 格式样式选项

有谁知道如何配置 clang-format 以将枚举保持在单独的行上?

IE

对比

编辑:

以下是我用来匹配 Apple 的 Objective-C 样式指南的样式选项。

http://pastebin.com/0cTEhvBv

0 投票
1 回答
274 浏览

clang - Clang 格式中断 #include 双引号

我是 Clang 格式的新手。

我使用 ./bin/clang-format -style=google -dump-config > .clang-format 作为我的基本 .clang-format。

在此基础上,我根据我的定制需求更改了一些参数。

但是,在我将 column_limits 从 80 更改为 0 之后(我只想使用我的个人决定打破界限),我的全部#include "header.h"变成:

有点奇怪。我已经为此苦苦挣扎了一整天。但问题仍然存在。

顺便说一句,我所有的#include 都没有这个问题

谁能给我一些关于这个的线索?

0 投票
5 回答
8550 浏览

c++ - 使用 clang 格式缩进预处理器指令

我正在开发一个 c++ 项目,我在其中使用了很多#pragma omp. 我使用美妙的 clang 格式来保持整洁,但它总是删除所有预处理器指令的缩进。有没有办法改变这种行为?还是有其他更值得推荐的格式化工具?还是我应该完全避免使用这些工具?

0 投票
2 回答
21154 浏览

c++ - 如何标记一个区域以使 clang-format 不会触及它?

例如,在 MySQL++ 库中,可以使用宏来定义基于 sql 表定义的简单结构,如下所示:

问题是 clang-format 将以一种更难以阅读的方式重新格式化它(每个参数都在一个新行上)。大多数代码格式化程序可以识别特殊的 format-off / format-on 注释,但我在 clang-format 手册中没有找到类似的东西。

0 投票
2 回答
5116 浏览

c++ - clang-format breaks lint annotations

We use lint in our codebase at work for C/C++, I'm trying to start integrating clang-format in my workflow as well.

Unfortunately, lint occasionally requires annotations to ignore a specific check, either of the format:

or

Specifically, if there's a space between the opening token for the comment and 'lint', it doesn't recognize it as an annotation directive. Unfortunately, the default settings I have for clang-format see that as an error and helpfully insert the space.

Is there any way to get clang-format to recognize comments matching that pattern and leave them alone? Right now I'm using 3.4, but could upgrade if needed.

0 投票
2 回答
3227 浏览

objective-c - 如何用clang-format格式化objective-c块?

我有以下代码,例如:

当我对其应用 clang-format 时,它变成:

如您所见,块内的代码出现在同一行。但我应该总是在一个新的路线上。

如何正确设置 clang-format?我的以下设置文件:

0 投票
2 回答
15014 浏览

c++ - 可以clang格式将大括号添加到单行if语句等

是否可以选择 clang-format 为所有 if()/do/while 语句等添加大括号?

例如

使用

0 投票
0 回答
274 浏览

objective-c - 带有换行符的 Clang 格式 Objective-C 方法

我正在使用 clang-format 通过Travis Jeffery 的项目格式化我的代码。我正在开发一个自定义的 .clang 格式设置以适应我们的风格指南。我无法弄清楚的一件事是如何采用如下所示的长方法名称。

并将其格式化为如下所示。这就是我希望它看起来的样子。

当我应用谷歌风格推荐时,我得到以下,这不是我想要的样子。

这符合我们的列宽需求,但不符合我们的内部样式指南。我无法弄清楚实现我的目标需要哪些 clang 格式的标志组合。任何见解将不胜感激。