visual studio ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°
Code style preferences
You can define code style settings per-project by using an EditorConfig file, or for all code you edit in Visual Studio on the text editor Options page. For C# code, you can also configure Visual Studio to apply these code style preferences using the Code Cleanup (Visual Studio 2019) and Format Document (Visual Studio 2017) commands.
This topic applies to Visual Studio on Windows. For Visual Studio for Mac, see Editor behavior in Visual Studio for Mac.
Code styles in EditorConfig files
Code styles in the Options dialog box
Code style preferences can be set for all of your C# and Visual Basic projects by opening the Options dialog box from the Tools menu. In the Options dialog box, select Text Editor > [C# or Basic] > Code Style > General.
Each item in the list shows a preview of the preference when selected:
Preference and severity
For each code style setting on this page, you can set the Preference and Severity values using the drop-downs on each line. Severity can be set to Refactoring Only, Suggestion, Warning, or Error. If you want to enable Quick Actions for a code style, ensure that the Severity setting is set to something other than Refactoring Only. The Quick Actions light bulb , error light bulb
, or screwdriver
icon appears when a non-preferred style is used, and you can choose an option on the Quick Actions list to automatically rewrite code to the preferred style.
Enforce code styles on build
Apply code styles
You can configure the Format Document command (Edit > Advanced > Format Document) to apply your code style settings (from an EditorConfig file or Code Style options) along with the regular formatting that it does (such as indentation). If an .editorconfig file exists for the project, those settings take precedence.
Applying code styles by using the Format Document command is only available for C# code files. This is an experimental feature.
Configure which settings you want Format Document to apply on the Formatting options page.
Rules configured with a severity of None don’t participate in code cleanup but can be individually applied via the Quick Actions and Refactorings menu.
The first time you trigger the Format Document command, a yellow info bar prompts you to configure your code cleanup settings.
For C# code files, Visual Studio 2019 has a Code Cleanup button at the bottom of the editor (keyboard: Ctrl+K, Ctrl+E) to apply code styles from an EditorConfig file or from the Code Style options page. If an .editorconfig file exists for the project, those are the settings that take precedence.
Rules configured with a severity of None don’t participate in code cleanup but can be individually applied via the Quick Actions and Refactorings menu.
First, configure which code styles you want to apply (in one of two profiles) in the Configure Code Cleanup dialog box. To open this dialog box, click the expander arrow next to the code cleanup broom icon and then choose Configure Code Cleanup.
After you’ve configured code cleanup, you can either click on the broom icon or press Ctrl+K, Ctrl+E to run code cleanup. You can also run code cleanup across your entire project or solution. Right-click on the project or solution name in Solution Explorer, select Analyze and Code Cleanup, and then select Run Code Cleanup.
If you want your code style settings to be applied every time you save a file, you may like the Code Cleanup on Save extension.
Color Themes
Color themes let you modify the colors in Visual Studio Code’s user interface to suit your preferences and work environment.
Selecting the Color Theme
The active color theme is stored in your user settings (keyboard shortcut β, (Windows, Linux Ctrl+, ) ).
Tip: By default, the theme is stored in your user settings and applies globally to all workspaces. You can also configure a workspace specific theme. To do so, set a theme in the Workspace settings.
Color Themes from the Marketplace
There are several out-of-the-box color themes in VS Code for you to try.
Many more themes have been uploaded to the VS Code Extension Marketplace by the community. If you find one you want to use, install it and restart VS Code and the new theme will be available.
You can search for themes in the Extensions view ( β§βX (Windows, Linux Ctrl+Shift+X ) ) search box using the @category:»themes» filter.
Customizing a Color Theme
Workbench colors
You can customize your active color theme with the workbench.colorCustomizations and editor.tokenColorCustomizations user settings.
You can use IntelliSense while setting workbench.colorCustomizations values or, for a list of all customizable colors, see the Theme Color Reference.
To customize a specific theme only, use the following syntax:
Editor syntax highlighting
To tune the editor’s syntax highlighting colors, use editor.tokenColorCustomizations in your user settings settings.json file:
Note: Directly configuring TextMate rules is an advanced skill as you need to understand on how TextMate grammars work. Go to the Color Theme guide for more information.
Again, to customize a specific theme only, use the following syntax:
Editor semantic highlighting
Some languages (currently: TypeScript, JavaScript, Java) provide semantic tokens. Semantic tokens are based on the language service’s symbol understanding and are more accurate than the syntax tokens coming from the TextMate grammars that are driven by regular expressions. The semantic highlighting that is computed from the semantic tokens goes on top of syntax highlighting and can correct and enrich the highlighting as seen in the following example:
The «Tomorrow Night Blue» color theme without semantic highlighting:
The «Tomorrow Night Blue» color theme with semantic highlighting:
Notice the color differences based on language service symbol understanding:
Users can override the theme setting by:
When semantic highlighting is enabled and available for a language, it is up to the theme to configure whether and how semantic tokens are colored. Some semantic tokens are standardized and map to well-established TextMate scopes. If the theme has a coloring rule for these TextMate scopes, the semantic token will be rendered with that color, without the need for any additional coloring rules.
Additional styling rules can be configured by the user in editor.semanticTokenColorCustomizations» :
To see what semantic tokens are computed and how they are styled, users can use the scope inspector (Developer: Inspect Editor Tokens and Scopes), which displays information for the text at the current cursor position.
More information on semantic tokens and styling rule syntax can be found in the Semantic Highlighting Guide.
Creating your own Color Theme
Creating and publishing a theme extension is easy. Customize your colors in your user settings then generate a theme definition file with the Developer: Generate Color Theme From Current Settings command.
VS Code’s Yeoman extension generator will help you generate the rest of the extension.
See the Create a new Color Theme topic in our Extension API section to learn more.
Remove default Color Themes
You can disable a built-in theme extension as you would any other VS Code extension with the Disable command on the gear context menu.
File Icon Themes
File icon themes can be contributed by extensions and selected by users as their favorite set of file icons. File icons are shown in the File Explorer and tabbed headings.
Selecting the File Icon Theme
By default, the Seti file icon set is used and those are the icons you see in the File Explorer. Once a file icon theme is selected, the selected theme will be remembered and appear again whenever VS Code is restarted. You can disable file icons by selecting None.
VS code ships with two file icon themes; Minimal and Seti. To install more file icon themes, select the Install Additional File Icon Themes item in the file icon theme picker and you’ll see a query for file icon themes (tag:icon-theme) in the Extensions view.
You can also browse the VS Code Marketplace site directly to find available themes.
The active File Icon theme is persisted in your user settings (keyboard shortcut β, (Windows, Linux Ctrl+, ) ).
Creating your own File Icon Theme
You can create your own File Icon Theme from icons (preferably SVG), see the File Icon Theme topic in our Extension API section for details.
Next steps
Themes are just one way to customize VS Code. If you’d like to learn more about VS Code customization and extensibility, try these topics:
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Visual Studio
ΠΠ· ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΠ΅ΠΌΡ Visual Studio ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ²Π΅ΡΠ° Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°.
Π Visual Studio 2022 Preview ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π²Π°ΡΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ Windows. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠ³Π° ΠΠΈΠ±ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ Π΄Π»Ρ Visual Studio.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Visual Studio Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Visual Studio, Π΅ΡΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎΠ³ΠΎ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Visual Studio Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Visual Studio, Π΅ΡΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎΠ³ΠΎ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Visual Studio ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ΅ΠΌΠ° Π‘ΠΈΠ½ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π΅ Π½Π° ΡΠ΅ΠΌΡ Π’Π΅ΠΌΠ½Π°Ρ.
Π ΡΡΡΠΎΠΊΠ΅ ΠΌΠ΅Π½Ρ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ°Π·Π΄Π΅Π»Ρ Π€Π°ΠΉΠ» ΠΈ ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π‘ΡΠ΅Π΄ΡΡΠ²Π° > ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ > ΠΠ±ΡΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π¦Π²Π΅ΡΠΎΠ²Π°Ρ ΡΠ΅ΠΌΠ° Π½Π° Π’Π΅ΠΌΠ½Π°Ρ ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΠ.
Π¦Π²Π΅ΡΠΎΠ²Π°Ρ ΡΠ΅ΠΌΠ° Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE) Visual Studio ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Π’Π΅ΠΌΠ½Π°Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΠ΅ΠΌ Visual Studio ΠΈΠ· Visual Studio Marketplace. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, Π² ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΌΡΡ ΡΠΏΠΈΡΠΊΠ΅ Π¦Π²Π΅ΡΠΎΠ²Π°Ρ ΡΠ΅ΠΌΠ° ΠΏΠΎΡΠ²ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΠ΅ΠΌ Visual Studio ΠΈΠ· Visual Studio Marketplace.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ² ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΡΠΎΠ² ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ XML-ΡΠ°ΠΉΠ», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π ΡΡΡΠΎΠΊΠ΅ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π€Π°ΠΉΠ» > Π‘ΠΎΠ·Π΄Π°ΡΡ > Π€Π°ΠΉΠ».
Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ±ΡΠΈΠ΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ XML-ΡΠ°ΠΉΠ» ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΊΡΡΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ Π±ΠΈΡΡΠ·ΠΎΠ²ΡΠΉ, Π° Π°ΡΡΠΈΠ±ΡΡΠΎΠ² XML (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ id=»bk101″ ) β Π³ΠΎΠ»ΡΠ±ΠΎΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ²Π΅Ρ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π² ΡΡΡΠΎΠΊΠ΅ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π‘Π΅ΡΠ²ΠΈΡ > ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΡΠ΅Π΄Π° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π¨ΡΠΈΡΡΡ ΠΈ ΡΠ²Π΅ΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π’Π΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ,βΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ Π½Π°ΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ. Π Π°ΡΠΊΡΠΎΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ Π΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠΈΡΡΡ ΠΈ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ°.
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊΠΈ, Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ. Π ΠΏΠΎΠ»Π΅ ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ²Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠ»ΠΈΠ²ΠΊΠΎΠ²ΡΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΈΡΡΠΎΠ² ΠΈ ΡΠ²Π΅ΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π½Π° C++ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π€ΡΠ½ΠΊΡΠΈΠΈ C++ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°ΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ²Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² XML. Π ΡΠΏΠΈΡΠΊΠ΅ ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠΊΡΡΡΠΈΡΠ΅ Π²Π½ΠΈΠ· Π΄ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΡΡΠΈΠ±ΡΡ XML ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π΅Π³ΠΎ. Π ΠΏΠΎΠ»Π΅ ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ²Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π’ΡΠ°Π²ΡΠ½ΠΎΠΉ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ ΡΡΠ°Π½Π΅Ρ ΠΎΠ»ΠΈΠ²ΠΊΠΎΠ²ΡΠΌ, Π° ΡΠ²Π΅Ρ XML-Π°ΡΡΠΈΠ±ΡΡΠΎΠ² β ΡΡΠΊΠΎ-ΡΡΠ°Π²ΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΠ΄ΠΎΠΌ C++ ΠΈ C#, ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π½Π΅Ρ ΠΎΠ»ΠΈΠ²ΠΊΠΎΠ²ΡΠΌ.
ΠΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²Π΅ΡΠ° Π² Visual Studio. ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Visual Studio Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° EditorConfig
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² EditorConfig ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° Π·Π° ΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠΎΠ΄Π°. ΠΡΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Visual Studio Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠΈΠ»Ρ ΠΈ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ·ΡΠΊ C#, IntelliCode ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° EditorConfig.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ IntelliCode ΡΠ°ΠΉΠ» EditorConfig Π² Visual Studio Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π»ΠΈΠ±ΠΎ Π² ΠΏΠ°ΠΏΠΊΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ). Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» EditorConfig, ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π² ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠΎΠ±Π°Π²ΠΈΡΡ > ΠΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° (IntelliCode).
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ IntelliCode Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΎ ΡΡΠΈΠ»Π΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΡΠ΅Π΄ΡΡΠ²Π° > ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ > IntelliCode. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΠ΄Π° C#. ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Visual Studio 2019.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° EditorConfig Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠΎΠ΄Π° ΠΈΠ· Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ ΠΊΠΎΠ΄Π° ΡΠΌ. Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±Π»ΠΎΠ³Π°.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°ΠΉΠ»Π° EditorConfig
ΠΠ°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΡΠΈΠ»Π΅ ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΠ°ΠΉΠ»Π° EditorConfig Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΡΠΈΡΡΠΊΠ° ΠΊΠΎΠ΄Π° (Visual Studio 2019) ΠΈΠ»ΠΈ Π€ΠΎΡΠΌΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (Visual Studio 2017).
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ
IntelliCode Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ, Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°. Π ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ IntelliCode ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΡΠΈΠ»Π΅:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° Π² Visual Studio 2017
ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
Visual Studio 2017 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ EditorConfig. ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ code style ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· EditorConfig.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ EditorConfig?
EditorConfig β ΡΡΠΎ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΡΠΈΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π· (codebases). Π€Π°ΠΉΠ»Ρ EditorConfig Π»Π΅Π³ΠΊΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ EditorConfig ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ Π² Π²Π°ΡΠΈΡ Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π°Π΄ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» .editorconfig Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«ΠΊΠΎΡΠ½Π΅Π²ΡΡ Β» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² .editorconfig (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ / IDE ΠΏΠΎ Π²ΡΠ±ΠΎΡΡ):
# top-most EditorConfig file
root = true
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ EditorConfig ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ Π²Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°Π²Π΅ΡΡ Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΈΡ Π΄Π°Π»ΡΡΠ΅ Π²Π½ΠΈΠ· Π² ΡΠ²ΠΎΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Roslyn ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Compilers Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ var, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ» .editorconfig, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ var, ΠΈ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠΎΡ EditorConfig ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Compilers, ΡΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ root = true (ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Roslyn Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ).
ΠΡΠ°Π²ΠΈΠ»Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΡΠ°Π²ΠΈΠ»Π° ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ:
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΡΡΠΈ ΠΈ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ:
Π‘ΠΎΠ²Π΅Ρ: ΡΠ΅ΡΡΠ΅ ΡΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅ΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²Π°ΡΡ ΠΆΠΈΠ·Π½Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ Π½Π° ΠΏΡΠΈΡΡΠ½ΡΠΉ ΡΠΎΠ·ΠΎΠ²ΡΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Tools > Options > Environment > Fonts and Colors > Suggestion ellipses (β¦) ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ²Π΅Ρ (R: 255, G: 136, B: 196):
ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² Visual Studio
ΠΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ» EditorConfig ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΡΠ΅ EditorConfig ΡΠ°ΠΉΠ», ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΡΡΡΡ ΠΈ ΠΎΡΠΊΡΡΡΡ Π²ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π°Ρ Π΅ΡΡΡ. Π§ΡΠΎΠ±Ρ Π²Π΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΡΡ ΠΏΡΠ°Π²ΠΈΠ» ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² Π²Π°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Format Document (Ctrl + K, D). ΠΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ΄, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Ρ Π±ΡΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (Ctrl +.), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡΠΌ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅/ΠΏΡΠΎΠ΅ΠΊΡΠ΅/ΡΠ΅ΡΠ΅Π½ΠΈΠΈ.
Π‘ΠΎΠ²Π΅Ρ: Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈΠ»ΠΈ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Edit > Advanced > View White Space.
ΠΠΎ ΠΊΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ°ΠΉΠ» EditorConfig ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ? ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π½ΠΈΠΆΠ½ΡΡ ΡΡΡΠΎΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Visual Studio ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ EditorConfig ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ Π² ΠΌΠ΅Π½Ρ Tools > Options.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΡΠ»ΡΠΆΠ± ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ EditorConfig ΡΠ°ΠΉΠ»Π° Π² VS, Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ EditorConfig Language Service.
ΠΡΠ²ΠΎΠ΄
Visual Studio 2017 β ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΏΠ΅Π½ΡΠΊΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ EditorConfig Π² Visual Studio 2017, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ.