Tworzenie przenośnych, niestandardowych ustawień edytora za pomocą wtyczki EditorConfig

Możesz dodać plik EditorConfig do projektu lub bazy kodu, aby wymusić spójne style kodowania dla wszystkich osób, które będą korzystać z bazy kodu. Ustawienia EditorConfig mają pierwszeństwo przed globalnymi Visual Studio edytora tekstów. Oznacza to, że możesz dostosować każdą bazę kodu do używania ustawień edytora tekstów, które są specyficzne dla tego projektu. Nadal możesz ustawić własne preferencje edytora osobistego w oknie dialogowym Visual Studio opcje. Te ustawienia są stosowane zawsze, gdy pracujesz w bazie kodu bez pliku .editorconfig lub gdy plik .editorconfig nie przesłania określonego ustawienia. Przykładem takiej preferencji są wcięcia kart — stylów lub spacje.

Ustawienia EditorConfig są obsługiwane przez wiele edytorów kodu i edytorów IDE, w tym Visual Studio. Jest to przenośny składnik, który jest przesyłany wraz z kodem i może wymuszać style kodowania nawet poza Visual Studio.

Po dodaniu pliku EditorConfig do projektu w Visual Studio nowe wiersze kodu są formatowane zgodnie z ustawieniami EditorConfig. Formatowanie istniejącego kodu nie zostanie zmienione, chyba że zostanie uruchomione jedno z następujących poleceń:

  • Oczyszczanie kodu (Ctrl + K, Ctrl E ), które stosuje wszystkie ustawienia odstępu, takie jak styl wcięcia i wybrane ustawienia stylu kodu, takie jak sposób sortowania + using dyrektyw.
  • Edytuj > Zaawansowane > Formatuj dokument (lub Ctrl K, Ctrl D w profilu domyślnym), co powoduje zastosowanie tylko ustawień odstępu, + takich jak + styl wcięcia.

Po dodaniu pliku EditorConfig do projektu w Visual Studio nowe wiersze kodu są formatowane zgodnie z ustawieniami EditorConfig. Formatowanie istniejącego kodu nie zostanie zmienione, chyba że dokument zostanie sformatowany (Edytuj dokument w formacie zaawansowanym lub > > Ctrl + K, Ctrl + D w profilu domyślnym). Formatowanie dokumentu ma wpływ tylko na ustawienia białych znaków, takie jak styl wcięcia, chyba że skonfigurowano formatowanie dokumentu w celu wykonania dodatkowego czyszczenia kodu.

Na stronie Opcje formatowania można zdefiniować ustawienia EditorConfig, które mają być stosowane w opcji Formatuj dokument.

Uwaga

Ten temat dotyczy Visual Studio na Windows. Aby uzyskać Visual Studio dla komputerów Mac, zobacz EditorConfig w Visual Studio dla komputerów Mac.

Spójność kodu

Ustawienia plikach EditorConfig umożliwiają zachowanie spójnych stylów i ustawień kodowania w bazie kodu, takich jak styl wcięcia, szerokość karty, koniec znaków wiersza, kodowanie i inne, niezależnie od używanego edytora lub środowiska IDE. Jeśli na przykład podczas kodowania w języku C#, jeśli baza kodu ma konwencję preferowaną, że wcięcia zawsze składają się z pięciu znaków spacji, dokumenty używają kodowania UTF-8, a każdy wiersz zawsze kończy się znakiem CR/LF, można w tym celu skonfigurować plik .editorconfig.

Konwencje kodowania używane w projektach osobistych mogą różnić się od stosowanych w projektach zespołu. Na przykład wolisz, aby podczas kodowania wcięcie dodało znak tabuły. Jednak Twój zespół może preferować, aby wcięcie dodało cztery znaki spacji zamiast znaku tabułki. Pliki EditorConfig rozwiązują ten problem, umożliwiając konfigurację dla każdego scenariusza.

Ponieważ ustawienia znajdują się w pliku w bazie kodu, są one przenoszone wraz z tym bazą kodu. Tak długo, jak otworzysz plik kodu w edytorze zgodnym z editorconfig, zostaną zaimplementowane ustawienia edytora tekstów. Aby uzyskać więcej informacji na temat plików EditorConfig, zobacz witrynę EditorConfig.org sieci Web.

Uwaga

Konwencje ustawione w pliku EditorConfig nie mogą być obecnie wymuszane w potoku ci/cd jako błędy kompilacji lub ostrzeżenia. Wszelkie odchylenia stylu są wyświetlane tylko w edytorze Visual Studio i liście błędów.

Obsługiwane ustawienia

