关于Clang Format API,我有很多困惑.
我遇到了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) 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 以我正在寻找的方式获取参数/参数。
我已经尝试了很多东西,但是到目前为止我只能得到这个:
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) 我正在尝试弄清楚如何安装独立的 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 添加的情况下单独构建的说明。
帮助将不胜感激。谢谢你!
我有看起来像这样的代码:
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呢?
非常感谢。
我想用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可根据需要工作。
我一直在尝试将我的 VSCode 设置为与 Clangd 一起作为我的 Cpp 项目的 LSP 服务器。我已经成功建立了 LSP 本身等基本功能,并配置了正确的构建设置以生成索引数据库。
但是我无法让我的 .clang-format 和 .clang-tidy 配置工作。看来,clangd 不会搜索这些文件。
我怀疑,这可能与 VSCode 在 stdin/stdout 模式下使用 clangd 的事实有关,但是,我不确定。
感谢,并有一个愉快的一天 :)
(我使用 Ubuntu 18.04 和 Clang+LLCM 9.0.0)
我有大括号括起来的列表来初始化数组。我想让数组初始值设定项为数组的每个条目换行,如下所示:
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 格式文件中的格式化行为:
RawStringFormats:
- Delimiters: [pb]
Language: TextProto
BasedOnStyle: google
Run Code Online (Sandbox Code Playgroud)
这些设置对于 C++ 项目是否正确?(例如,语言不应该是 cpp 吗?)
分隔符的“pb”是什么意思,它与“cc”和“cpp”有什么不同?
我试图在 clang 文档中查找信息,但这只会增加我的困惑。
我有一个关于 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)