Как отключить автоматическое форматирование всех пробелов в Visual Studio 2015?

Мне очень нравится новая Visual Studio 2015, но автоматическое форматирование, на мой взгляд, слишком обширно. Особенно мне нравится контролировать пробелы:

public class TipStats
{
    public int      Points          { get; set; }
    public int      Position        { get; set; }
    public decimal  Percentage      { get; set; }
}

В моих настройках я вижу только три параметра автоформата, и я отметил их все галочками, но Visual Studio автоматически форматирует мои пробелы.

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

Существуют ли какие-либо другие скрытые настройки, которые мне нужно знать для отключения автоматического форматирования всех пробелов?

Обновление Как отмечает @Saragis, Игнорировать пробелы в операторах объявления работает иногда для этого конкретного примера, но все же все виды сил автоформатирования работают против того, что я хотеть.

Большинство параметров определяют только какое автоформатирование. Мне нужен параметр, определяющий, если нужно ли автоформатирование.

PS: у меня проблемы только с автоформатированием. Я все еще использую CTRL+K, F для ручного форматирования частей кода время от времени.

Обновление: добавлен запрос функции в UserVoice

http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/9795837-add-an-ignore-space-for-all-format-options


person Dirk Boer    schedule 26.08.2015    source источник
comment
Является ли параметр в разделе ФорматированиеИнтервалыИгнорировать пробелы в операторах объявления тем, что вам нужно?   -  person Saragis    schedule 26.08.2015
comment
Привет, Сарагис, спасибо за ваш комментарий, но он не сработал.   -  person Dirk Boer    schedule 26.08.2015
comment
Привет, не могли бы вы объяснить отрицательный голос, чтобы я мог обновить свой вопрос?   -  person Dirk Boer    schedule 08.09.2015
comment
Вас заминусовали, потому что есть люди, которые считают, что ваш подход к форматированию кода неправильный. Очевидно, что когда вы создаете код самостоятельно, форматирование не имеет значения. Только вы будете видеть код. Но если вы попадете в команду, где разные люди по-разному смотрят на то, что хорошо, а что плохо, это будет огромной проблемой. если бы вы просто приспособились к стандартному форматированию кода, которое хорошо определено для C#, у вас не было бы таких проблем, и вы бы не тратили время на вопросы здесь. И не забывайте есть брокколи, это полезно.   -  person LukLed    schedule 13.09.2015
comment
Я буду @LukLed, спасибо за совет по брокколи! ;) об остальном, что вы говорите: если люди действительно голосуют против, потому что им не нравится определенный стиль, это довольно грустно. Я бы сказал, что есть довольно хороший случай для вертикального выравнивания, но это выходит за рамки этого вопроса и форума.   -  person Dirk Boer    schedule 13.09.2015
comment
Ваш стиль может быть лучшим стилем в мире. Я не говорю, есть или нет. Это не имеет значения. Важно то, что он отличается от стандартного. Соглашение о конфигурации также относится к форматированию кода :)   -  person LukLed    schedule 14.09.2015
comment
@LukLed Если бы стандартное форматирование было так важно, не было бы возможности изменить форматирование, верно? Даже при стандартном форматировании код может стать чертовски нечитаемым, по крайней мере, если у вас будет много аргументов функции или большие идентификаторы типов из-за дженериков. И тогда вы были бы счастливы, если бы вы могли отформатировать код, отличный от стандартного, имхо.   -  person MABVT    schedule 01.10.2018


Ответы (4)


Я понял, что неправильно понял вопрос в своем первоначальном ответе, поэтому добавил частичный ответ, отключающий автоформатирование для пробелов.
Если вы выберете ignore white space во всех вариантах, где он предлагается, он не будет переформатировать пробелы этих областей кода. .

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

Эти скриншоты взяты из VS2015 Enterprise.
Я начинаю с самого начала, чтобы помочь всем, кто попадет сюда.

Перейдите в Инструменты -> Параметры.

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

Прокрутите вниз до текстового редактора. Стоит щелкнуть по всем общим вкладкам. И вкладки Все языки. Можно установить некоторые общие параметры форматирования, например перенос строки.

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