Edytor w Visual Studio obsługuje podstawowy zestaw właściwości EditorConfig:

  • indent_style
  • indent_size
  • tab_width
  • końcowy _ of_line
  • Charset
  • trim _ trailing_whitespace
  • wstawianie _ final_newline
  • root

Ustawienia edytora EditorConfig są obsługiwane we wszystkich Visual Studio obsługiwanych językach z wyjątkiem języka XML. Ponadto plik EditorConfig obsługuje konwencje stylu kodu,w tym konwencje dotyczące języka,formatowania i nazewnictwa dla języków C# i Visual Basic.

Dodawanie i usuwanie plików EditorConfig

Po dodaniu pliku EditorConfig do projektu lub bazy kodu wszystkie nowo pisane wiersze kodu są formatowane zgodnie z plikiem EditorConfig. Jednak dodanie pliku EditorConfig nie powoduje konwersji istniejących stylów na nowe, dopóki dokument nie zostanie sformatowany lub nie zostanie uruchomione oczyszczanie kodu. Jeśli na przykład w pliku znajdują się wcięcia sformatowane z tabulatorami i dodasz plik EditorConfig z wcięciami ze spacjami, znaki wcięcia nie są automatycznie konwertowane na spacje. Podczas formatowania dokumentu (Edytuj dokument w formacie zaawansowanym lub > > Ctrl + K, Ctrl + D) ustawienia białych spacji w pliku EditorConfig są stosowane do istniejących wierszy kodu.

Jeśli usuniesz plik EditorConfig z projektu lub bazy kodu i chcesz sformatować nowe wiersze kodu zgodnie z ustawieniami edytora globalnego, musisz zamknąć i ponownie otworzyć wszystkie otwarte pliki kodu.

Dodawanie pliku EditorConfig do projektu

  1. Otwórz projekt lub rozwiązanie w Visual Studio. Wybierz projekt lub węzeł rozwiązania, w zależności od tego, czy ustawienia pliku .editorconfig powinny być stosowane do wszystkich projektów w rozwiązaniu, czy tylko do jednego. Możesz również wybrać folder w projekcie lub rozwiązaniu, do których chcesz dodać plik .editorconfig.

  2. Na pasku menu wybierz pozycję Project > Dodaj nowy element lub naciśnij klawisze Ctrl + + A.

    Zostanie otwarte okno dialogowe Dodawanie nowego elementu.

  3. W polu wyszukiwania wyszukaj plik editorconfig.

    W wynikach wyszukiwania są wyświetlane dwa szablony elementów pliku editorconfig.

    Szablony elementów pliku EditorConfig w Visual Studio

  4. Wybierz szablon plik editorconfig (domyślny), aby dodać plik EditorConfig wstępnie zasypany dwiema podstawowymi opcjami EditorConfig dla stylu i rozmiaru wcięcia. Możesz też wybrać szablon editorconfig File (.NET), aby dodać plik EditorConfig wstępnie zasypany domyślnym stylem kodu .NET, formatowaniem i konwencjami nazewnictwa.

    Plik .editorconfig zostanie wyświetlony w Eksplorator rozwiązań i zostanie otwarty w edytorze.

    Plik .editorconfig w Eksplorator rozwiązań i edytorze

  5. Edytuj plik zgodnie z potrzebami.

Inne sposoby dodawania pliku EditorConfig

Istnieje kilka innych sposobów dodawania pliku EditorConfig do projektu:

  • Funkcja wnioskowania kodu funkcji IntelliCode dla Visual Studio wywnioskuje style kodu z istniejącego kodu. Następnie tworzy niepusty plik EditorConfig z już zdefiniowanymi preferencjami stylu kodu.

  • Począwszy od Visual Studio 2019 r., można wygenerować plik EditorConfig na podstawie ustawień stylu kodu w menu Opcje > narzędzi.

Hierarchia i pierwszeństwo plików

Po dodaniu pliku .editorconfig do folderu w hierarchii plików jego ustawienia mają zastosowanie do wszystkich odpowiednich plików na tym poziomie i poniżej. Można również przesłonić ustawienia EditorConfig dla określonego projektu, bazy kodu lub części bazy kodu, tak aby używało ono innych konwencji niż inne części bazy kodu. Może to być przydatne, gdy dołączasz kod z innego miejsca i nie chcesz zmieniać jego konwencji.

Aby przesłonić niektóre lub wszystkie ustawienia editorConfig, dodaj plik .editorconfig na poziomie hierarchii plików, które mają być stosowane przez zastąpione ustawienia. Nowe ustawienia pliku EditorConfig mają zastosowanie do plików na tym samym poziomie i wszystkich podkatalogach.

