Udostępnij za pośrednictwem


Definiowanie spójnych stylów kodowania za pomocą polecenia EditorConfig

Aby wymusić spójne style kodowania dla wszystkich, którzy pracują w bazie kodu, możesz dodać .editorConfig plik do rozwiązania lub projektu. Ustawienia pliku EditorConfig są zgodne ze specyfikacją formatu pliku utrzymywaną przez EditorConfig.org. Wiele edytorów kodu i aplikacji obsługuje pliki EditorConfig, w tym program Visual Studio. Ponieważ ustawienia znajdują się w pliku, towarzyszą one kodowi i mogą być używane nawet poza programem Visual Studio.

W programie Visual Studio ustawienia pliku EditorConfig mają pierwszeństwo przed różnymi globalnymi ustawieniami edytora tekstów dostępnymi w obszarze Narzędzia>Opcje>Edytor>tekstu C/C++>Code Style. Możesz użyć pliku EditorConfig, aby dostosować każdą bazę kodu do używania ustawień edytora tekstów specyficznych dla tego projektu.

Możesz ręcznie wypełnić plik EditorConfig lub automatycznie wygenerować go na podstawie ustawień stylu kodu wybranych w programie Visual Studio. Aby utworzyć nowy .editorconfig plik na podstawie bieżących ustawień programu Visual Studio, w menu głównym programu Visual Studio wybierz pozycję Narzędzia>Opcje>Edytor>tekstów C/C++>General. Następnie wybierz pozycję Generuj plik editorconfig z ustawień. Wybierz folder, w którym znajduje się projekt, a następnie wybierz pozycję Wybierz folder , aby zapisać .editorconfig plik.

Jeśli używasz pliku EditorConfig, nadal możesz ustawić własne preferencje edytora osobistego w edytorze tekstów programu Visual Studio. Te ustawienia edytora tekstów mają zastosowanie zawsze, gdy pracujesz w bazie kodu bez pliku EditorConfig lub gdy plik EditorConfig nie zastępuje określonego ustawienia. Przykładem takiej preferencji jest użycie kart lub spacji dla stylu wcięcia kodu.

Po dodaniu pliku EditorConfig do projektu w programie Visual Studio tylko nowe wiersze kodu są formatowane na podstawie ustawień EditorConfig. Formatowanie istniejącego kodu nie zostanie zmienione, chyba że uruchomisz jedno z następujących poleceń:

  • Oczyszczanie kodu.

    Wybierz pozycję Oczyszczanie kodu w edytorze programu Visual Studio lub naciśnij Ctrl K, Ctrl++E. To polecenie dotyczy ustawień odstępów, takich jak styl wcięcia i wybrane ustawienia stylu kodu, takie jak preferencje nawiasów.

  • Formatuj dokument.

    Wybierz pozycję Edytuj>dokument w formacie zaawansowanym>lub naciśnij Ctrl+K, Ctrl+D w profilu domyślnym. To polecenie dotyczy tylko ustawień odstępu, takich jak styl wcięcia.

Spójność kodu

Ustawienia pliku EditorConfig umożliwiają zachowanie spójnych stylów kodowania i konwencji w bazie kodu, niezależnie od używanego edytora lub środowiska IDE. Niektóre style kodowania, które można kontrolować, to styl wcięcia, szerokość tabulacji, znaki końca wiersza i kodowanie. Jeśli na przykład baza kodu języka C# ma konwencję, która używa pięciu znaków spacji, dokumenty używają kodowania UTF-8, a wiersze kończą się znakiem CR/LF, możesz skonfigurować plik EditorConfig tak, aby korzystał z tej konwencji.

Pliki EditorConfig są przydatne, gdy konwencje kodowania używane w projektach osobistych różnią się od konwencji używanych w projektach zespołu. Na przykład możesz wolisz, aby wcięcie dodaje znak tabulacji w kodzie. Jednak twój zespół może zamiast tego wolisz, że wcięcie dodaje cztery miejsca. Pliki EditorConfig rozwiążą ten problem, umożliwiając skonfigurowanie dla każdego scenariusza.

