Невозможно сделать так, чтобы форматы переключения Resharper (или VS 2019) менялись так, как я хочу - PullRequest
1 голос
/ 04 мая 2019

Я использую возможности Resharper для автоматического переформатирования кода, но я не могу понять, как заставить его (или, в данном случае, Visual Studio) размещать строки так, как я хочу, в операторе switch. Можете ли вы указать мне настройку, которая мне нужна, чтобы это произошло?

(К вашему сведению: я использую последнюю версию Resharper и Visual Studio 2019)

Скажем, я начинаю со следующего блока кода C #:

if (TargetContext is BgaContext bga)
{
    Status = Strings.FindingBgaCircles;
    bga.FindCirclesAndUpdateScan(ResolutionMmpp, CancellationToken);
}
else if (TargetContext is GrooveContext groove)
{
    Status = Strings.FindingGrooveLine;
    groove.FindLineAndUpdateScan(ResolutionMmpp, CancellationToken);
}

Resharper дает мне возможность превратить его в оператор "switch", так что я воспользуюсь им. Как только он закончит изменение кода, я вижу это:

switch (TargetContext)
{
case BgaContext bga:
    Status = Strings.FindingBgaCircles;
    bga.FindCirclesAndUpdateScan(ResolutionMmpp, CancellationToken);

    break;
case GrooveContext groove:
    Status = Strings.FindingGrooveLine;
    groove.FindLineAndUpdateScan(ResolutionMmpp, CancellationToken);

    break;
}

Но мне не нужна дополнительная строка перед "break", и я do хочу строку после нее. Другими словами, я хочу, чтобы Resharper выглядел так:

switch (TargetContext)
{
case BgaContext bga:
    Status = Strings.FindingBgaCircles;
    bga.FindCirclesAndUpdateScan(ResolutionMmpp, CancellationToken);
    break;

case GrooveContext groove:
    Status = Strings.FindingGrooveLine;
    groove.FindLineAndUpdateScan(ResolutionMmpp, CancellationToken);
    break;
}

Я пытался пройти все настройки форматирования Resharper C # один за другим, и я не могу найти тот, который влияет на него. Я искал в настройках слова «switch», «case» и «break», но ни одно из них, похоже, не влияет на то, как оно смешивает линии. Я сделал то же самое для Visual Studio, но без радости.

Я уверен, что это должно быть прямо передо мной, и я просто скучаю по нему. Есть ли где-нибудь настройки, которые дадут мне то, что я хочу?

1 Ответ

0 голосов
/ 06 мая 2019

Чтобы узнать о настройках форматирования, влияющих на ваш код, выберите небольшой фрагмент кода, нажмите Alt-Enter и выберите Format selection > Configure.Например, чтобы узнать настройки, влияющие на пустые строки между двумя строками кода, выберите фрагмент кода, начиная с последнего символа первой строки кода и заканчивая первым символом второй строки кода.

Такженачиная с ReSharper 2018.3 вы также можете попросить ReSharper автоматически определить настройки форматирования.Выберите фрагмент кода, нажмите Alt-Enter и выберите Format selection > Detect formatting settings.

. В ReSharper 2019.1 вам необходимо установить следующие настройки, чтобы получить желаемое форматирование:

  • Blank lines > Blank Lines in Code > Before statements with control transfer= 0
  • Blank lines > Blank Lines in Code > Before "case" in switch statement = 1
...