Отключить автоматическое форматирование в Visual Studio


134

Я - чистильщик кода, предпочитаю свой собственный стиль форматирования кода, а не настройки по умолчанию в Visual Studio. Я отключил параметры автоформатирования в Инструменты / Параметры. В большинстве случаев это работает.

После использования любого из встроенных рефакторингов Visual Studio забирает мои настройки настройками по умолчанию. Как я могу удержать VS от этого?


9
@ user1142958 каждые несколько месяцев в проекте с открытым исходным кодом и каждые несколько лет в бизнесе, я сталкиваюсь с какой-то крикой, которая настаивает на том, что его стиль лучше стандартного. В результате многолетних исследований было установлено, что стандарты стиля улучшают читаемость и удобство обслуживания. Когда разработчики предлагают свой собственный «лучший» подход, он обычно имеет тенденцию отбрасывать других разработчиков в команду. Прочитайте это в качестве примера - woldlab.caltech.edu/~king/swc/www/readstyle.html
senfo

29
@senfo Это отличная информация, но в некоторых случаях встроенный форматер Visual Studio, несомненно, не работает (например, stackoverflow.com/questions/6459861/… ). В этих случаях я предпочел бы использовать свое человеческое остроумие, чтобы соответствовать стандартам, которые я считаю уместными, а не полагаться на грустную попытку VS «разработать стиль».
Дэн Бешард

5
@senfo - VS .cshtml автоформатирование, особенно с точки зрения Razor не работает. Договорились с тобой в других частях, но это не фича - это баг
Росс

5
Когда «стандарт» выглядит как две кошки, сражающиеся на клавиатуре, то последовательность не является достоинством. Назовите меня горячим, но дополнительное время, чтобы сделать код понятным, того стоит. Мой опыт совершенно непротиворечив: люди, наиболее увлеченные постоянством (sic), продвигают самый нечитаемый код, который они могут придумать.
Крис Фокс,

5
Чистый код - это человек, который вводит текст в правильном форматировании, поэтому нет необходимости (возможно, нарушено) автоматического форматирования.
Андерс Линден

Ответы:


106

У меня была эта проблема при записи VB на aspxстранице.

Решением было перейти к «Инструменты> Параметры> Текстовый редактор> Основные> VB Specific» и отключить «Pretty Listing».


Примечание. В Visual Studio 2015 это можно найти по адресу:

Инструменты> Параметры> Текстовый редактор> Основные> Дополнительно


Хотелось бы, чтобы я мог легко привязать эти флажки к любому короткому ключу.
Майк де Клерк

1
Спасибо, это сработало для меня. «Симпатичный» невероятно плох, с параметрами функции, «спрятанными под» именем функции, необъяснимый выбор, когда табличное вертикальное выравнивание - это то, что любой, кто работает в коммуникациях, может сказать вам, что его легче всего понять.
Крис Фокс

54
я просто собираюсь сделать паузу, чтобы полюбоваться красотой иерархии дерева опций, которая выглядит так: text editor -> basic -> advanced«о да, вы хотите расширенный раздел»? Это под базовым
fostandy

12
@fostandy, я понимаю, что вы, вероятно, знаете это, но basicэто название языка, а не раздел опций, поскольку C # также указан там.
Lightfire228

32

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

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


У меня нет этой опции в моем VS2010 Premium
Maciej

2
Исправляет это в VS2017
Doug Null

Не удалось решить мою проблему с C ++ в VS 2013. И я уверен, что она не была сломана до того, как я сменил машины
CashCow

6

В моем случае это был ReSharper.

Проверьте, если ReSharper

StackOverflow: Как я могу отключить ReSharper в Visual Studio и включить его снова?

Предотвратить ReSharper от переформатирования кода

StackOverflow: есть ли способ разметить код, чтобы ReSharper не форматировал его?

Обновить

Это был ReSharper в конце концов:

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


2
Спасибо, это сводило меня с ума.
Саймон Арнольд

1
Согласитесь, фигурные скобки всегда были в неправильном месте, и они буквально давили на код тяжелой загрузочной загрузкой каждый раз, когда вы нажимаете точку с запятой. Не круто.
контанго

5

Возможно, вы установили Power Tool .

В этом случае вы можете отключить его в «Инструменты> Параметры> Инструменты повышения производительности> PowerCommands> Общие».

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


4

Как подсказывает @TheMatrixRecoder, мне пришлось немного поискать, так что, возможно, это поможет кому-то еще. Вариант VS 2017 можно найти здесь

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


3

В VS2017 вы можете изменить его после выбора языка кодирования в меню настроек. В подменю «Форматирование» есть опция «Новые строки».


2

Я сомневаюсь, что вы можете отключить переформатирование после рефакторинга. Рефакторинг изменяет код, и так как это всего лишь текст, я сомневаюсь, что вам нужно, чтобы он просто сбрасывал неформатированный текст в ваш источник. Не было бы немного проще просто установить стиль кода, которого придерживается VS, на стиль, который вам нравится, и следовать ему?


1
Иногда стиль кодирования не подлежит алгоритмизации. Иногда это умышленно противоречиво, потому что кто-то вносит свой вклад в проект с несовместимым стилем кодирования и хочет придерживаться стиля кодирования конкретного редактируемого фрагмента кода.
Палек

2

Переформатирование точки с запятой или закрывающей скобки отключить нельзя. Я нахожу это в ярости, что у Microsoft хватит смелости рассказать кому-либо, как форматировать код; самый неразборчивый код, который я когда-либо видел, был при работе там.

Я хочу, чтобы соседние назначения были выровнены по вертикали; VS переформатирует их в один пробел по обе стороны от знака равенства, независимо от длины переменной слева. Это невыносимо. И отключение его в опциях редактора игнорируется; учитывая комментарии, как открывашка выше, я уверен, что это намеренно.

Последовательность является только достоинством, когда оно приводит к желаемым результатам. Это не один.


2

Настройки VS2015, которые помогли мне предотвратить автоматическое форматирование:

(и «Инструменты»> «Параметры»> «Текстовый редактор»> «Основные»> «Дополнительно», как и предлагал Tango91 )

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


1

Выберите ИНСТРУМЕНТЫ-> ОПЦИИ-> Текстовый редактор-> CSS-> Форматирование. Выберите «Компактные правила» и снимите флажок «Иерархический отступ».


Текстовый редактор -> CSS или HTML -> Вкладки -> Отступы -> (o) Нет
Боб Стейн

1

Это может быть случай Clang Format. Раньше весь файл автоматически форматировался при сохранении файла, и это сводило меня с ума (для репозиториев, у которых формат Clang не включен).

Такое поведение исчезло после включения «Инструменты -> Опция -> LLVM / Clang -> ClangFormat -> Форматировать при сохранении -> Включить» в False.

Формат ClangFormat при сохранении


0

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

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


0

В дополнение к ответу Tango на актуальное решение, могут быть люди, которые действительно хотят быть в курсе автоформатов, но не хотят, чтобы они испортили ваши соответствующие изменения. Я бы посоветовал вам изменить файл, чтобы активировать автоматическое форматирование, проверить эти изменения, а затем перейти к фактическим изменениям, которые вы хотите внести.

Таким образом, ваш код может оставаться в курсе, но ваша регистрация будет актуальна.


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