Visual Studio, параметры отступа для каждого решения
Я работаю над несколькими разными вещами, и некоторые используют вкладки, некоторые используют 2 пробела для отступов, другие пользователи 4 пробела для отступов и т. д.
возможность установить это в Visual Studio находится в сервисах - > параметры - > текстовый редактор - > - > вкладки
есть ли способ переопределить эти настройки на основе каждого решения?
9 ответов:
вот один (по общему признанию хаки) способ достичь того, что вы ищете:
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 Sub2) подключите это к загрузке вашего решения: В обозревателе макросов выберите
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"... ссылка здесь: http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58
из расширения VS EditorConfig (http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328) Сайт:
проект EditorConfig определяет простой формат файла для настройки общие параметры текстового редактора как размеры вмятия. Эти файлы конфигурации предназначены для размещения рядом с источником проекта код, позволяющий текстовым редакторам использовать правильные параметры для каждого файла основа. Этот Проект EditorConfig предлагает плагины для многих популярных текстовых Редакторы, делающие формат полностью кроссплатформенным.
(выделено мной)
полное раскрытие: я не смог лично проверить его (потому что ReSharper берет на себя).
вы можете установить параметр вставки вкладок / пробелов с помощью
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выберите "решение XYZ personal" (или shared, в зависимости от вашей цели).это создает 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 и выберите " новый модуль... чтобы создать его).
- в окне проводника макросов дважды щелкните "EnvironmentEvents" слева.
- в верхнем левом раскрывающемся списке выберите "события решения".
- в правом верхнем раскрывающемся списке выберите "Открыть".
код для обработки событий решения.Открытое событие добавляется автоматически. Изменить это код для следующего:
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++
- Нажмите кнопку Далее, затем введите ' решение.vssettings ' as ' как вы хотите назвать файл настроек? и сохраните файл в любом месте, где есть решение вы хотите использовать эти настройки.
- перетащить решение.vssettings в любое место в окне обозревателя решений.
- закройте Visual Studio и в следующий раз откройте решение, содержащее решение.vssettings, он должен загрузить эти настройки.
Если макрос не работает, это может быть из-за патча безопасности МС. На основе этой добавить следующее строка:
<AllowDComReflection enabled="true"/>под тегом
в следующих трех файлах: "C:\Program Files (x86)\Common Files\Microsoft Shared\VSA.0\VsaEnv\vsmsvr.exe.config" "C:\Program Files (x86)\Common Files\Microsoft Shared\VSA.0\VsaEnv\vsaenv.exe.config" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"обязательно запустите редактор, который вы используете для редактирования этих файлов с правами администратора (т. е. щелкните правой кнопкой мыши блокнот и выберите "Запуск от имени администратора").
Я нашел плагин это должно делать то же самое, что и макрос, предложенный выше, но по какой-то причине он ничего не сделал после того, как я запустил его установщик.
clang-format предоставляет довольно сложные варианты форматирования исходного кода.
плагин Visual Studio довольно рудиментарен, т. е. он не запускается автоматически, но он хорошо выполняет свою работу (при ручном вызове, то есть).

Comments