Вимкніть автоматичне форматування у 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/… ). У цих випадках я б скоріше використовував свою людську кмітливість, щоб відповідати стандартам, які я вважаю за потрібне, а не покладатися на сумну спробу В. С. на «стиль».
Ден Бешард

5
@senfo - VS .cshtml автоформатування, особливо з точки зору Razor, порушено. Домовлялися з вами в інших частинах, але це не особливість - це помилка
Росс

5
Коли "стандарт" схожий на те, що двоє котів билися на клавіатурі, то послідовність - це не чеснота. Зателефонуйте до мене, але додатковий час, щоб зробити код розбірливим, варто того. Мій досвід цілком відповідає: люди, які найбільш пристрасно ставляться до стійкості (sic), рекламують самий нечитабельний код, який вони можуть придумати.
Кріс Фокс

5
Пурист коду - це людина, яка вводить текст у правильному форматуванні, тому немає потреби в (можливо, порушеному) автоматичному форматуванні.
Андерс Лінден

Відповіді:


106

У мене була ця проблема під час написання VB на aspxсторінці.

Рішення полягало в тому, щоб перейти до "Інструменти> Параметри> Текстовий редактор> Основні> VB Specific" та вимкнути "Pretty Listing" OFF.


Примітка - у 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

Можливо , ви мали потужний інструмент встановлено.

У цьому випадку ви можете вимкнути його з "Інструменти> Параметри> Продуктивність електроінструментів> PowerCommands> General"

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


4

Як підказує @TheMatrixRecoder, трохи взяв для мене пошук, тож, можливо, це допоможе комусь іншому. Варіант VS 2017 можна знайти тут

Виділіть ці параметри, щоб запобігти набридливому автоматизованому форматуванню, коли ви розміщуєте крапку з комою або натисканням на повернення в кінці рядка.


3

У VS2017 ви можете змінити її після вибору мови кодування в меню налаштувань. У підменю "Форматування" є опція під назвою "нові лінії".


2

Сумніваюся, що ви можете відключити повторне форматування після рефакторингу. Рефакторинг змінює код, і оскільки це лише текст, я сумніваюся, що ви хочете, це те, що він просто скидає неформатований текст у ваше джерело. Чи не було б трохи простіше просто встановити стиль коду, яким VS дотримується стилю, який вам подобається та дотримуйтесь?


1
Іноді стиль кодування не є алгоритмічним. Іноді це навмисно непослідовно, оскільки хтось вносить внесок у проект із непослідовним стилем кодування та хоче дотримуватися стилю кодування конкретного фрагмента коду, який редагується.
Палець

2

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

Я хочу, щоб суміжні завдання були вертикально вирівняні; VS переформатує їх в один простір по обидва боки від знака рівності, незалежно від довжини змінної зліва. Це нестерпно. І вимкнення його на параметри редактора ігнорується; даючи коментарі, як відкривачка вище, я впевнений, що це навмисно.

Послідовність - це лише чеснота, коли вона призводить до бажаних результатів. Це не одна.


2

Налаштування VS2015, які допомогли мені запобігти автоматичне форматування:

(та Інструменти> Параметри> Текстовий редактор> Основний> Додатково, як і запропонував Tango91 )

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


1

Дотримуйтесь TOOLS-> OPTIONS-> Text Editor-> CSS-> Formatting Виберіть "Compact Rules" та зніміть прапорець "Hiearerchical indents"


Текстовий редактор -> CSS або HTML -> Вкладки -> Відступ -> (o) Немає
Bob Stein

1

Це може бути справа у форматі Clang. Раніше весь файл автоматично відформатовувався під час збереження файлу, і це наштовхнуло мене на гайки (для сховищ, у яких формат Clang не ввімкнено).

Така поведінка відпадає після повороту "Інструменти -> Опція -> LLVM / Clang -> ClangFormat -> Форматування при збереженні -> Увімкнути" на помилкове.

Формат ClangFormat у режимі збереження


0

Ви можете налаштувати параметри форматування коду. Я завжди вимикаю всі додаткові розриви рядків, і тоді це добре працює, як я форматую код.

Якщо ви налаштуєте налаштування як можна ближче до ваших уподобань, це повинно залишати вам мінімальну роботу, коли ви використовуєте рефакторинг.


0

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

Таким чином ваш код може бути оновленим, але ваш реєстраційний запис буде актуальним.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.