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.
Ответ 3
Там также есть еще одна надстройка "Rebracer"... ссылка здесь: http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58
Ответ 4
Из расширения VS EditorConfig (http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328):
Проект EditorConfig определяет простой формат файла для настройки общие параметры текстового редактора , такие как размеры отступов. Эти файлы конфигурации предназначены для размещения рядом с источником проекта кода, позволяя текстовым редакторам использовать правильные параметры в файле за файлом основа. Проект EditorConfig предоставляет плагины для большого общего текста редакторов, делая формат полностью кросс-платформенным.
(акцент мой)
Полное раскрытие: я не смог лично проверить его (потому что ReSharper берет на себя).
Ответ 5
VS2017 RC добавила поддержку формата .editorconfig.
Ответ 6
Вы можете установить параметр Вставить вкладки/пробелы с помощью props.Item("InsertTabs") = bool
Проверьте это: https://github.com/jamesfoster/VS-Whitespace-Macros
Ответ 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/