Как заставить Visual Studio не ставить {на новую строку?


96

Если у меня есть такой код

if(true){

и я добавляю

}

он превращается в

if (true)
{
}

но я бы хотел, чтобы он оставался в формате

if (true) {
}

Даже если я скопирую такой код if, он преобразуется в более длинную версию.

PS Я понимаю, что использование более длинной версии является стандартом C ++ и C #, однако я исхожу из другого стандарта, и мне проще использовать более короткую версию.

Бьюсь об заклад, есть опция форматирования, которую можно отключить или изменить.

Ответы:


141

Перейдите в Инструменты -> Параметры -> Текстовый редактор -> C # -> Стиль кода -> Форматирование-> Новые строки

Здесь есть много вариантов. Снимите здесь галочку со всех опций, чтобы никогда не ставить открытую скобку на новую строку.

РЕДАКТИРОВАТЬ

Раздел New Line Options for expressionsне касается размещения кода вместе со скобками, поэтому те, которые вам не нужно трогать.


9
+1 спасибо. Однако, когда я выключаю их, а затем намеренно ставлю скобку на новую строку, она перемещает ее обратно в ту же строку :( Есть ли способы остановить его вмешательство в то, с чем я не просил его возиться?
Reversed Engineer

28
Какой монстр включит новые строки по умолчанию?
Fueled By Coffee

Я использую предварительную версию VS2019, и мне пришлось внести изменения, а затем полностью выйти из Visual Studio и снова открыть ее, чтобы изменения вступили в силу. Если бы я просто изменил его, а затем попытался переформатировать документ, он просто сбросил бы к предыдущим настройкам.
Бернард

Для кода Visual Studio перейдите в меню «Файл» -> «Настройки» -> «Настройки» и в разделе «Расширения» выберите язык, на котором вы хотите изменить свойства. Найдите Clang_format_fallback Style(например: C ++ C_Cpp: Clang_format_fallback Style) и измените значение с Visual StudioнаGoogle
Riccardo Bonesi

Спасибо! Это одна из самых ярких особенностей Visual Studio для Unity.
SacWebDeveloper

28

Имейте в виду, что если вы используете Resharper, описанная выше процедура не поможет, поскольку Resharper переопределяет собственное поведение VS. Если это ваш случай, перейдите в Resharper> Параметры, Редактирование кода> C #> Стиль форматирования> Макет фигурных скобок, установите для всех верхних параметров «Макет фигурных скобок» значение «В конце строки (стиль K&R)».

Мне потребовалось время, чтобы понять это, поэтому я надеюсь, что это кому-то поможет.


10

Для всех пользователей Mac я решил эту проблему следующим образом:

Настройки -> Исходный код -> Форматирование кода -> Исходный код C # -> Формат C # -> Изменить

Там вы можете изменить его в разделе Категория: Новые линии.

пример изображения



8

Вы можете изменить это в параметрах вашей Visual Studio. Перейдите в Инструменты -> Параметры -> Текстовый редактор -> C # -> форматирование -> новые строки (или что-то подобное, у меня есть только немецкая версия Visual Studio). Затем вы можете изменить, где вы хотите поместить скобки в следующую строку, а где нет. Лично я удалил все параметры, но если вы хотите создать новую строку, например, в циклах, есть много вариантов для настройки этого.


0

Для C ++ единственный способ избежать того, чтобы VC ++ помещал '{' в новую строку для пространств имен, - это снять флажок «Автоматически форматировать блок, когда я набираю}»:

введите описание изображения здесь


-1

Чтобы сделать то же самое для CSS, вам нужно перейти по ссылке: Tools > Options > Text Editor > CSS > Advanced > Formatting > Automatic Formatting > Off

Автоматическое форматирование CSS отключено

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.