Visual Studio: переопределить «умный» отступ только для нескольких определенных строк - PullRequest
2 голосов
/ 03 апреля 2019

Я пишу код vb.net в Visual Studio.У меня включена функция Smart Indenting, и я хочу оставить ее включенной.Тем не менее, есть раздел моего кода, в котором я хочу использовать некоторые дополнительные отступы, чтобы набросать вещи более понятным для человека способом.Я могу перейти к нужному уровню отступа, но как только я перехожу на другую строку, интеллектуальный отступ возвращает строку туда, где она должна быть.

Как добавить дополнительный отступ копределенные строки в моем коде БЕЗ полного отключения Smart Indenting?


Как я хочу это:
Call GetRibbon("Part")
     Call GetTab("3D Model")
          Call NewButton("Custom1")
Call GetRibbon("Assembly")
     Call GetTab("Assemble")
          Call NewButton("Custom2")

Как VS форматирует это:

Call GetRibbon("Part")
Call GetTab("3D Model")
Call NewButton("Custom1")
Call GetRibbon("Assembly")
Call GetTab("Assemble")
Call NewButton("Custom2")

Ответы [ 2 ]

5 голосов
/ 03 апреля 2019

Нет, нет способа переопределить / отменить логику Smart Tab, если она действует для вашего языка в IDE (она установлена ​​в настройках вкладок для вашего языка - перейдите в меню Tools / Options в IDE, чтобы увидеть ее).

Я думаю, что лучший вариант - нажать Ctrl-Z сразу после применения «умной» логики.Это восстановит отступ, который вы намеревались.

1 голос
/ 03 апреля 2019

Извините, но ключевое слово Call является наследием до .NET Visual Basic и не требуется для вызова подпрограмм в .NET.Следующее было бы более кратким и существенным:

GetRibbon("Part")
GetTab("3D Model")
NewButton("Custom1")
GetRibbon("Assembly")
GetTab("Assemble")
NewButton("Custom2") ' btw this can also be indented as in Jazimov's answer

Однако, вставка этого повторяющегося кода привела меня к тому, что я бы предложил этот

Sub Initialize(p1 As String, p2 As String, p3 As String)
    GetRibbon(p1)
    GetTab(p2)
    NewButton(p3)
End Sub

...

Initialize("Part", "3D Model", "Custom1")
Initialize("Assembly", "Assemble", "Custom2")

, и в этот момент, вероятно, отступбыло бы ненужно

Вы можете видеть, что Call все еще хорош для некоторых хакерских способов выполнения операций, подобных C #: https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference//statements/call-statement

...