Visual Studio, параметры отступа для каждого решения
-
06-07-2019 - |
Вопрос
Я работаю над парой разных вещей, и некоторые используют вкладки, некоторые используют 2 пробела для отступов, другие используют 4 пробела для отступов и т.д.
Возможность установить это в Visual Studio находится в меню Инструменты-> Параметры-> Текстовый редактор-><language>-> Вкладки
Есть ли какой-нибудь способ переопределить эти настройки для каждого конкретного решения?
Решение
Вот один (по общему признанию, хакерский) способ достичь того, что вы ищете:
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
во втором.
Теперь у вас есть макрос, который будет срабатывать при каждом открытии решения.
Вам просто нужно сопоставить ваши решения с требуемым отступом.
Другие советы
ОБНОВЛЕНИЕ: 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 .
Также есть еще одна надстройка с именем " Rebracer " сейчас ... ссылка здесь .com / 410e9b9f-65f3-4495-b68e-15567e543c58 р>
Из расширения VS EditorConfig ( http: //visualstudiogallery.msdn. Сайт microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 ):
Проект EditorConfig определяет простой формат файла для настройки общие параметры текстового редактора , такие как размеры отступов . Эти конфигурационные файлы предназначены для размещения рядом с источником проекта код, позволяющий текстовым редакторам использовать правильные параметры для файла за файлом основа. Проект EditorConfig предоставляет плагины для многих распространенных текстов. редакторы, делающие формат полностью кроссплатформенным.
(выделено мной)
Полное раскрытие: я не смог лично проверить его (потому что ReSharper вступает во владение).
В VS2017 RC добавлена поддержка формата .editorconfig.
Вы можете установить параметр «Вставка вкладок / пробелов» с помощью props.Item("InsertTabs") = bool
Проверьте это: https://github.com/jamesfoster/VS-Whitespace-Macros а> р>
ОБНОВЛЕНИЕ: похоже, что отступом не управляет 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>
Итак, принятое решение гласит: "Вам просто нужно сопоставить ваши решения с требуемым отступом", и это здорово, за исключением того, как вы это делаете?Потратив уйму времени на попытки разобраться в этом, я нашел метод, который мне больше нравится здесь.Этот метод загружает любое количество экспортированных настроек, которые могут отличаться для каждого решения.Настройки могут включать в себя все, что угодно, от отступов до цветов или даже расположения окон (я думаю).
- В Visual Studio 2008 откройте Сервис > Макросы > Обозреватель макросов
- Дважды щелкните MyMacros > Module1 (если у вас нет Module1, щелкните правой кнопкой мыши MyMacros и выберите "Новый модуль ...", чтобы создать его).
- В окне macro Explorer дважды щелкните "EnvironmentEvents" слева.
- В выпадающем списке в левом верхнем углу выберите "SolutionEvents".
- В правом верхнем выпадающем списке выберите "Открыто".
Код для обработки SolutionEvents.Автоматически добавляется открытое событие.Измените этот код на следующий:
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 / C ++
- Нажмите Далее, затем введите "solution.vssettings" как "Как вы хотите назвать свой файл настроек?" и сохраните файл в любом месте, где у вас есть решение, в котором вы хотите использовать эти настройки.
- Перетащите solution.vssettings в любое место в окне Обозревателя решений.
- Выйдите из Visual Studio, и в следующий раз, когда вы откроете решение, содержащее solution.vssettings, оно должно загрузить эти настройки.
Если макрос не запускается, это может быть из-за исправления безопасности MS.Основанный на это, добавьте следующую строку:
<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"
Обязательно запустите редактор, который вы используете для редактирования этих файлов, с правами администратора (т. Е. щелкните правой кнопкой мыши Блокнот и выберите "Запуск от имени администратора").
Я также нашел подключаемый модуль предполагается, что он должен делать то же самое, что и макрос, предложенный выше, но по какой-то причине он ничего не сделал после того, как я запустил его установщик.
clang-format предоставляет довольно сложные опции для форматирования вашего исходного кода.
Плагин Visual Studio является довольно элементарным, то есть он не запускается автоматически, но он хорошо выполняет свою работу (то есть, когда вызывается вручную).