EditorConfig hierarchy (Hierarchia EditorConfig)

Jeśli chcesz zastąpić niektóre, ale nie wszystkie ustawienia, określ tylko te ustawienia w pliku .editorconfig. Przesłaniane są tylko te właściwości, które jawnie znajdują się na liście w pliku niższego poziomu. Inne ustawienia z plików editorconfig wyższego poziomu nadal mają zastosowanie. Jeśli chcesz upewnić się, że żadne ustawienia z plików editorconfig wyższego poziomu nie są stosowane do tej części bazy kodu, dodaj właściwość do pliku root=true editorconfig niższego poziomu:

# top-most EditorConfig file
root = true

Pliki EditorConfig są odczytywane od góry do dołu. Jeśli istnieje wiele właściwości o tej samej nazwie, pierwszeństwo ma ostatnio znaleziona właściwość o tej nazwie.

Edytowanie plików EditorConfig

Visual Studio edytowania plików .editorconfig, udostępniając listy uzupełniania IntelliSense.

Funkcja IntelliSense w pliku .editorconfig

Po edytowaniu pliku EditorConfig należy ponownie załadować pliki kodu, aby nowe ustawienia zostały wprowadzone.

Jeśli edytujesz wiele plików .editorconfig, przydatne może być rozszerzenie usługi językowej EditorConfig. Niektóre funkcje tego rozszerzenia obejmują wyróżnianie składni, ulepszone funkcje IntelliSense, walidację i formatowanie kodu.

Funkcja IntelliSense z rozszerzeniem usługi językowej EditorConfig

Przykład

W poniższym przykładzie pokazano stan wcięcia fragmentu kodu C# przed i po dodaniu pliku .editorconfig do projektu. Ustawienie Karty w oknie dialogowym Opcje dla edytora Visual Studio tekstu jest ustawiane w celu tworzenia spacji po naciśnięciu klawisza Tab.

Ustawienie karty Edytor tekstu

Zgodnie z oczekiwaniami naciśnięcie klawisza Tab w następnym wierszu umożliwia wcięcie wiersza przez dodanie czterech dodatkowych znaków odstępu.

Kod przed użyciem pliku EditorConfig

Dodaj do projektu nowy plik o nazwie .editorconfig z następującą zawartością. To [*.cs] ustawienie oznacza, że ta zmiana dotyczy tylko plików kodu C# w projekcie.

# Top-most EditorConfig file
root = true

# Tab indentation
[*.cs]
indent_style = tab

Teraz po naciśnięciu klawisza Tab zamiast spacji są dostępne znaki tabuli.

Klawisz Tab dodaje znak tabuły

Rozwiązywanie problemów z ustawieniami pliku EditorConfig

Jeśli w strukturze katalogów znajduje się plik EditorConfig w lokalizacji projektu lub nad Visual Studio, program stosuje ustawienia edytora w tym pliku do edytora. W takim przypadku na pasku stanu może zostać wyświetlony następujący komunikat:

"Preferencje użytkownika dla tego typu pliku są zastępowany przez konwencje kodowania tego projektu".

Oznacza to, że jeśli jakiekolwiek ustawienia edytora w Edytorze tekstów opcji narzędzi (takie jak rozmiar wcięcia i styl, rozmiar karty lub konwencje kodowania) są określone w pliku EditorConfig co najmniej na poziomie projektu w strukturze > > katalogów, konwencje w pliku EditorConfig zastępują ustawienia w obszarze Opcje. To zachowanie można kontrolować, klikając opcję Postępuj zgodnie z konwencjami kodowania projektu w edytorze tekstów > opcje > narzędzi. Usunięcie zaznaczenia tej opcji powoduje wyłączenie obsługi Visual Studio.

Opcje narzędzi — postępuj zgodnie z konwencjami kodowania projektu

Wszystkie pliki .editorconfig można znaleźć w katalogach nadrzędnych, otwierając wiersz polecenia i uruchamiając następujące polecenie w katalogu głównym dysku, który zawiera projekt:

dir .editorconfig /s

Zakres konwencji EditorConfig można kontrolować, ustawiając właściwość w pliku .editorconfig w katalogu głównym swojego repo lub w katalogu, w którym root=true znajduje się projekt. Visual Studio szuka pliku o nazwie .editorconfig w katalogu otwartego pliku i w każdym katalogu nadrzędnym. Wyszukiwanie kończy się po osiągnięciu ścieżki pliku głównego lub w przypadku, gdy zostanie znaleziony plik .editorconfig. root=true

Zobacz też