Как поправить код в visual studio
This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
What is the equivalent of Ctrl + K + F and Ctrl + K + D on Windows in Visual Studio for formatting, or "beautifying" code in the Visual Studio Code editor?
For all those desperately trying to format XML (which seems not possible out of the box currently) you can achieve this by installing an extension. I have found XML Tools to get the job done just fine. Disclaimer: I am not the author nor related to this project.
While VSCode has much fewer menu options than VS (new trend?), it has extensive info and tutorials under the HELP menu, which may have answered this question.
For all those struggling to get the formatting work even after trying the valid combinations in Visual Studio Code, don't forget to select the appropriate programming language type, it is at the bottom right in visual studio code window next to that smiley. Once you do that I found it works out of the box and you don't need any additional plugin to format code.
29 Answers 29
The code formatting is available in Visual Studio Code through the following shortcuts:
- On Windows Shift + Alt + F
- On Mac Shift + Option + F
- On Linux Ctrl + Shift + I
Alternatively, you can find the shortcut, as well as other shortcuts, through the 'Command Palette' provided in the editor with Ctrl + Shift + P (or Command + Shift + P on Mac), and then searching for format document.
Open command palette (Win: F1 or Ctrl + Shift + P )
Find "Change Language Mode"
Select language e.g. json . By now syntax should be highlighted.
Format document (e.g. Open Command Palette -> "Format Document")
- Select text
- Command Palette -> Join Lines
Also note that the code Language has to be correct. ie Format Code won't be available if plain text is selected but switching to JSON (for example) will format the selected text happily. (as happy as a text editor can be anyway)
@JoSmo: On Ubuntu, I opened File > Preferences > Keyboard Shortcuts. There is an item for < "key": "ctrl+shift+i", "command": "editor.action.format", "when": "editorTextFocus" >. The command "ctrl+shift+i" works for me.
Also, apparently the file has to be saved to disk first. I had a chunk of HTML+Javascript where it couldn't format the JS, so I pasted it to a temporary window and set the language, but this didn't help either until it was saved.
This doesn't work for me on VS Code latest version and win 10 does this assume having a certain extension installed?
Code Formatting Shortcut:
Visual Studio Code on Windows - Shift + Alt + F
Visual Studio Code on MacOS - Shift + Option + F
Visual Studio Code on Ubuntu - Ctrl + Shift + I
You can also customize this shortcut using a preference setting if needed.
Code Formatting While Saving the File:
Visual Studio Code allows the user to customize the default settings.
If you want to auto format your content while saving, add the below code snippet in the work space settings of Visual Studio Code.
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Поведение редактора в Visual Studio для Mac.
Стили кода в EDITORCONFIG-файлах
Стили кода в диалоговом окне "Параметры"
При выборе для каждого из элементов в списке выводится окно предварительного просмотра:
Параметры, заданные в этом окне, применяются к вашей учетной записи персонализации Visual Studio и не связаны с конкретным проектом или базой кода. Кроме того, они не применяются во время сборки, в том числе в сборках с непрерывной интеграцией (CI). Если вы хотите связать предпочтения к стилю кода со своим проектом и применяете стили во время сборки, укажите такие предпочтения в EDITORCONFIG-файле, связанном с проектом.
Предпочтения и степень серьезности
Для каждого параметра стиля кода на этой странице с помощью раскрывающихся списков в каждой строке можно задать значения для параметров Предпочтение и Серьезность. Для серьезности можно задать значения Только рефакторинг, Предложение, Предупреждение или Ошибка. Если вы хотите включить быстрые действия для стиля кода, убедитесь, что для параметра Серьезность задано значение, отличное от Только рефакторинг. Значок лампочки для быстрых действий , значок лампочки для ошибок или значок отвертки отображается при использовании альтернативного стиля. Вы можете выбрать нужный вариант в списке быстрых действий для автоматического повторного создания кода в предпочитаемом стиле.
Принудительное применение стиля кода в сборке
Применение стилей кода
Вы можете настроить команду Форматировать документ (Правка > Дополнительно > Форматировать документ) для применения параметров стиля кода (из EDITORCONFIG-файла или параметров стиля кода) вместе с регулярным форматированием (например, отступами). Если EDITORCONFIG-файл существует в проекте, его параметры имеют приоритет.
Вы можете выбрать, какие параметры команда Форматировать документ будет применять, на странице параметров форматирования.
Правила, настроенные с серьезностью Нет, не используются в ходе очистки кода, но могут применяться по отдельности через меню Быстрые действия и рефакторинг.
При первом запуске команды Форматировать документ вам следует настроить параметры очистки кода на желтой информационной панели.
Правила, настроенные с серьезностью Нет, не используются в ходе очистки кода, но могут применяться по отдельности через меню Быстрые действия и рефакторинг.
Во-первых, настройте стили кода, которые необходимо применять (в одном из двух профилей), используя диалоговое окно Настройка очистки кода. Чтобы открыть это диалоговое окно, щелкните стрелку рядом со значком метлы (очистка кода) и выберите команду Настроить очистку кода.
После настройки очистки кода вы можете щелкнуть значок метлы или нажать клавиши Ctrl+K, Ctrl+E, чтобы запустить очистку кода. Вы также можете выполнить очистку кода для всего проекта или решения сразу. Щелкните правой кнопкой мыши имя проекта или решения в обозревателе решений, выберите команду Анализ и очистка кода, а затем — Запустить очистку кода.
Правила, настроенные с серьезностью Нет, не используются в ходе очистки кода, но могут применяться по отдельности через меню Быстрые действия и рефакторинг.
Во-первых, настройте стили кода, которые необходимо применять (в одном из двух профилей), используя диалоговое окно Настройка очистки кода. Чтобы открыть это диалоговое окно, щелкните стрелку рядом со значком метлы (очистка кода) и выберите команду Настроить очистку кода.
После настройки очистки кода вы можете щелкнуть значок метлы или нажать клавиши Ctrl+K, Ctrl+E, чтобы запустить очистку кода. Вы также можете выполнить очистку кода для всего проекта или решения сразу. Щелкните правой кнопкой мыши имя проекта или решения в обозревателе решений, выберите команду Анализ и очистка кода, а затем — Запустить очистку кода.
Если вы хотите, чтобы параметры стиля кода применялись при каждом сохранении файла, выберите Параметры>Текстовый редактор>Очистка кода и щелкните Запустить профиль "Очистка кода" при сохранении.
Если вы хотите применять параметры стиля кода при каждом сохранении файла, вам может подойти расширение для очистки кода при сохранении.
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
Each item in the list shows a preview of the preference when selected:
Options set in this window are applicable to your Visual Studio personalization account and aren't associated with a particular project or codebase. In addition, they aren't enforced at build time, including in continuous integration (CI) builds. If you want to associate code style preferences with your project and have the styles enforced during build, specify the preferences in an .editorconfig file that's associated with the project.
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
Starting in Visual Studio 2019 version 16.8, which includes the .NET 5.0 RC2 SDK, you can enforce the .NET coding conventions on build for all .NET projects. At build time, .NET code style violations will appear as warnings or errors with an "IDE" prefix. This enables you to strictly enforce consistent code styles in your codebase.
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.
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.
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.
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, go to Options > Text Editor > Code Cleanup and select Run Code Cleanup profile on save.
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.
Visual Studio предоставляет разные средства для написания, редактирования и рефакторинга кода.
IntelliSense
IntelliSense — это мощное средство завершения кода, которое предлагает символы и фрагменты по мере ввода кода. IntelliSense C++ в Visual Studio выполняется в реальном времени, анализируя вашу базу кода по мере ее обновления и предоставляя рекомендации. Чем больше символов вы вводите, тем меньше предлагается рекомендуемых результатов.
Некоторые символы пропускаются автоматически, чтобы еще больше сократить список результатов. Например, обращаясь извне класса к элементам его объекта, вы не сможете просмотреть частные элементы (по умолчанию) или защищенные элементы (если вы не в контексте дочернего класса). Вы можете настроить фильтрацию с помощью кнопок в нижней части.
Параметр Режим фильтрации списка членов определяет, какие виды автозавершения IntelliSense вы видите. По умолчанию для этого параметра установлено значение Нечеткий. Если при нечетком поиске соответствий у вас есть символ, который называется MyAwesomeClass, вы можете ввести MAC и найти класс в предложениях автозаполнения. Алгоритм нечеткого поиска задает минимальный порог, которому должны соответствовать символы, отображаемые в списке. При интеллектуальной фильтрации будут отображаться все символы, которые содержат подстроки, соответствующие тому, что вы ввели. При фильтрации по префиксу выполняется поиск строк, которые начинаются с введенных вами символов.
IntelliCode
IntelliCode — это средство IntelliSense на основе ИИ, которое помещает предположительно наиболее подходящий результат в верхнюю часть списка завершения. Для создания рекомендаций IntelliCode анализирует тысячи проектов с открытым кодом на GitHub, каждый из которых имеет более 100 звезд. В сочетании с контекстом кода список завершения используется для популяризации распространенных приемов работы.
Когда вы пишете код на C++, IntelliCode помогает вам с использованием таких популярных библиотек, как стандартная библиотека C++. Контекст кода используется для ранжирования наиболее полезных рекомендаций. В следующем примере функция-член size часто используется с функцией sort , поэтому она будет отображена в верхней части списка результатов.
В Visual Studio 2022 и Visual Studio 2019 IntelliCode предоставляется как дополнительный компонент в рабочей нагрузке Разработка классических приложений на C++ . Чтобы включить IntelliCode для C++, последовательно выберите Средства>Параметры>IntelliCode>Общие и задайте для параметра Базовая модель C++ значение Включено.
В Visual Studio 2017 IntelliCode предоставляется как расширение в Visual Studio Marketplace.
Прогнозная технология IntelliSense (экспериментальная функция)
Прогнозная технология IntelliSense — это экспериментальная функция, которая ограничивает число результатов, отображаемых в раскрывающемся списке IntelliSense, на основе контекста. Алгоритм применяет сопоставление типов, чтобы отобразить только те результаты, которые соответствует ожидаемому типу. Самый просто пример: если ввести int x = и вызвать раскрывающийся список IntelliSense, вы увидите только целые числа или функции, которые их возвращают. Эта функция отключена по умолчанию, так как она еще разрабатывается. Лучше всего она работает с глобальными символами; функции-члены еще не поддерживаются. Можно включить эту функцию, введя "прогнозный" в поле быстрого запуска или последовательно выбрав Средства>Параметры>Текстовый редактор>C/C++>Экспериментальные функции>Включить прогнозный IntelliSense.
Чтобы переопределить прогнозный IntelliSense и отобразить длинный список, нажмите клавиши CTRL+J. Если прогнозный IntelliSense включен, вызов CTRL+J удалит прогнозный фильтр. Повторное нажатие CTRL+J снова удалит фильтр специальных возможностей из результатов списка членов, где это применимо. Использование кнопки ([+]) в раскрывающемся списке IntelliSense аналогично нажатию клавиш CTRL+J. Наведите указатель на кнопку, чтобы увидеть подсказку о том, что сейчас отображается.
На предыдущем снимке экрана показаны несколько кнопок в раскрывающемся списке. Они позволяют включить фильтры IntelliSense для получения разных типов результатов:
- Переменные и константы
- Функции
- Типы
- Макросы
- Перечисления
- Пространства имен
Кнопка отображается, только если это применимо в текущем сеансе IntelliSense. Как правило, все кнопки одновременно не отображаются.
Шаблон IntelliSense
Когда курсор находится в определении шаблона, отображается строка шаблона. Она позволяет предоставлять аргументы примера шаблона для IntelliSense.
Щелкните значок , чтобы развернуть или свернуть панель шаблонов. Щелкните значок карандаша или дважды щелкните строку шаблона, чтобы открыть окно Редактирование.
Изменения, вносимые в окне, применяются непосредственно к исходному коду, поэтому результаты отображаются в реальном времени.
Строка шаблона может автоматически предлагать вероятные варианты на основе экземпляров в коде. Щелкните Добавить все существующие экземпляры, чтобы просмотреть список всех аргументов, которые использовались для создания экземпляра шаблона, во всей базе кода.
В окне в нижней части редактора отображаются расположение и аргументы каждого экземпляра.
Сведения в строке шаблона обрабатываются как связанные с конкретным пользователем. Они хранятся в папке .vs и не фиксируются в системе управления версиями.
Подчеркивание ошибок и быстрые исправления
Если редактор определяет ошибку в коде, он подчеркнет ее цветной волнистой линией. Красные волнистые линии указывают на код, который не будет скомпилирован. Зеленые волнистые линии указывают на другие проблемы, которые также могут быть серьезными. Вы можете открыть окно Список ошибок, чтобы просмотреть дополнительные сведения о проблемах.
Для некоторых типов ошибок (а также общих шаблонов создания кода) редактор будет предлагать быстрое исправление в виде лампочки, которая отображается, если навести указатель мыши на волнистую линию. Щелкните стрелку вниз, чтобы просмотреть предложения.
В следующем примере мы объявили vector , но определение не найдено, поэтому редактор предлагает включить требуемый файл заголовка:
Редактор также предлагает быстрые исправления для определенных функций рефакторинга. Например, если объявить класс в файле заголовка, Visual Studio предложит создать для него определение в отдельном файле .cpp.
Change tracking
При каждом изменении файла слева отображается желтая полоска, указывающая на то, что внесены несохраненные изменения. При сохранении файла полоска становится зеленой. Зеленая и желтая полоски отображаются, пока документ открыт в редакторе. Они представляют изменения, внесенные с момента последнего открытия документа.
Перенос кода
Строки кода можно перемещать вверх и вниз. Для этого выберите их, удерживая нажатой клавишу ALT и одну из клавиш со стрелками (вверх или вниз).
Вставка фрагментов кода
Фрагмент — это предварительно определенная часть исходного кода. Щелкните правой кнопкой мыши одну точку или выбранный текст для вставки фрагмента или размещения выбранного текста внутри фрагмента. На следующем рисунке показана процедура размещения выбранного оператора в цикле for. На последнем изображении желтым цветом выделены редактируемые поля, доступ к которым осуществляется с помощью клавиши TAB. Дополнительные сведения см. в статье Фрагменты кода.
Добавить класс
Добавьте новый класс из меню Проект или контекстного меню в обозревателе решений:
Можно также использовать мастер классов для изменения или просмотра существующего класса.
Рефакторинг
Рефакторинг доступен в контекстном меню быстрых действий. Или можно щелкнуть лампочку в редакторе. Некоторые также находятся в меню Правка > Рефакторинг. Эти функции включают перечисленные ниже.
Применение стиля кода с помощью ClangFormat и EditorConfig
В Visual Studio, начиная с версии 2017, реализована поддержка ClangFormat — популярной служебной программы для форматирования кода C++ на основе Clang/LLVM. Введите ClangFormat в поле быстрого запуска, чтобы настроить использование одного из следующих распространенных форматов:
- LLVM
- Chromium
- Mozilla
- WebKit
- Visual Studio
Вы также можете предоставить свой собственный файл .clang-format или _clang-format, чтобы применять пользовательские правила ко всем файлам кода на том же уровне или ниже.
Эти файлы легко использовать совместно с помощью системы управления версиями, следовательно, вы можете применять соглашения о написании кода во всей группе разработчиков.
Visual Studio, начиная с версии 2017, также поддерживает EditorConfig — программу, которая работает аналогичным образом. Однако ClangFormat имеет больше параметров стиля, чем EditorConfig, включая правила, относящиеся к C++. С помощью EditorConfig вы можете создавать и размещать файлы .editorconfig в разных папках вашей базы кода, чтобы определять стили кода для этих папок и подпапок. Файл .editorconfig заменяет все другие файлы .editorconfig в родительских папках, перезаписывая все параметры форматирования, которые можно настроить, выбрав Средства>Параметры. Вы можете задать правила, определяющие использование табуляции и пробелов, настраивающие размер отступов и многое другое. См. подробнее о создании переносимых настраиваемых параметров редактора с помощью EditorConfig.
Другие параметры форматирования
Поле быстрого запуска — это самый быстрый способ найти нужный параметр или средство. Поле расположено в главном меню. Просто начните ввод и список автоматического завершения отфильтрует результаты.
Чтобы задать параметры форматирования, например отступы, завершение скобок и раскраску, введите C++ Formatting (Форматирование C++) в поле быстрого запуска.
Другие параметры форматирования можно настроить в главном меню, выбрав Изменить>Дополнительно.
Параметры для включения и настройки функций редактирования C++ можно настроить в разделе Сервис>Параметры>Текстовый редактор>C/C++ . Чтобы получить дополнительную справку после выбора параметра, который вы хотите задать, выделите диалоговое окно и нажмите клавишу F1. Чтобы просмотреть общие параметры форматирования кода, введите Editor C++ в поле быстрого запуска.
Экспериментальные функции, которые могут присутствовать или отсутствовать в будущих версиях Visual Studio, можно найти в диалоговом окне экспериментальных функций C++ для текстового редактора. В Visual Studio, начиная с версии 2017, в этом диалоговом окне можно включить прогнозную технологию IntelliSense.
Используйте страницу параметров Форматирование и ее вложенные страницы (Отступ, Новые строки, Интервал и Перенос) для задания параметров форматирования кода в редакторе кода.
В нижней части каждой вложенной страницы Отступ, Новые строки, Интервалы и Перенос отображается окно предварительного просмотра, в котором можно увидеть действие каждого параметра. Чтобы использовать окно предварительного просмотра, выберите параметр форматирования. В окне предварительного просмотра отображается пример выбранного параметра. При изменении параметра с помощью переключателя или флажка содержимое окна предварительного просмотра меняется, отображая эффект применения новой настройки.
Общие параметры
Эти параметры определяют, когда редактор кода применяет параметры форматирования к коду.
Метка | Описание |
---|---|
Автоматически форматировать при вводе | Если параметр не выбран, параметры форматирования оператора при вводе запятой ";" и форматирования блока при вводе фигурной скобки ">" отключены. |
Автоматически форматировать оператор при вводе ";" | Если установлен этот флажок, форматирование операторов выполняется по завершении в соответствии с выбранными для редактора параметрами. |
Автоматически форматировать блок при вводе ">" | Если установлен этот флажок, форматирование блоков кода выполняется в соответствии с выбранными для редактора параметрами, как только завершается блок кода. |
Автоматически форматировать при возврате | Если параметр выбран, при нажатии клавиши ВВОД текст форматируется в соответствии с параметрами форматирования, выбранными для редактора. |
Автоматически форматировать при вставке | Если этот параметр выбран, форматирование текста, вставляемого в редакторе, выполняется в соответствии с выбранными для редактора параметрами. |
Параметры форматирования документов
Эти параметры позволяют настроить команду Форматировать документ, чтобы выполнять дополнительную очистку кода в файле. Дополнительные сведения о применении этих параметров см. в разделе Команда "Форматировать документ".
Читайте также: