Visual Studio, параметры отступа для каждого решения

StackOverflow https://stackoverflow.com/questions/1212092

  •  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>

Resharper Settings - Сохранить только для решения

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

  • В 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 является довольно элементарным, то есть он не запускается автоматически, но он хорошо выполняет свою работу (то есть, когда вызывается вручную).

http://llvm.org/builds/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top