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?
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.
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 .
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
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).
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.
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
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>
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.
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).
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