标签: clang-format

如何为iOS编码配置Allman风格的Clang格式?

关于Clang Format API,我有很多困惑.

  1. 我无法打开.clangformat文件,以便我可以查看并根据我进行配置.
  2. 我需要以Allman风格格式化我的代码.
  3. 我在Google和Stack Overflow上看到了很多文档,但我没有得到任何帮助来实现Allman样式格式化.

我遇到了http://clangformat.com/但是我也没有得到任何帮助来实现Allman风格.

这是我想要的问题和解决方案.

问题#1:

[[NSNotificationCenter defaultCenter]
      addObserver:self
         selector:@selector(captureSearchFiltersNotificationWithSelection:)
             name:kSearchFiltersNotificationWithSelection
           object:nil];
Run Code Online (Sandbox Code Playgroud)

需要#1:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(captureSearchFiltersNotificationWithSelection:)name:kSearchFiltersNotificationWithSelection object:nil];
Run Code Online (Sandbox Code Playgroud)

问题#2:

- (id)initWithNibName:(NSString *)nibNameOrNil
               bundle:(NSBundle *)nibBundleOrNil {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

        if (self) {
                //        listings = [NSMutableArray new];
                self.navTitle = @"Buy";
                searchFilters = [SearchFilter new];

                if ([LocationManager locationManager].location == nil) {
                        selectedSortOption = kSortBuyRefineOptionUndefined;
                }

                else {
                        selectedSortOption = kSortBuyRefineOptionNearMeAsc;
                }
        }
        return self;
}
Run Code Online (Sandbox Code Playgroud)

