许多选项包括Force值选项:
在嵌套的parens之间添加或删除空格
sp_paren_paren{Ignore,Add,Remove,Force}
这是什么意思?它有什么不同Add?
我正在使用uncrustify 0.52.当我针对Objective-C文件运行它时,它想要转换方法调用,如下所示:
[NSApp beginSheet:startTimerDialog
modalForWindow:nil
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)
对此:
[NSApp beginSheet:startTimerDialog
modalForWindow:nil
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)
我更喜欢第一个版本,冒号对齐.在uncrustify配置文件中是否有一个选项可以支持我想要的内容,或者只是不支持对齐的冒号?
如果unrustify不能对齐冒号,有没有办法防止它排除我自己对齐的冒号?
更新:
mmc注意到此功能在Build 1581版本的Uncrustify svn存储库中可用.它处于unrustify 0.54.align_oc_msg_colon = true在配置文件中设置以启用它.
进一步更新
对于将来找到此答案的人:.cfg文件中的首选项名称已更改.现在align_oc_msg_colon_span= 1要获得上述行为.现在还有一个align_oc_decl_colon = true将为多行声明做名称的事情.
是否有Uncrustify的配置文件,它将根据Google的Objective-C风格指南格式化Objective-C ?
Uncrustify的示例配置文件看起来有点令人生畏,我希望我不需要从头开始构建一个...
Uncrustify非常棒,并且可以很好地整理代码.但是,我在文件中有一些C代码,我不希望Uncrustify改变.有什么方法可以防止Uncrustify触及这个,可能是通过在代码周围的注释中放置特定的标签或什么?
在我的vimrc中,我通过以下命令调用Uncrustify:
%!uncrustify -l CPP -c D:\uncrustify\default.cfg
Run Code Online (Sandbox Code Playgroud)
在那之后的一些代码我得到Windows致命错误:
但是当我使用-f选项在控制台中对相同代码调用uncrustify时,没有错误.
如何更改我的vimrc以避免将来出现此类错误?什么可以调用此错误?
有没有办法让Xcode不重新格式化格式化的代码,或者是否有像uncrustify这样的工具可以格式化使用块的源代码?
对于objective-c中的块,代码变得难以阅读.一种解决方案是写出块定义并在新行上放置花括号,如下所示:
dispatch_async(dispatch_get_global_queue(0, 0), ^(void)
{
//block of code
});
Run Code Online (Sandbox Code Playgroud)
和:
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop)
{
//block of code
}];
Run Code Online (Sandbox Code Playgroud)
美丽而轻松!
但是Xcode不保留这种格式,我找不到以这种方式制作unrustify输出代码的方法.Uncrustify真的很好,但也许块太新了?
有任何想法吗?
[免责声明:我知道这可能变成"巨魔小时",但代码应该是一样容易地阅读,并在同一列有括号,使事情变得更加清晰(对我来说).特别是如果你在一个街区内有几个街区.因此,如果你不喜欢这样的代码,请尝试忽略这个问题.]
有没有办法让ctags在C中处理多行函数原型?
我已经四处寻找并且--fields=+S应该做多线原型,但我不能让它工作:
ctags -x --c-kinds=pf --fields=+S file
Run Code Online (Sandbox Code Playgroud)
文件:
int
foo(int
x, int y
);
Run Code Online (Sandbox Code Playgroud)
ctags只返回:
foo(int
Run Code Online (Sandbox Code Playgroud)
(注意,返回类型也缺失)
最终我想获得类似的输出
int foo(int x, int y);
Run Code Online (Sandbox Code Playgroud)
要么
int foo(int x, int y
Run Code Online (Sandbox Code Playgroud)
是--fields=+S不是正确的方法?我缺少哪些ctags字段?一般的指针?
如果没有办法在ctags中做任何推荐的程序?(我目前正在寻找unrustify)
我想将uncrustify(通过美化Atom编辑器和配置文件)应用于CUDA代码.但是,我不知道如何告诉uncrustify识别具有以下结构的CUDA内核调用:
kernelName <<<N,M>>> (arg0,arg1,...);
Run Code Online (Sandbox Code Playgroud)
然而,解决问题<<< >>>并且应用它会产生以下不愉快的结果
kernelName << < N, M >> >
(arg0,arg1,...);
Run Code Online (Sandbox Code Playgroud)
我想让它看起来更像一个函数调用,也避免格式化<<<为<< <.理想情况下,结果看起来像
kernelName <<< N, M >>> (arg0,arg1,
...); // line break if argument list is too long
Run Code Online (Sandbox Code Playgroud)
我可以添加哪些参数config.cfg来实现上述结果?
非常感谢你.
我正在尝试配置uncrustify(源代码美化器)以避免在先前打开的括号下对齐.例如,我希望代码看起来像这样(来自文件
indent_paren.c):
void f(void)
{
while (one &&
two)
{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在上面的代码上运行uncrustify时,该行two)
缩进以与上面的行对齐(:
void f(void)
{
while (one &&
two)
{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用从源代码编译的最新版本的uncrustify(0.59),以及此测试的以下配置设置(在文件中indent_paren.cfg):
indent_with_tabs = 0
indent_columns = 4
indent_paren_nl = false
indent_bool_paren = false
Run Code Online (Sandbox Code Playgroud)
我正在按如下方式调用uncrustify:
uncrustify -c indent_paren.cfg indent_paren.c
Run Code Online (Sandbox Code Playgroud)
我发现版本0.56(从Ubuntu 11.04的存储库安装)具有相同的行为.我使用了错误的配置设置,还是其他错误?谢谢你的帮助.
我的公司我设置了持续集成测试,当有人在服务器上推送代码时我会运行测试.
现在我想检查代码是否与我们的基本编码规则匹配,第一条规则是"在代码上运行mogrify!"
有什么可以检查"现成的"?这个分析的输出可以存储在文件或其他东西上.
谢谢