Затем перейдите к языкам, которые вы хотите настроить (я показываю C#), и нажмите на форматирование. Там вы найдете варианты, я расширил интервал в соответствии с заголовком вашего вопроса.

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

Затем вы можете изучить каждую из этих вкладок, чтобы настроить формат для каждого языка.

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

редактировать, так как вопрос фактически изменился

Чтобы уменьшить количество случаев автоформатирования, снимите флажки, подобные этим:
введите здесь описание изображения

Единственный способ управлять автоформатированием — играть с этими настройками. Вы также можете использовать регулярное выражение с поиском и заменой для удаления места из файлов, но делайте это осторожно. Помимо этих советов по настройке автоформатирования, сокращению процесса автоформатирования VS и автоформатированию вручную, это все, о чем я могу думать.


Также есть это: В меню «Правка» -> «Дополнительно» -> «Удалить горизонтальное пустое пространство».

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

person Community    schedule 08.09.2015
comment
Привет @Heyyou, спасибо за развернутый ответ. Я прошел через все эти варианты и попытался максимально приблизиться к тому, что я хочу, из возможных - все же автоформатирование, кажется, часто пытается исправить то, что мне не нужно. Похоже, что большинство параметров определяют как автоформатирование, а не нужно ли автоформатирование. - person Dirk Boer; 12.09.2015
comment
Привет @Heyyou, как вы можете видеть в истории, я только что сделал дополнительное заявление, чтобы сделать вопрос более ясным - поскольку, по-видимому, его неправильно поняли. Я по-прежнему думаю, что мои изменения отражают заголовок Как отключить автоматическое форматирование всех пробелов в Visual Studio 2015? и основную часть вопроса. - person Dirk Boer; 12.09.2015
comment
Привет @Heyyou, я наградил вас наградой за расширенный ответ, потому что я думаю, что это действительно поможет людям. Однако я не «официально» принимаю ответ, потому что даже после этих инструкций все еще происходит «магия автоформатирования пробелов». Я пытаюсь обосновать это и представить его команде VS. Спасибо за всю вашу помощь! - person Dirk Boer; 16.09.2015
comment
@YvetteColomb Извините, это совершенно не связано, однако вы, похоже, хорошо разбираетесь в этом вопросе. Есть ли способ отключить выравнивание по пустым строкам? В более старых VS, когда вы нажимали на пустую строку, курсор опускался до упора влево. Теперь он остается до текущего отступа блока. Это что-то вроде ограниченного виртуального пространства. - person the swine; 28.03.2017
comment
@Yvette Colomb спасибо за этот пост, я долго искал то же самое, похоже, это мне поможет. мне нужно прекратить удалять пустые строки в моем VS 2015. - person Vivek Shukla; 27.06.2017
comment
@ Иветт Коломб, я ссылаюсь на свою проблему, пожалуйста, посмотрите, она выглядит, это то, к чему я блуждаю. stackoverflow.com/questions/44747909/. - person Vivek Shukla; 27.06.2017

Ответ от Иветт Коломб хорош, но он не работает ни с объявлениями внутри функций, ни с перечислениями (там, где, на мой взгляд, это нужно больше всего).
Таким образом, у меня возникла идея просто добавить комментарий между переменной и оператор, который просто нарушает очевидное правило "устанавливайте ровно один символ пробела между переменной (или именем перечисления) и оператором (=)", потому что после переменной больше нет оператора! Не очень красиво, но и не так уж плохо и ИМХО у него однозначно больше плюсов, чем минусов. :-)
введите здесь описание изображения

person Tobias Knauss    schedule 07.05.2018

Отключить виртуальное пространство

Виртуальное пространство — это головная боль, отключите его, выбрав «Инструмент»> «Параметры»> «Текстовый редактор»> «C#»> «Общие». Жизнь лучше.

person user1814872    schedule 05.09.2018
comment
Привет! Спасибо, что нашли время, чтобы дать ответ. Ваш ответ действительно может использовать некоторый контекст или объяснение того, что такое виртуальное пространство и что оно делает. Ознакомьтесь с нашими рекомендациями по написанию хороших ответов. - person Carles Alcolea; 21.03.2020

Для последней версии Visual Studio:

Перейти к настройкам:

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

Перейти Исходный код> С#:

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

Установите Политику на пользовательскую:

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

Перейдите в формат С# и нажмите «Изменить»:

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

Ставь как я Новые Линии:

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

И вуаля.

person YannSteph    schedule 09.04.2020