标签: code-formatting

保存时格式化C/C++代码

Eclipse的格式化选项避免了我与其他用户的许多冲突,并确保我的代码看起来总是"干净"(特别是关于我的git提交).

我知道Java编辑器中的"保存时格式化"选项,但我在C/C++中找不到.

这是故意的吗?

我希望有一天能看到这样的选择吗?或者也许我看不够?

c c++ eclipse code-formatting

29
推荐指数
3
解决办法
4919
查看次数

声明在C#6中使用字符串插值的长字符串

我通常通过连接来包装长字符串:

Log.Debug("I am a long string. So long that I must " +
    "be on multiple lines to be feasible.");
Run Code Online (Sandbox Code Playgroud)

这非常有效,因为编译器处理字符串文字的连接.我也认为这是处理这个问题最简洁的方法(选项在这里称重).

这种方法适用于String.Format:

Log.Debug(String.Format("Must resize {0} x {1} image " +
    "to {2} x {3} for reasons.", image.Width, image.Height,
    resizedImage.Width, resizedImage.Height));
Run Code Online (Sandbox Code Playgroud)

但是,我现在希望String.Format在这些情况下不再使用,因为C#6的字符串插值更具可读性.我担心的是,我不再有一种高效而又干净的方式来格式化长字符串.

我的问题是编译器是否能以某种方式优化类似的东西

Log.Debug($"Must resize {image.Width} x {image.Height} image " +
    $"to {resizedImage.Width} x {resizedImage.Height} for reasons.");
Run Code Online (Sandbox Code Playgroud)

进入上面的String.Format等价物,或者如果我可以使用的替代方法效率不高(由于不必要的连接),同时保持我的代码结构清晰(根据上面链接中提出的点).

c# code-formatting

29
推荐指数
3
解决办法
7005
查看次数

将一行Perl代码分成两行的正确方法是什么?

$ cat temp.pl
use strict;
use warnings;

print "1\n";
print "hello, world\n";

print "2\n";
print "hello,
world\n";

print "3\n";
print "hello, \
world\n";

$ perl temp.pl
1
hello, world
2
hello,
world
3
hello, 
world
$
Run Code Online (Sandbox Code Playgroud)

为了使我的代码易于阅读,我想将列数限制为80个字符.如何将一行代码分成两行而没有任何副作用?

如上图所示,简单\不起作用.

这样做的正确方法是什么?

perl code-formatting

28
推荐指数
3
解决办法
5万
查看次数

来自checkstyle配置的IntelliJ IDEA代码格式

我决定为android maven插件做贡献.

他们使用非常具体的代码样式格式.我需要一些时间来修改IDEA代码格式规则以满足他们的要求.

幸运的是有checkstyle配置.我已经为IDEA安装了check-style插件,并立即看到我当前格式错误的位置.

不幸的是,我没有找到将checkstyle配置导入IDEA格式规则的方法.

如果有可能,我很感兴趣.

code-formatting intellij-idea checkstyle

28
推荐指数
3
解决办法
3万
查看次数

28
推荐指数
2
解决办法
9525
查看次数

下一行的持续运营商是否存在分号插入危险?

从历史上看,我喜欢打断表达式,以便在续行中显示"它明显不完整"的偏见:

var something = foo + bar
    + baz(mumble);
Run Code Online (Sandbox Code Playgroud)

这种态度来自于使用分号来终止表达式的语言.由于没有分号,第一行显然已经不完整了,所以最好让读者清楚第二行不完整.

替代方案是:

var something = foo + bar +
    baz(mumble);
Run Code Online (Sandbox Code Playgroud)

这对我来说不是那么好.现在告诉它baz(mumble);不是独立的唯一方法(缩进除了)是扫描你的眼睛到前一行的末尾. (这可能是长的,因为你需要首先打破它.)

但是在奇怪的JavaScript领域,我开始看到人们将代码从看起来像第一种形式的东西改为第二种形式,并警告"自动分号插入".它肯定会引起一些令人惊讶的行为.当我把"学习自动分号插入是什么以及我是否应该这样做"放入我的无限任务队列时,并不是真的想深入研究那个切线.

当我确实调查它时,我发现自己半确定......但不确定......我对它的使用方式没有危险.似乎问题来自于我是否已经停止了+事故并写道:

var something = foo + bar
    baz(mumble);
Run Code Online (Sandbox Code Playgroud)