需要#2:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil 
{
    self = [super …
Run Code Online (Sandbox Code Playgroud)

code-formatting ios clang-format

7
推荐指数
1
解决办法
1623
查看次数

未找到可执行文件;请配置 clang-可执行文件

Clang 格式在 VSCode Linux (Ubuntu) 中不起作用。在 VSCode 中安装后clang-format,我尝试调用它,但出现以下错误:

executable not found; please configure clang-executable. 
Clang-format is available under '/home/alex/.vscode/extensions/ms-vscode.cpptools-0.10.3/LLVM/bin/clang-format'
Run Code Online (Sandbox Code Playgroud)

clang-format visual-studio-code

7
推荐指数
2
解决办法
2万
查看次数

当列超出时,clang-format 强制每个参数/参数占一行?

我试图弄清楚是否可以使用 clang-format 以我正在寻找的方式获取参数/参数。

我已经尝试了很多东西,但是到目前为止我只能得到这个:

SDL_SetRenderDrawColor(renderer,153 + floor(toGreenRed * percentage),51 + floor(toGreenGreen * percentage),51 + floor(toGreenBlue * percentage),255);
Run Code Online (Sandbox Code Playgroud)

格式化成这个:

SDL_SetRenderDrawColor(renderer,
  153 + floor(toGreenRed * percentage),
  51 + floor(toGreenGreen * percentage),
  51 + floor(toGreenBlue * percentage),
  255);
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

SDL_SetRenderDrawColor(
  renderer,
  153 + floor(toGreenRed * percentage),
  51 + floor(toGreenGreen * percentage),
  51 + floor(toGreenBlue * percentage),
  255
);
Run Code Online (Sandbox Code Playgroud)

目前还有这个:

void renderHealthBox( SDL_Renderer *renderer, int sideUiWidth, int yOffset, float percentage, float laksjdlkajsdlkasjdlkasjd) {
Run Code Online (Sandbox Code Playgroud)

格式为:

void renderHealthBox(
  SDL_Renderer *renderer, int sideUiWidth, int yOffset, float percentage, …
Run Code Online (Sandbox Code Playgroud)

c++ clang-format

7
推荐指数
1
解决办法
2144
查看次数

如何在 Fedora 27 上安装和使用 Clang-Format?

我正在尝试弄清楚如何安装独立的 Clang-Format工具。

我已经从我的操作系统 (Fedora 27) 的官方下载页面下载了 Clang 的预构建二进制文件。

但是我没能弄清楚如何运行该工具。

上面的文档说clang-format位于clang/tools/clang-format但是下载的文件中不存在这样的路径。

我在整个下载目录中搜索了“format”,并在 /bin/ 目录中找到了“clang-format”可执行文件。

但是,当我尝试从终端运行它时,如下所示: ./clang-format

终端说: bash: ./clang-format: No such file or directory

(我已更改文件权限以允许执行)

我也研究clang-format过从源代码构建,但我未能找到如何clang-format在没有任何其他 clang 添加的情况下单独构建的说明。

帮助将不胜感激。谢谢你!

c++ code-formatting clang clang-format

7
推荐指数
1
解决办法
1万
查看次数

换行的clang格式的右括号

我有看起来像这样的代码:

EXPECT_EQ(
    subsystem->previousTouchscreenState,
    expectedTouchscreenState
);
Run Code Online (Sandbox Code Playgroud)

当我运行时clang-format,它会将代码段重新格式化为如下所示:

EXPECT_EQ(
    subsystem->previousTouchscreenState,
    expectedTouchscreenState );
Run Code Online (Sandbox Code Playgroud)

这很违反直觉。我希望我的多行函数调用(尽管EXPECT_EQ在本例中是一个宏)在其自己的行上具有右圆括号,缩进到函数名称的级别,如第一个代码段所示。

我该如何完成clang-format呢?

非常感谢。

c++ clang-format

7
推荐指数
1
解决办法
347
查看次数

使用clang-format保留完整函数的短lambda用作中间参数

我想用clang-format格式化代码,并完整保留lambda用作中间函数参数:

void f()
{
    func(this, [this] { return false; }, this);
}
Run Code Online (Sandbox Code Playgroud)

我尝试用clang格式9.0进行的所有操作都将参数包装到下一行,即:

void f()
{
    func(
        this, [this] { return false; }, this);
}
Run Code Online (Sandbox Code Playgroud)

如果没有第一个或/和最后一个参数,则即使内置-style='WebKit'选项也可以提供所需的结果:

void f()
{
    func([this] { return false; }, this); // ok
    func(this, [this] { return false; }); // ok 
    func([this] { return false; });       // ok 
}
Run Code Online (Sandbox Code Playgroud)

自LLVM 8.0起,似乎有所更改(损坏),因为7.1可根据需要工作。

c++ lambda clang-format

7
推荐指数
1
解决办法
190
查看次数

VSCode 中的 Clangd:.clang-format 和 .clang-tidy 文件

我一直在尝试将我的 VSCode 设置为与 Clangd 一起作为我的 Cpp 项目的 LSP 服务器。我已经成功建立了 LSP 本身等基本功能,并配置了正确的构建设置以生成索引数据库。

但是我无法让我的 .clang-format 和 .clang-tidy 配置工作。看来,clangd 不会搜索这些文件。

我怀疑,这可能与 VSCode 在 stdin/stdout 模式下使用 clangd 的事实有关,但是,我不确定。

感谢,并有一个愉快的一天 :)

(我使用 Ubuntu 18.04 和 Clang+LLCM 9.0.0)

c++ clang clang-format visual-studio-code

7
推荐指数
1
解决办法
1163
查看次数

通过 clang-format 用换行符分隔大括号括起来的列表的每个条目

我有大括号括起来的列表来初始化数组。我想让数组初始值设定项为数组的每个条目换行,如下所示:

const char* const array_of_strings[] = {
    "Hey",
    "Hi",
    "Hello",
    "Soup",
    "Atom"
};
Run Code Online (Sandbox Code Playgroud)

不过,clang-format 将此数组格式化为:

const char *const array_of_strings[] = {"Hey", "Hi", "Hello", "Soup", "Atom"};
Run Code Online (Sandbox Code Playgroud)

一旦列表超过ColumnLimit ,通常会进行新的排列。我想要的格式可以使用 clang-format 吗?

clang-format

7
推荐指数
1
解决办法
1460
查看次数

RawStringFormats 和 Delimeters 'pb' 在 clang 格式中的含义

我无法理解以下内容如何影响 clang 格式文件中的格式化行为:

RawStringFormats: 
  - Delimiters:       [pb]
    Language:        TextProto
    BasedOnStyle:    google
Run Code Online (Sandbox Code Playgroud)

这些设置对于 C++ 项目是否正确?(例如,语言不应该是 cpp 吗?)

分隔符的“pb”是什么意思,它与“cc”和“cpp”有什么不同?

我试图在 clang 文档中查找信息,但这只会增加我的困惑。

c++ clang-format

7
推荐指数
1
解决办法
204
查看次数

如何防止短 lambda 被分成两行?

我有一个关于 C++ lambda 的 clang 格式问题。升级到 Clang-Format 15.0.1 后,我注意到短的但不是在线 lambda 的新行为。下面我将它们称为“双行 lambda”。例子:

单行 lambda

// good/unchanged
auto shortLambda= []() { doSomething(); };
Run Code Online (Sandbox Code Playgroud)

两行 lambda:

// unwanted/new behavior
const auto mediumLambda = [some, args, here](More arguments)
{ return doSomething(some, args, here, arguments); };
Run Code Online (Sandbox Code Playgroud)

多线 Lambda:

// good/unchanged
const auto longLambda= [some, args, here](Are here)
{
   auto result =doSomething(some, args, here, arguments); 
   return result;
};
Run Code Online (Sandbox Code Playgroud)

两行 lambda 的期望行为:

// desired
const auto mediumLambda = [some, args, here](More arguments)
{
   return doSomething(some, args, …
Run Code Online (Sandbox Code Playgroud)

c++ lambda clang-format

7
推荐指数
1
解决办法
109
查看次数