19

Często znajduję się w sytuacjach, w których chciałbym wprowadzić wcięte dyrektywy preprocesora, takie jak reszta kodu (np. #if z wcięciem takim jak if). To seems legal, to jest common sense that it's sometimes a good thing, ale Visual nie ułatwi.Wcięcie dyrektyw preprocesora w Visual C++ 2010

Czy istnieje sposób, aby uniemożliwić edytorowi Visual C++ 2010 przyklejenie kodu do lewej strony za każdym razem, gdy niewinnie naciskałem #? A żeby nie złamać wcięcia dyrektyw preprocesora z automatycznym wcięciem (CTRL + K, CTRL + F)? A może nawet lepiej, aby obsługiwać dyrektywy preprocesorów, jak wszystko inne?

+2

Z tego powodu zacząłem używać zewnętrznego edytora do edycji ciężkiego kodu preprocesora ... – ybungalobill

Odpowiedz

13

Moje podejście jest utrzymanie # w pierwszej kolumnie i wciąć późniejsze słowa, jak w:

#ifdef FIRST 
# include "first.h" 
#else 
# include "second.h" 
#endif 
+2

Z wyjątkiem, że nie będziesz w stanie wybrać wielu linii i (Shift +) Tab. – ybungalobill

+1

+1 dla dobrego stylu preprocesora. Boost używa tego stylu i jest o wiele jaśniejsze, które linie są dyrektywami preprocesora, przy zachowaniu rozgałęzienia wcięcia – Pyrce

+0

+1, ponieważ jest to rzeczywiście dobre, często widziane obejście. Ale nadal uważam, że odpowiednie wsparcie dla wcięć sprawiłoby, że byłbym szczęśliwszy. Więc poczekam i zobaczę, czy dostanę inne odpowiedzi. –

10

W Visual Studio 2010 (opcje Narzędzia-> Opcje)

idź do tekstu Edytor -> C/C++ -> Zakładki

Pod wcięciem wybierz Blokuj zamiast sprytnego.

Zapobiegnie to naciśnięciu klawisza # na początku linii, jednak jeśli użyjesz Ctrl + K Ctrl + F, to nadal będzie stosować inteligentne formatowanie i usuwać karty.

Edytuj: Spowoduje to również wyłączenie automatycznego wcięcia/cofania w innych miejscach. Strzec się.

2

Obejście: Kiedy po raz pierwszy wpisać # i Visual Studio usunie wcięcie, naciśnij ctrl + oo cofnąć formatowanie auto.

8

W pewnym momencie visualstudio (zaznaczone vs2015) uzyskał opcje> edytor tekstu> c/C++> formatowanie> wcięcie> położenie dyrektyw preprocesora. Wybierz "pozostaw wcięcie". Próbka nie wygląda dokładnie tak, jak chcesz, ale działa, po prostu spróbuj.

+2

Wygląda na to, że to ustawienie zostało dodane w VS2015. –

+0

Jest to wyraźnie przyjęta odpowiedź. :) Chociaż byłoby dobrze, gdyby używał tego [Ctrl] + [K] [Ctrl] + [F]. :( – GazB

Powiązane problemy