5

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

例如我讨厌这个:

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);
4

2 回答 2

2

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

在 下Arrangement of Method Signatures,设置Wrap formal parametersChop if long or multiline。在 下Arrangement of Invocations,设置Wrap invocation argumentsChop if long or multiline

从 Rider 的代码样式预览窗格中:

在此处输入图像描述

于 2021-03-05T16:53:06.000 回答
1

使用max_line_length,记录在这里。做你想做的事,但只是间接地,通过收缩长度超过这个值的线。将值设置为类似80.

注意:Prettier 的类似选项 printWidth.

于 2020-06-26T00:09:42.537 回答