Visual Studio, для настроек отступов решения

Я работаю над несколькими разными вещами, а некоторые используют вкладки, некоторые используют 2 пробела для отступов, другие 4 места для отступов и т.д.

Возможность установить это в Visual Studio в Инструментах → Параметры → Текстовый Редактор → < язык > → Tabs

Есть ли способ переопределить эти настройки на основе каждого решения?

Ответ 1

Вот один (по общему признанию, хакерский) способ добиться того, что вы ищете:

1) создайте макрос, который изменяет отступ (источник)

 Sub Set-Indent(indent As integer)
     Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", "C/C++")
     Dim ts As EnvDTE.Property = props.Item("TabSize")
     Dim ins As EnvDTE.Property = props.Item("IndentSize")
     ts.Value = indent 
     ins.Value = indent 
 End Sub

2) Подключитесь к загрузке вашего решения: В проводнике макросов выберите EnvironmentEvents, выберите SolutionEvents в первом раскрывающемся списке, Opened во втором. Теперь у вас есть макрос, который будет запускаться каждый раз при открытии решения. Вам просто нужно сопоставить ваши решения с требуемым отступом.

Ответ 2

UPDATE: VS 2017 поддерживает редактор EditorConfig: https://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/

В VS 2010 и выше существует расширение, которое устанавливает отступ на основе . editorconfig файла в корне решения/проекта:

http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328

Также существует расширение для кода Visual Studio.

Ответ 4

Из расширения VS EditorConfig (http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328):

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

(акцент мой)

Полное раскрытие: я не смог лично проверить его (потому что ReSharper берет на себя).

Ответ 5

VS2017 RC добавила поддержку формата .editorconfig.

Ответ 7

UPDATE: похоже, что отступ не управляется Resharper, поэтому этот ответ фактически не затрагивает конкретный вопрос. Однако он применяется в общих чертах; то есть "Visual Studio, для каждого параметра решения" в случае, если кто-то наткнется здесь, ища это.


Если вы используете Resharper, вы можете сохранить настройки форматирования (действительно, любые настройки) только для решения. Вы можете дополнительно указать, только ли для вас (т.е. Не переданы в исходное состояние) или общие параметры, зависящие от конкретного решения (т.е. Зафиксировать источник управления).

Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout

Затем в нижней части окна под Save To выберите "Solution XYZ personal" (или общий, в зависимости от вашей цели).

Это создает файл xml YOURSOLUTION.sln.DotSettings.user со значениями, например:

<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">NEXT_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/CASE_BLOCK_BRACES/@EntryValue">NEXT_LINE</s:String>

Resharper Settings - Save for Solution Only

Ответ 8

Итак, принятое решение гласит: "Вам просто нужно сопоставить ваши решения с требуемым отступом", что здорово, за исключением того, как вы это делаете? Потратив много времени на то, чтобы понять это, я нашел метод, который я предпочитаю здесь. Этот метод загружает любое количество экспортированных параметров, которые могут быть разными для каждого решения. Настройки могут включать в себя что угодно: от отступов до цветов или даже макета окна (я думаю).

  • В Visual Studio 2008 откройте "Инструменты" > "Макросы" > "Макро-проводник"
  • Дважды щелкните MyMacros > Module1 (если у вас нет модуля 1, щелкните правой кнопкой мыши MyMacros и выберите "Создать модуль...", чтобы создать его).
  • В окне проводника макросов дважды щелкните "EnvironmentEvents" слева.
  • В верхнем левом выпадающем меню выберите "SolutionEvents".
  • В раскрывающемся списке в правом верхнем углу выберите "Opened".
  • Код для обработки SolutionEvents.Opened событие автоматически добавляется. Измените этот код на следующее:

    Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
        Dim item As ProjectItem = DTE.Solution.FindProjectItem("solution.vssettings")
        If Not item Is Nothing Then
            'MsgBox("Uncomment this to see a message when settings are loaded")
            Dim name = item.FileNames(1)
            DTE.ExecuteCommand("Tools.ImportandExportSettings", "/import:""" & name & """")
        End If
    End Sub
    
  • Сохранить макрос.

  • Используйте "Инструменты" > "Параметры", чтобы изменить свой интерфейс, чтобы иметь настройки вкладки и все, что вы хотите установить.
  • Инструменты > Параметры импорта и экспорта... > Экспортировать выбранные настройки среды > Далее
  • Чтобы просто экспортировать настройки вкладки, снимите флажок "Все настройки", затем выберите "Параметры" > "Текстовый редактор" > "C/С++"
  • Нажмите "Далее", затем введите "solution.vssettings" как "Что вы хотите назвать своим файлом настроек?" и сохраните файл там, где у вас есть решение, которое вы хотите использовать.
  • Перетащите решение .vssettings в любое место в окне обозревателя решений.
  • Закройте Visual Studio и в следующий раз, когда вы откроете решение, содержащее solution.vssettings, оно должно загрузить эти настройки.

Если макрос не запускается, это может быть из-за исправления безопасности MS. На основе this добавьте следующую строку:

<AllowDComReflection enabled="true"/>

Ниже <runtime> тега в следующих трех файлах:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"

Обязательно запустите редактор, который вы используете для редактирования этих файлов с правами администратора (например, щелкните правой кнопкой мыши Блокнот и выберите "Запуск от имени администратора" ).

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

Ответ 9

clang-format предоставляет довольно сложные параметры форматирования исходного кода.

Плагин Visual Studio довольно рудиментарный, т.е. он не запускается автоматически, но он хорошо выполняет свою работу (при ручном вызове).

http://llvm.org/builds/