.editorconfig Ponieważ plik w bazie kodu zawiera ustawienia EditorConfig, są one przesyłane wraz z bazą kodu. O ile plik kodu zostanie otwarty w edytorze zgodnym z edytorem EditorConfig, ustawienia edytora tekstów zostaną aktywowane.

Uwaga

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

Obsługiwane ustawienia

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

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • zestaw znaków
  • trim_trailing_whitespace
  • insert_final_newline
  • root

Plik EditorConfig obsługuje wszystkie języki obsługiwane przez program Visual Studio, z wyjątkiem ustawień edytora EditorConfig obsługiwanych przez język XML.

Aplikacja EditorConfig obsługuje konwencje stylu kodu, w tym konwencje 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 program Visual Studio formatuje wszystkie nowe wiersze kodu pisane zgodnie z ustawieniami pliku EditorConfig. Jednak program Visual Studio nie konwertuje istniejących stylów na nowe, dopóki nie sformatujesz dokumentu ani nie uruchomisz oczyszczania kodu. Jeśli na przykład wcięcia w pliku są sformatowane za pomocą kart i dodasz plik EditorConfig, który formatuje wcięcia ze spacjami, znaki wcięcia nie są automatycznie konwertowane na spacje. Po sformatowaniu dokumentu (wybierz pozycję Edytuj>dokument w formacie zaawansowanym>lub naciśnij Ctrl K, Ctrl++D), ustawienia odstępu w pliku EditorConfig są stosowane do istniejących wierszy kodu.

Jeśli usuniesz plik EditorConfig z projektu lub bazy kodu, musisz zamknąć i ponownie otworzyć wszystkie otwarte pliki kodu dla ustawień edytora globalnego, aby wywłaszać nowe wiersze kodu.

Dodawanie pliku EditorConfig do projektu

Aby dodać plik EditorConfig do projektu lub rozwiązania, wykonaj następujące kroki:

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

  2. Z menu wybierz pozycję Projekt>Dodaj nowy element lub naciśnij Ctrl+Shift+A.

    Zostanie otwarte okno dialogowe Dodawanie nowego elementu .

  3. W polu wyszukiwania wprowadź ciąg editorconfig.

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

    Zrzut ekranu przedstawiający szablony elementów pliku EditorConfig w programie Visual Studio.

  4. Wybierz szablon pliku editorconfig (pusty), aby dodać plik EditorConfig wstępnie wypełniony domyślnymi opcjami EditorConfig dla białych znaków, stylu kodu i konwencji nazewnictwa. Możesz też wybrać szablon pliku editorconfig (.NET), aby dodać plik EditorConfig wstępnie wypełniony domyślnymi odstępami na platformie .NET, stylem kodu i konwencjami nazewnictwa.

    Nowy .editorconfig plik zostanie wyświetlony w Eksplorator rozwiązań i zostanie otwarty w edytorze jako nowa karta.

    Zrzut ekranu przedstawiający plik .editorconfig w Eksplorator rozwiązań i edytorze.

  5. Opcjonalnie edytuj plik, a następnie zapisz go.

Inne sposoby dodawania pliku EditorConfig

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

Hierarchia plików i pierwszeństwo

Po dodaniu .editorconfig pliku do folderu w hierarchii plików jego ustawienia mają zastosowanie do wszystkich odpowiednich plików na tym poziomie i na niższym poziomie. Można również zastąpić ustawienia EditorConfig dla określonego projektu, bazy kodu lub części bazy kodu, tak aby korzystały z różnych 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.

Postępuj zgodnie z tymi wytycznymi:

  • Aby zastąpić niektóre lub wszystkie ustawienia EditorConfig, dodaj .editorconfig plik na poziomie hierarchii plików, które mają zostać zastosowane. Nowe ustawienia pliku EditorConfig mają zastosowanie do plików na tym samym poziomie i w dowolnych podkatalogach.

    Zrzut ekranu przedstawiający hierarchię EditorConfig.

  • Jeśli chcesz zastąpić niektóre, ale nie wszystkie ustawienia, określ tylko te ustawienia w .editorconfig pliku. Tylko te właściwości, które jawnie wyświetlasz w pliku niższego poziomu .editorconfig , są zastępowane. Inne ustawienia z plików wyższego poziomu .editorconfig nadal mają zastosowanie.

  • Jeśli chcesz mieć pewność, że żadne ustawienia z plików wyższego poziomu .editorconfig nie są stosowane do tej części bazy kodu, dodaj root=true właściwość do pliku niższego poziomu .editorconfig .

    # top-most EditorConfig file for this level
    root = true
    

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

