Dlaczego ciągle otrzymuję mieszane karty i spacje w oknie kodu C # programu Visual Studio 2010?

88

Właśnie pracowałem nad plikiem C # (Global.asax.cs) w aplikacji internetowej przez mniej więcej godzinę i cztery razy pokazano mi monit o „tabify” lub cokolwiek innego. Za każdym razem, gdy wybieram tabelę i zapisuję pliki, ale później w jakimś pozornie przypadkowym momencie ponownie pojawia się monit.

Używam ReSharper, ale to się nie dzieje, gdy koduję w domu, również używając ReSharper. Tylko w pracy.

ProfK
źródło
3
Czy ustawienie wcięcia tabulatora jest ustawione tak, że spacje można w pełni przekonwertować na tabulatory?
użytkownik
Dostaję to również w jednym z moich plików. Mam go dzisiaj raz do dwóch razy na godzinę. Jeszcze przed dodaniem pliku do kontroli źródła.
sindre j
12
@LostHobbit To ma znaczenie, ponieważ irytujący dialog ciągle pojawia się i przerywa mój przepływ.
ProfK

Odpowiedzi:

146

Czy używasz rozszerzenia Productivity Power Tools VS 2010? Jeśli tak, przejdź do Tools-> Options-> i wybierz Productivity Power Tools. Tutaj możesz wyłączyć opcję Fix Mixed Tabs. Spowoduje to wyłączenie tego ostrzeżenia.

Narzędzia elektryczne dla programu Visual Studio 2010

Narzędzia elektryczne dla programu Visual Studio 2012

Narzędzia elektryczne dla programu Visual Studio 2013

Narzędzia elektryczne dla programu Visual Studio 2015

Justin Saraceno
źródło
20
Wolę zachować ostrzeżenie i zamiast tego pozbyć się pomieszanych tabulatorów i spacji.
ProfK
2
@ProfK czy losowy punkt, w którym ponownie zostanie wyświetlony monit, miałby miejsce po tym, jak ktoś inny sprawdzi zmiany w tym pliku (jeśli używasz kontroli źródła)? Może ty i ktoś inny macie inaczej zdefiniowane pola tabulacji w VS.
Justin Saraceno,
7
Trudno zobaczyć, jak to jest produktywne. Wyłącz karty za pomocą Narzędzia + Opcje, Edytor tekstu. Były używane w poprzednim wieku do oszczędzania bajtów.
Hans Passant,
6
@Hans, produktywność korzystania z zakładek nie ma tutaj żadnego znaczenia.
ProfK
35
Produktywność zakładek została dobrze omówiona, a zakładki mają więcej zalet niż zwykły rozmiar danych. Zakładki mają konfigurowalne szerokości dla osób o różnych preferencjach wcięć pracujących nad tym samym projektem. Gdyby wszyscy skonfigurowali swój VS tak, aby używał różnej liczby spacji zamiast tabulatorów, kod stałby się bałaganem, ale jeśli wszyscy używają tabulatorów i konfigurują szerokość tabulatora zgodnie ze swoimi preferencjami wizualnymi, kod pozostanie czysty i każdy dostanie ciasto i też je zjada. Jaka jest korzyść z używania przestrzeni?
TheXenocide,
61

Pomieszane karty i spacje mogą pochodzić z ustawień edytora tekstu programu Visual Studio. Możesz zdecydować, czy chcesz, aby Visual Studio wstawiało spacje lub tabulatory tutaj:

Narzędzia / Opcje / -> Edytor tekstu / Wszystkie języki / Karty, wybierz opcję „Zachowaj karty”.

Brykać
źródło
6
To naprawdę właściwa odpowiedź na zadane pytanie i wynik, który @ProfK chciał osiągnąć.
Reality Extractor
11

Wybierz opcję „Untabify”, ponieważ VS domyślnie używa spacji, a nie tabulatorów. Jeśli wybierzesz opcję „Tabify”, następnym razem, gdy dodasz linię, VS użyje spacji, a monit będzie się pojawiał w kółko.

pbb
źródło
9

Resharperużywa oddzielnych ustawień tab / space do programu Visual Studio. W Resharperopcjach zaznacz „Ogólny styl formatowania -> Jak wyrównać, gdy tabulatory są używane do wcięć”. To ustawienie jest używane podczas resharperformatowania kodu (na przykład refaktoryzacji itp.) I domyślnie jest to „Przestrzenie użytkownika”.

Ponadto w menu „ Edycja -> Zaawansowane ” znajduje się opcja „Wyświetl odstępy” (Ctrl + E, S), która może się przydać!

Tirinoarim
źródło
Dobra opcja (opcja View Whitespace)! +1
Ignacio Soler Garcia