2013-08-18 3 views
37

VS2013 добавил автоматическое форматирование для C++. Мое личное мнение по автоформатированию заключается в том, что это в конечном счете вредно для разработчиков, но я должен согласиться, что не все согласны. Что меня беспокоит, так это то, что я не могу полностью отключить автоматическое форматирование. Я непроверенный каждый флажок под Tools-> Текст editor-> C/C++ -> Formatting-> Общие еще когда я типа:Как отключить автоматическое форматирование в VS2013 для C++?

void f() 

VS2013 заменяет это с

void f() 

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

Я не хочу, чтобы изменить настройки распорных, потому что

  1. Я работаю в нескольких проектах с различными стандартами кода
  2. Я не верю в авто-форматирование, так что я просто хочу, чтобы выйти моего пути

Я просто хочу, чтобы VS не изменял мой код автоматически.

PS. Я не против того, что VS может форматировать код, но я хочу вызвать это вручную.

+2

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

+1

@Mehrdad: Спасибо, хотя, я отредактировал свой ответ, так что это более очевидно. AFAIK нет оптимального решения. –

+0

Кажется, что это ошибка в VS2013, которая потенциально будет исправлена ​​в RTM VS2013. Итак, какой ответ я отмечаю как ответ, если он есть? – FuleSnabel

ответ

36

Вы можете отключить автоматический C/C++/C# код форматирования, перейдя в Options диалогового окна из Tools меню, выбрав Text EditorC/C++/C#ФорматированиеОбщая информация страница и снятие всех боксов. Вы все равно сможете вручную форматировать, когда все параметры автоматического форматирования отключены.

enter image description here

+1

Это было указано в вопросе. –

+0

Это то, что я тоже думал, но VS2013 отказывается останавливать автоматический формат, например: f() в f(). – FuleSnabel

+5

Это оказывается ошибкой в ​​предварительном просмотре Visual Studio 2013 - автоматическое форматирование всегда выполняется при завершении скобки/скобки. Мы добавляем новый параметр для настройки этого поведения. Спасибо, что указали это. –

8

Я знаю, что это не совсем тот ответ, который вы ищете, но вы можете сохранить это форматирование void f(), если вы перейдете в «Инструменты»> «Параметры»> Текстовый редактор> C/C++> Форматирование> Интервал и под Интервал для функциональных скобок вы проверяете опцию Вставьте пробел между именами функций и открывающимися круглыми скобками списка аргументов.

+1

Спасибо. Нет, я знаю, что могу изменить настройки стиля кода, но моя проблема заключается в том, что я вношу вклад в несколько проектов с разными настройками. Боль в переходе туда и обратно. Я просто хочу отключить автоматическое форматирование. В конце концов, мне, возможно, придется делать то, что вы предложили, если я не могу отключить его. – FuleSnabel

3

Это ошибка в бета-версии VS 2013, что он не может быть выключен полностью, см вопрос, представленный FuleSnabel: http://connect.microsoft.com/VisualStudio/feedback/details/797716/turning-off-auto-formatting-for-vs2013-c-only-seems-to-partial-disable-auto-formatting. Некоторые возможные обходные пути:

  1. Если вы просто заглянуть в некоторые проекты, которые имеют различный/странный стиль: если нежелательная автоматическое форматирование происходит, то вы можете выполнить один шаг отмены, это должно отменить только автоматическое форматирование часть а не ваш вклад. К счастью, эти два (или иногда более автоматические шаги форматирования) не сгруппированы в одну команду, вероятно, по этой точной причине: вы можете вернуться и переопределить ее. Это раздражает, хотя если это происходит все время. Вы можете настроить поведение в соответствии с вашим стилем, но вы говорите, что у вас есть проект с разными стилями кода.
  2. Инструменты/Параметры импорта и экспорта ... - вы можете экспортировать определенные параметры для определенного проекта, а затем импортировать их позже.Это сохранит файл формата .vssettings XML. Если речь идет только о конкретном типе файлов, то это может быть всего несколько килобайт. К сожалению, для этого требуются ручные шаги. Лучше всего было бы, если бы эти параметры могли быть переопределены из файла конфигурации решения или даже файла конфигурации проекта, может быть частью их.
  3. Обратите внимание, что этот второй пункт проблематичен, если вы действительно работаете параллельно в своих проектах с одновременным открытием Visual Studios. В этом случае, что настройки будут сохранены, наконец, что последний закрытый экземпляр VS, я думаю.

Имея различное автоматическое форматирование, сохраненное для решений, может быть запрос функции для следующей версии (конечно же, не до VS 2013). Обычно я сталкиваюсь с различиями в поведении отступов в таблице/пространстве, это самая распространенная разница в стилях проекта. Отступы также могут быть настроены индивидуально для большинства типов файлов, но, как и в вашем случае, проекты могут отличаться, а затем становится раздражающим.

1

Перейти к:

Tools-> Options-> Текст editor-> C/C++ -> Formatting-> Spacing

Затем снимите или установите флажки, которые относятся к типу кода вы пишете.

6

У меня также была эта проблема, и снятие всех флажков в параметрах форматирования не помогло.

Оказалось, что это вызвано опцией в плагине «Visual Assist X» от Whole Tomato Software.

В моем случае эта проблема может быть решена путем перехода к «Опции визуальной помощи» -> «Исправления» и снятия флажка «Формат после вставки».

3

Просто помните, что resharper также может переопределять настройки отступа/форматирования. Вы можете отключить это, сделав это.

ReSharper -> Параметры -> Окружающая среда -> Редактор -> Поведение редактора -> Автоматическая форматирование при закрывающей скобке (снимите флажок).

enter image description here

0

Чтобы отключить автоматическое завершение распорка, перейдите по ссылке:

Tools> Options> Text Editor> Все Языки> Общие> Автоматическое завершение распорка

... затем снимите флажок «Автоматическая скобку завершение».