2011-03-09 17 views
12

Chcielibyśmy móc ponownie sformatować bloki/funkcje kodu C++ bezpośrednio z IDE Visual Studio, aby programiści łatwo mogli zapewnić, że nowy kod, który wstawiają, jest zgodny z naszymi wytycznymi dotyczącymi formatowania.Zaawansowane ponowne kodowanie kodu źródłowego (C++) za pomocą Visual Studio?

Znalazłem Artistic Style tool, który prawie obejmuje funkcje, których potrzebujemy. Jednak może on działać tylko na całych plikach z interfejsu CLI, więc nie jest zbyt pomocny w tym, co chcemy z niego zrobić. (Formatowanie całego pliku z pewnością nigdy nie jest tym, czego chcemy).)

Visual Studio (2005) ma ograniczone funkcje automatycznego formatowania, ale AFAICS, są to głównie poprawne wcięcia, których brakuje.

Moje pytanie brzmi, czy istnieją jakieś narzędzia, które mogą dokonać zaawansowanego formatowania na selekcji z VS IDE, a może jeśli istnieje wtyczka VS IDE korzystająca z AStyle?

Edytuj: Pytanie powiązane z poleceniem narzędzia - ProFactor's StyleManager - czy są jakieś inne narzędzia tego typu?

Uwaga [a]: Ponowne formatowanie całych plików lub całych drzew projektów jest przydatne tylko w przypadku projektów osobistych lub początkowych sprawdzeń kodu, IMHO. W przypadku (dużego) projektu zespołowego, ponowne sformatowanie kaszetki zepsuje historię zmian plików lub linii w plikach, co utrudni śledzenie, kto coś zmienił.

+1

Personalnie przeprowadzam "astyle" cyklicznie w całym projekcie. Pomaga to utrzymać spójny styl w plikach źródłowych. –

+0

http://stackoverflow.com/questions/1663794/visual-studio-unmanaged-c-code-formatter/1663828#1663828 –

+2

Dla twojej notatki [a]: Nigdy nie wpadłem na takie problemy. Mechanizm różnic używany przez większość systemu kontroli wersji (przynajmniej na Linuksie) jest tolerancyjny na przesuwanie linii. A astyle można skonfigurować tak, aby nie zmieniał sygnatur czasowych plików, które dotyka, aby nie wkręcał systemu kompilacji. Pod warunkiem, że prowadzisz astyle przed popełnieniem (lub przed budową) za każdym razem, nie ma absolutnie żadnego problemu. –

Odpowiedz

2

znalazłam na blogu, który opisuje, jak zintegrować zewnętrznego kodu formatowania z Visual Studio: Per-Project Code Formatting in Visual Studio

(. ..) Następnie możesz skonfigurować IDE (s), aby ich domyślne polecenia formatowania używały Uncrustify, np. W Visual Studio można ustawić zewnętrzne narzędzie o numerze . Zakładając, że plik uncrustify.cfg znajduje się obok plik rozwiązania, a następnie wiersz poleceń

-c $(SolutionDir)uncrustify.cfg --no-backup "$(ItemPath)"

ponownie sformatuje bieżący plik źródłowy. Następnie można przypisać mapowanie klawiatury (lub zmienić przypisanie dla Edit.FormatDocument, tak jak ja), aby uzyskać szybki dostęp do .

nie próbowałem go, ale wydaje się sprowadzać do konfigurowania formatowania (np AStlye/Uncrustify) jako narzędzie zewnętrzne w Visual Studio, aby móc nazwać go na plik źródłowy z IDE.

Nadal tylko na plik, ale wydaje się jednym z lepszych pomysłów znalazłem.

0

Pytanie jest nieco stare, ale problem nie jest.

Używam VS macro do prania kodu C++ przez nieuprawnienie i wyzwalania go za pomocą skrótu klawiaturowego (ALT + SHIFT + U, moje preferencje).Makro działa niezrealizowanie na aktualnie aktywnym dokumencie edytora, wysyła dane wyjściowe do pliku tymczasowego, a następnie zastępuje tekst bieżącego edytora danymi wyjściowymi niekompletności.

Oczywiście ten przepływ pracy zmienia cały kod w pliku, ale częste używanie skrótu sprawi, że Twój kod będzie ładny i czysty. Czy można sobie wyobrazić, że makro zostanie uruchomione automatycznie, gdy zmieni się n% tekstu edytora? Zostawię to dla guru EnvDTE.

Powiązane problemy