...然后JavaScript会foo + bar为您插入分号,因为这两行都是完整的表达式.我推断,或许那些其他JavaScript程序员认为偏向"明显有意不完整"的位到最后一行是更好的,因为它指出了分号不在的位置.

然而,如果我已经正确地阐述了我的前提,那么我正在以一种随后的线条"明显不完整"的方式塑造我的虚线.如果情况并非如此,那么我首先不会认为我的方式是优势.

我是否正确,我的方式不是我描述如何使用线延续的条件的风险?是否有任何"看似不完整"的表达陷阱实际上以令人惊讶的方式完成?

为了提供一个"以令人惊讶的方式完成"的例子,考虑是否+ 1;可以将其解释为在一条线上只是正面的.它似乎可以:

加一个分号

但是jsfiddle给出了6个:

var x = 3 + 2
+ 1;
alert(x)
Run Code Online (Sandbox Code Playgroud)

也许这只是控制台中的一个怪癖,但它让我担心我的"只要第二行不是完全表达的解释就可以了".

javascript newline code-formatting ecmascript-5

28
推荐指数
2
解决办法
952
查看次数

ReSharper格式化:对齐相等的操作数

Google员工注意,此问题有些过时,因为ReSharper 2017.3.1的当前版本现在支持所请求的功能

我喜欢格式化我的代码以对齐相等操作数的右侧.
像这儿:

bool    canRead     = false;
bool    canReadClass    = true;
string  className   = boType.Name;
Run Code Online (Sandbox Code Playgroud)

我最近切换到ReSharper并发现它非常有用,但找不到允许我以描述的方式格式化代码的选项.

你知道是否有这样的选项/插件?
也许除了ReSharp解决方案之外您还知道吗?

编辑:
如何决定代码的哪一部分应该对齐?
我的约定是将所有变量对齐在同一个块中.
通过"块"我的意思是部分代码没有被空行分割.

例如

// First block
int      count     = 10;
string   name      = "abc";
bool     calculate = true;
.....
.....
// Second block
MyOwnType    myType   = new MyOwntype();
int          count    = 10;
Run Code Online (Sandbox Code Playgroud)

编辑-2
我为此打开了R#票.如果有兴趣的话请投票!

c# resharper code-formatting

27
推荐指数
4
解决办法
8230
查看次数

在Vim中格式化Ruby代码

现在转移到Vim.在TextMate中,我可以通过点击格式化代码Cmd- - .Alt [我如何在Vim中实现同样的目标?


请参阅以下答案以获取该命令.我发现我还需要以下内容,.vimrc以便Vim知道如何自动提交Ruby.

if has("autocmd")
  filetype indent on
endif
Run Code Online (Sandbox Code Playgroud)

ruby vim code-formatting

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

Emacs Ruby方法参数缩进

我想制作emacs缩进ruby方法调用,如:

foo(
  :blah => 'bar',
  :shibby => 'baz'
)
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是:

foo(
  :blah => 'bar',
  :shibby => 'baz'
  )
Run Code Online (Sandbox Code Playgroud)

这是使用ruby-deep-indent-paren,ruby-deep-indent-paren-style,ruby-deep-arglist全部设置为nil.

哈希缩进我喜欢的方式...如果我可以像哈希那样使方法调用缩进我会很高兴.有任何想法吗?

ruby emacs code-formatting

27
推荐指数
2
解决办法
1914
查看次数

BeautifulSoup .prettify()的自定义缩进宽度

有没有办法为.prettify()函数定义自定义缩进宽度?从我可以从它的来源获得 -

def prettify(self, encoding=None, formatter="minimal"):
    if encoding is None:
        return self.decode(True, formatter=formatter)
    else:
        return self.encode(encoding, True, formatter=formatter)
Run Code Online (Sandbox Code Playgroud)

无法指定缩进宽度.我认为这是因为功能中的这一行decode_contents()-

s.append(" " * (indent_level - 1))
Run Code Online (Sandbox Code Playgroud)

其中固定长度为1个空格!(为什么!!)我尝试指定indent_level=4,这只是导致 -

    <section>
     <article>
      <h1>
      </h1>
      <p>
      </p>
     </article>
    </section>
Run Code Online (Sandbox Code Playgroud)

这看起来简直是愚蠢的.:|

现在,我可以解决这个问题,但我只是想确定是否有任何我遗漏的东西.因为这应该是一个基本功能.: - /

如果你有更好的方法来美化HTML代码,请告诉我.

python code-formatting indentation beautifulsoup

27
推荐指数
3
解决办法
7252
查看次数