Edytowanie plików EditorConfig

Program Visual Studio 2022 udostępnia edytor wizualny plików EditorConfig.

Po zmodyfikowaniu pliku EditorConfig należy ponownie załadować pliki kodu, aby nowe ustawienia zaczęły obowiązywać.

Program Visual Studio pomaga edytować pliki EditorConfig, udostępniając listy uzupełniania funkcji IntelliSense. Na przykład:

Zrzut ekranu przedstawiający funkcję IntelliSense w pliku EditorConfig.

Jeśli edytujesz wiele plików EditorConfig, przydatne może być rozszerzenie EditorConfig Language Service. Niektóre funkcje tego rozszerzenia obejmują wyróżnianie składni, ulepszoną funkcję IntelliSense, walidację i formatowanie kodu.

Zrzut ekranu przedstawiający funkcję IntelliSense z rozszerzeniem EditorConfig Language Service.

Przykład

Poniższy przykład przedstawia stan wcięcia fragmentu kodu języka C# przed i po dodaniu pliku EditorConfig do projektu:

  1. W oknie dialogowym Opcje narzędzi>ustaw ustawienia edytora>tekstów C#>Tabs dla edytora tekstów programu Visual Studio, aby utworzyć cztery znaki spacji po naciśnięciu Tab.

    Zrzut ekranu przedstawiający ustawienie karty Edytor tekstu.

  2. Zgodnie z oczekiwaniami po naciśnięciu Tab w następnym wierszu wcięcie wiersza przez dodanie czterech znaków odstępu.

    Zrzut ekranu przedstawiający Tab dodający spacje w kodzie.

    Zrzut ekranu przedstawiający Tab dodający spacje w kodzie.

  3. Użyj polecenia EditorConfig, aby przełączyć ustawienie kart, aby używać kart.

    Wybierz pozycję Użyj kart w pliku EditorConfig.

    Zrzut ekranu przedstawiający konfigurowanie używania kart dla Tab.

    Dodaj nowy plik o nazwie .editorconfig do projektu z następującą zawartością. Wskaźnik [*.cs] oznacza, że ta zmiana ma zastosowanie tylko do plików kodu języka C# w projekcie.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. Po naciśnięciu Tab znaki tabulacji są teraz wyświetlane zamiast spacji.

    Zrzut ekranu przedstawiający Tab z dodawaniem znaków tabulacji w kodzie.

    Zrzut ekranu przedstawiający Tab z dodawaniem znaków tabulacji w kodzie.

Rozwiązywanie problemów z ustawieniami EditorConfig

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

User preferences for this file type are overridden by this project's coding conventions.

Oznacza to, że jeśli jakiekolwiek ustawienia edytora w edytorze narzędzi>Opcje>tekstu (takie jak rozmiar wcięcia i styl, rozmiar karty lub konwencje kodowania) są określone w pliku EditorConfig w lub powyżej projektu w strukturze katalogu, konwencje w pliku EditorConfig zastępują ustawienia w Edytorze tekstów.

Aby rozwiązać problemy z konfiguracją EditorConfig, wykonaj następujące kroki:

  1. Aby wyłączyć obsługę polecenia EditorConfig dla programu Visual Studio, wyczyść opcję Śledź konwencje kodowania projektu w edytorze tekstów Opcje>narzędzi.>

    Zrzut ekranu przedstawiający ustawienie Postępuj zgodnie z konwencjami kodowania projektu.

  2. Aby znaleźć wszystkie pliki EditorConfig w katalogach nadrzędnych projektu, otwórz wiersz polecenia i uruchom następujące polecenie z katalogu głównego dysku zawierającego projekt.

    dir .editorconfig /s
    
  3. Aby kontrolować zakres konwencji EditorConfig, ustaw root=true właściwość w pliku w .editorconfig katalogu głównym repozytorium lub w katalogu, w którym znajduje się projekt.

    Program 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 znalezienia .editorconfig pliku z root=true .