EditorConfig每个参数的新行用于函数调用

时间:2018-07-20 07:57:11

标签: c# editorconfig

我一直在拖网文档,我不认为这是一个选项,但基本上我想将函数调用的每个参数强制放在新的一行。

例如我讨厌这个:

var result = GetResult(request, startDate, endDate, myTypes,
                    false, false, pageNumber);

我更讨厌这种情况(每行的参数数量不同):

var result = GetResult(request, startDate, endDate, myTypes,
                    person, thing, 
                    false, false, pageNumber, penny, job, situation, context);

我希望您有一个editorconfig条目,才能使以上内容变为:

var result = GetResult(
    request, 
    startDate, 
    endDate, 
    myTypes,
    false, 
    false, 
    pageNumber);

var result = GetResult(
    request, 
    startDate, 
    endDate, 
    myTypes,
    person, 
    thing, 
    false, 
    false, 
    pageNumber, 
    penny, 
    job, 
    situation, 
    context);

理想情况下,我可以在强制执行上述操作之前指定参数的最大数量,但这可能是个白日梦。我想要1或2,甚至3个参数保留在下面的一行上:

var result1 = GetResult(request);
var result2 = GetResult(request, startDate);
var result3 = GetResult(request, startDate, endDate);
//only after 3 force the rule
var result4 = GetResult(
    request, 
    startDate, 
    endDate, 
    myTypes);

2 个答案:

答案 0 :(得分:1)

使用here中记录的[['a', 'b'], ['b', 'c']] 。通过收缩长度大于此值的线来做您想做的事情,但只能间接地做将该值设置为max_line_length之类的。

注意:漂亮is 80的类似选项。

答案 1 :(得分:0)

我不知道特定于 EditorConfig 的解决方案,但是如果您使用 Rider(或我假设的 ReSharper),您可以在 Editor -> Code Style 处更改设置-> C# -> Line Breaks and Wrapping

Arrangement of Method Signatures 下,将 Wrap formal parameters 设置为 Chop if long or multiline。 在 Arrangement of Invocations 下,将 Wrap invocation arguments 设置为 Chop if long or multiline

来自 Rider 的代码样式预览窗格:

enter image description here