Visual Studio, ustawienia wcięć według rozwiązania

Pracuję nad kilkoma różnymi rzeczami i niektórzy używają tabulatorów, niektórzy używają 2 spacji dla wcięć, inni użytkownicy 4 spacje dla wcięć itp.

Opcja, aby ustawić to w Visual Studio jest w Tools - > Options - > Text Editor-> - > Tabs

Czy Jest jakiś sposób na nadpisanie tych ustawień na bazie per solution?

Author: Fire Lancer, 2009-07-31

9 answers

Oto jeden (co prawda hacky) sposób, aby osiągnąć to, czego szukasz:

1) Utwórz makro, które zmienia wcięcie (Źródło)

 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) Podłącz to do ładowania rozwiązania: W Eksploratorze makro wybierz EnvironmentEvents, Wybierz SolutionEvents w pierwszym rozwijanym menu, Opened w drugim. Teraz masz makro, które uruchomi się za każdym razem, gdy otworzysz rozwiązanie. Wystarczy odwzorować rozwiązania zgodnie z wymaganym wcięciem.

 17
Author: Bahbar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-31 12:38:35

Aktualizacja: VS 2017 obsługuje natywnie EditorConfig: https://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/

W VS 2010 i nowszych istnieje rozszerzenie, które ustawia wcięcie na podstawie .editorconfig plik w katalogu głównym rozwiązania / projektu:

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

Istnieje również podobne rozszerzenie dla Visual Studio Kod .

 78
Author: Tereza Tomcova,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-19 18:50:57

Jest jeszcze jeden dodatek o nazwie "Rebracer"... link jest tutaj: http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58

 7
Author: Richard B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-06 16:27:40

From The VS extension EditorConfig ( http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 ) strona internetowa:

Projekt EditorConfig definiuje prosty format pliku do konfiguracji typowe opcje edytora tekstu , takie jak rozmiary wcięć . Te pliki konfiguracyjne są przeznaczone do umieszczenia obok źródła projektu kod, pozwalający edytorom tekstu korzystać z odpowiednich opcji na pliku PO pliku podstawa. Projekt EditorConfig zapewnia wtyczki do wielu popularnych tekstów edytorów, dzięki czemu format jest w pełni wieloplatformowy.

(moje)

Pełne ujawnienie: nie byłem w stanie osobiście go przetestować(ponieważ ReSharper przejmuje).

 3
Author: drzaus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-23 14:22:51

VS2017 RC dodano wsparcie dla .format editorconfig.

 3
Author: asm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 11:32:58

Możesz ustawić ustawienie Wstaw tabulatory / spacje za pomocą props.Item("InsertTabs") = bool

Zobacz też: https://github.com/jamesfoster/VS-Whitespace-Macros

 0
Author: tgmdbm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-04 10:18:58

UPDATE: wygląda na to, że wcięcia nie są zarządzane przez Resharper, więc ta odpowiedź nie odnosi się do konkretnego pytania. Jednak ma to zastosowanie w ogólnych warunkach, tj. "Visual Studio, per solution settings" W przypadku, gdy ktoś potknie się tutaj, szukając tego.


Jeśli używasz Resharper , możesz zapisać ustawienia formatowania (naprawdę dowolne ustawienia) tylko dla tego rozwiązania. Możesz dodatkowo określić, czy tylko dla Ciebie (tzn. nie zobowiązał się do source-control) lub współdzielone ustawienia specyficzne dla rozwiązania (np. commit do source-control).

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

Następnie na dole okna, pod Save To Wybierz "rozwiązanie xyz personal" (lub wspólne, w zależności od celu).

Tworzy plik xml {[3] } z wartościami takimi jak:

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

Ustawienia Resharper-Zapisz tylko rozwiązanie

 0
Author: drzaus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-19 17:03:18

Więc przyjęte rozwiązanie mówi "Musisz tylko mapować swoje rozwiązania do wymaganego wcięcia", co jest Świetne, z wyjątkiem tego, jak to zrobić? Po tym, jak traciłem dużo czasu, próbując to rozgryźć, znalazłem metodę, którą preferuję tutaj . Ta metoda wczytuje dowolną liczbę wyeksportowanych ustawień, które mogą być różne dla każdego rozwiązania. Ustawienia mogą zawierać wszystko, od wcięć po Kolory, a nawet układ okien (myślę).

  • w Visual Studio 2008 Otwórz Narzędzia > Makra > Makro explorer
  • Kliknij dwukrotnie MyMacros > Module1 (jeśli nie masz Module1, kliknij prawym przyciskiem myszy MyMacros i wybierz ' New module..."aby go stworzyć).
  • w oknie macro explorer kliknij dwukrotnie 'EnvironmentEvents' po lewej stronie.
  • z rozwijanego menu w lewym górnym rogu wybierz "solucja".
  • W prawym górnym rogu wybierz opcję "otwarte".
  • Kod do obsługi rozwiązania.Otwarte zdarzenie jest dodawane automatycznie. Zmień ten kod na "po": {]}

    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
    
  • Zapisz makro.

  • użyj Narzędzia > Opcje, aby zmienić interfejs użytkownika, aby mieć ustawienia karty i cokolwiek innego chcesz ustawić.
  • Narzędzia > Ustawienia importu i eksportu... > Export selected environment settings > Next
  • aby wyeksportować ustawienia karty, odznacz "wszystkie ustawienia", a następnie zaznacz opcje > edytor tekstu > C / C++
  • Kliknij Dalej, a następnie wpisz ' rozwiązanie.vssettings ' as 'jak chcesz nazwać swój plik ustawień?'i zapisz plik gdziekolwiek masz rozwiązanie, które chcesz użyć tych ustawień.
  • rozwiązanie przeciągania.vssettings do dowolnej lokalizacji w oknie Eksploratora rozwiązań.
  • Zamknij Visual Studio i następnym razem otwórz rozwiązanie zawierające rozwiązanie.vssettings, powinien załadować te ustawienia.

Jeśli makro nie działa, może to być spowodowane poprawką bezpieczeństwa MS. Na podstawie tego Dodaj następujący ciąg znaków:

<AllowDComReflection enabled="true"/>

Poniżej tagu w następujących trzech plikach:

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

Be pamiętaj, aby uruchomić Edytor, którego używasz do edycji plików z uprawnieniami administratora (tj. kliknij prawym przyciskiem myszy Notatnik i wybierz "Uruchom jako Administrator").

Znalazłem równieżwtyczkę , która ma robić to samo, co makro zasugerowane powyżej, ale z jakiegoś powodu nie zrobiła nic po uruchomieniu Instalatora.

 0
Author: Chris Dragon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-23 21:02:58

Clang-format zapewnia dość zaawansowane opcje formatowania kodu źródłowego.

Wtyczka Visual Studio jest dość prymitywna, tzn. nie uruchamia się automatycznie, ale wykonuje swoją pracę dobrze(gdy jest wywoływana ręcznie).

Http://llvm.org/builds/

 0
Author: Rondom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 14:19:15