Режим редактирования в visual studio
Редактор Visual Studio предоставляет множество возможностей, облегчающих написание кода и текста, а также управление им. Используя структуру, вы можете разворачивать и сворачивать различные блоки кода. Получить дополнительные сведения о коде можно с помощью технологии IntelliSense, окна Обозреватель объектов и иерархии вызовов. Для поиска в коде можно использовать такие функции, как Перейти, Перейти к определению и Найти все ссылки. Вставлять блоки кода можно с помощью фрагментов кода. Код также можно создавать с помощью функций, таких как Создание в результате использования. Если вы ранее не работали в редакторе Visual Studio, см. статью со сведениями об использовании редактора кода.
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Редактор исходного кода (Visual Studio для Mac).
Код можно просматривать различными способами. По умолчанию в обозревателе решений код упорядочен по файлам. Чтобы просмотреть код, упорядоченный по классам, можно выбрать вкладку Представление классов в нижней части окна.
Можно выполнять поиск и замену текста в одном или нескольких файлах. Дополнительные сведения см. в статье Поиск и замена текста. Регулярные выражения платформы используются для поиска и замены текста. Дополнительные сведения см. в статье Использование регулярных выражений в Visual Studio.
Разные языки Visual Studio предоставляют разные наборы функций, а в некоторых случаях одни и те же функции ведут себя по-разному в разных языках. Многие из этих отличий указаны в описаниях функций. Дополнительные сведения можно найти в разделах, посвященных конкретным языкам Visual Studio.
Возможности редактора
Дополнительные возможности редактирования
В меню Правка > Дополнительно на панели инструментов есть набор дополнительных функций. Не все они доступны для каждого типа файлов кода.
Функция | Описание |
---|---|
Форматировать документ | Установка правильного отступа строк кода и перемещение фигурных скобок для разделения строк в документе. |
Форматировать выделенный фрагмент | Установка правильного отступа строк кода и перемещение фигурных скобок для разделения строк в выделенном фрагменте. |
Преобразовать пробелы в знаки табуляции в выделенных строках | Замена начальных пробелов на знаки табуляции там, где это уместно. |
Преобразовать знаки табуляции в пробелы в выделенных строках | Замена начальных знаков табуляции на пробелы. Если требуется преобразовать все пробелы в знаки табуляции в файле (или все знаки табуляции в пробелы), можно использовать команды Edit.ConvertSpacesToTabs и Edit.ConvertTabsToSpaces . Эти команды не включены в меню Visual Studio, но их можно вызывать из окна быстрого доступа или окна командной строки. |
Все прописные | Перевод всех символов в выделенном фрагменте в верхний регистр или, если ничего не выбрано, перевод символа в позиции курсора в верхний регистр. Ярлык. CTRL+SHIFT+U. |
Все строчные | Перевод всех символов в выделенном фрагменте в нижний регистр или, если ничего не выбрано, перевод символа в позиции курсора в нижний регистр. Ярлык. CTRL+U. |
Переместить выбранные строки вверх | Перемещение выбранной строки вверх на одну строку. Ярлык. ALT+СТРЕЛКА ВВЕРХ. |
Переместить выбранные строки вниз | Перемещение выбранной строки вниз на одну строку. Ярлык. ALT+ВНИЗ. |
Удалить пустое пространство по горизонтали | Удаление символов табуляции и пробелов в конце текущей строки. Ярлык. CTRL+K, CTRL+ \ |
Показать пустое пространство | Отображение пробелов в виде приподнятых точек, а символов табуляции — в виде стрелок. Конец файла отображается как прямоугольный глиф. Если с помощью меню выбран вариант Сервис > Параметры > Текстовый редактор > Все языки > Перенос по словам > Показывать графические метки в местах переноса слов, этот глиф также будет отображаться. |
Перенос по словам | В этом режиме все строки документа отображаются полностью в окне кода. Перенос по словам можно включить или отключить в разделе Все языки для текстового редактора (Сервис > Параметры > Текстовый редактор > Все языки). |
Закомментировать выделенный фрагмент | Добавление символов комментария к выбранному фрагменту или текущей строке. Ярлык. CTRL+K, CTRL+C |
Раскомментировать выделенный фрагмент | Удаление символов комментария из выбранного фрагмента или текущей строки. Ярлык. CTRL+K, CTRL+U |
Увеличить отступ строки | Добавление символа табуляции (или эквивалентных пробелов) к выбранным строкам или текущей строке. |
Уменьшить отступ строки | Удаление символа табуляции (или эквивалентных пробелов) из выбранных строк или текущей строки. |
Выбрать тег | Выбор тега в документе, содержащем теги (например, XML или HTML). |
Выделить содержимое тега | Выбор содержимого в документе, содержащем теги (например, XML или HTML). |
Перемещение по коду и поиск
Перемещаться по редактору кода можно несколькими способами, включая переход назад и вперед к точкам вставки, просмотр определения типа или члена и переход к определенному методу с помощью панели навигации. Дополнительные сведения см. в статье Навигация по коду.
Поиск ссылок в базе коде
Чтобы найти, где именно в базе кода используются ссылки на элементы кода, можно использовать команду Найти все ссылки или нажать SHIFT+F12. Кроме того, когда вы щелкаете тип или член, функция выделения ссылок автоматически выделяет все ссылки на него. Дополнительные сведения см. в разделе Поиск ссылок в коде.
Создание, исправление или рефакторинг кода
Visual Studio помогает создавать, исправлять код и выполнять его рефакторинг самыми разными способами.
Вы можете использовать фрагменты кода для вставки шаблона, такого как блок switch или объявление enum.
Вы можете использовать быстрые действия для создания кода, например классов и свойств, или для введения локальной переменной. Кроме того, быстрые действия можно использовать для улучшения кода, например для удаления ненужных приведений и переменных либо для добавления проверок значений NULL перед обращением к переменным.
Вы можете выполнять рефакторинг кода, например чтобы переименовывать переменные, изменять порядок параметров метода или синхронизировать тип с его именем файла.
Настройка редактора
Вы можете использовать свои параметры Visual Studio совместно с другим разработчиком, привести параметры в соответствие со стандартом или вернуться к настройкам, заданным по умолчанию в Visual Studio, с помощью команды Мастер импорта и экспорта параметров в меню Сервис. В мастере импорта и экспорта параметров можно изменить выбранные общие параметры, а также зависящие от языка и проекта параметры.
Чтобы определить новые или переопределить существующие сочетания клавиш, выберите Сервис > Параметры > Среда > Клавиатура. Дополнительные сведения о сочетаниях клавиш см. в статье Сочетания клавиш по умолчанию в Visual Studio.
Параметры редактора для JavaScript см. в статье о параметрах редактора JavaScript.
В этом 10-минутном введении, посвященном редактору кода в Visual Studio, мы добавим код в файл, чтобы рассмотреть некоторые способы, упрощающие написание, понимание кода и навигацию по нему в Visual Studio.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Создание файла кода
Для начала создайте файл и добавьте в него код.
Запустите Visual Studio.
В меню Файл в строке меню выберите Создать > Файл.
Запустите Visual Studio. Нажмите клавишу ESC или нажмите Продолжить без кода в окне запуска, чтобы открыть среду разработки.
В меню Файл в строке меню выберите Создать > Файл.
Запустите Visual Studio. Нажмите клавишу ESC или щелкните команду Продолжить без кода в окне запуска, чтобы открыть среду разработки.
В меню Файл в строке меню выберите элементы Создать > Файл или нажмите клавиши CTRL+N.
Использование фрагментов кода
Появится всплывающее диалоговое окно с информацией о фрагменте кода svm .
Два раза нажмите клавишу TAB, чтобы вставить фрагмент кода.
Вы увидите, как в файл добавляется сигнатура метода static void Main() .
Поместите курсор над последней закрывающей фигурной скобкой > в файле и введите символы svm .
Появится всплывающее диалоговое окно с информацией о фрагменте кода svm .
Два раза нажмите клавишу TAB, чтобы вставить фрагмент кода.
Список включает фрагменты кода для создания класса, конструктора, цикла for, операторов if и switch и многое другое.
Закомментирование кода
Панель инструментов, которая находится в строке кнопок под строкой меню в Visual Studio, поможет повысить продуктивность написания кода. Например, можно переключить режим завершения IntelliSense (IntelliSense — это помощник в написании кода, который отображает список подходящих методов и многое другое), увеличить или уменьшить отступ строки или закомментировать код, который вы не хотите компилировать. В этом разделе мы закомментируем код.
Вставьте следующий код в тело метода Main() .
Мы не используем переменную morewords , но, возможно, воспользуемся ею позднее, поэтому удалять ее полностью не следует. Вместо этого давайте закомментируем эти строки. Выберите все определение формы morewords до закрывающей точки с запятой и нажмите кнопку Закомментировать выделенные строки на панели инструментов. Если вы предпочитаете использовать клавиатуру, нажмите Ctrl+K, Ctrl+C.
Панель инструментов текстового редактора, которая представляет строку с кнопками под строкой меню в Visual Studio, делает написание кода более продуктивным. Например, вы можете переключить режим завершения IntelliSense, увеличить либо уменьшить отступ для строк или закомментировать фрагмент кода, который не нужно компилировать.
Давайте закомментируем некоторую часть кода.
Вставьте следующий код в тело метода Main() .
Мы не используем переменную moreWords , но, возможно, применим ее позднее. Поэтому удалять ее не следует. Вместо этого мы закомментируем эти строки. Выберите все определение moreWords до закрывающей точки с запятой и нажмите кнопку Закомментировать выделенные строки на панели инструментов текстового редактора. Если вы предпочитаете использовать клавиатуру, нажмите клавиши CTRL+E, C.
Если нужно раскомментировать строки, выберите их, а затем нажмите кнопку Раскомментировать выбранные строки на панели инструментов текстового редактора. Если вы предпочитаете использовать клавиатуру, нажмите клавиши CTRL+E, U.
Свертывание блоков кода
Нам не нужно отображать пустой конструктор, созданный для Class1 . Поэтому, чтобы не перенасыщать представление кода деталями, мы свернем его. Выберите небольшое серое поле со знаком "минус" внутри в поле первой строки конструктора. Или, если вы предпочитаете использовать клавиатуру, поместите курсор в любое место кода конструктора и нажмите клавиши CTRL+M, CTRL+M.
Блок кода сворачивается до первой строки, после которой идет многоточие ( . ). Чтобы развернуть блок кода, щелкните то же серое поле, в котором теперь находится знак "плюс", или нажмите клавиши CTRL+M, CTRL+M еще раз. Эта функция называется структурированием и особенно полезна при свертывании длинных методов или целых классов.
Нам не нужно отображать пустой конструктор, созданный для Class1 . Поэтому, чтобы не перенасыщать представление кода деталями, мы свернем его. Выберите небольшое серое поле со знаком "минус" внутри в поле первой строки конструктора. Или, если вы предпочитаете использовать клавиатуру, поместите курсор в любое место кода конструктора и нажмите клавиши CTRL+M, CTRL+M.
Блок кода сворачивается до первой строки, после которой идет многоточие ( . ). Чтобы развернуть блок кода, щелкните то же серое поле, в котором теперь находится знак "+", или нажмите клавиши CTRL+M, CTRL+M еще раз. Эта функция называется структурированием и особенно полезна при свертывании длинных методов или целых классов.
Просмотр определений символов
В редакторе Visual Studio можно легко проверить определение типа, метода и т. д. Один из способов заключается в том, чтобы перейти к файлу, который содержит определение, например, выбрав Перейти к определению в любом месте, где указана ссылка на этот символ. Сделать это еще быстрее и даже без перемещения фокуса с рабочего файла можно с помощью команды Показать определение. Давайте посмотрим определение типа string .
Щелкните правой кнопкой мыши любой из экземпляров string и выберите пункт Показать определение в контекстном меню. Или нажмите Alt+F12.
Отображается всплывающее окно с определением класса String . Вы можете прокрутить его или даже показать определение другого типа из просматриваемого кода.
Закройте окно просматриваемого определения, щелкнув небольшое поле со знаком "x" в его правом верхнем углу.
В редакторе Visual Studio можно легко проверить определение типа, метода или переменной. Один из способов — перейти к файлу, который содержит определение. Для этого выберите команду Перейти к определению или нажмите клавишу F12 в любом месте, где указана ссылка на этот символ. Сделать это еще быстрее и даже без перемещения фокуса с кода можно, щелкнув команду Показать определение.
Давайте посмотрим определение типа string .
Щелкните правой кнопкой мыши любой из экземпляров string и выберите пункт Показать определение в контекстном меню. Или нажмите клавиши ALT+F12.
Отображается всплывающее окно с определением класса String . Вы можете прокрутить его или даже показать определение другого типа из просматриваемого кода.
Закройте окно просматриваемого определения, щелкнув небольшое поле со знаком Х справа в верхнем углу.
Использование IntelliSense для завершения слов
Технология IntelliSense крайне полезна при написании кода. Она может отображать сведения о доступных членах типа или сведения о параметрах для различных перегрузок метода. Вы также можете использовать IntelliSense для завершения слова после того, как ввели достаточно знаков для однозначного его определения. Давайте добавим строку кода для вывода упорядоченных строк в окне консоли — это стандартное место для отображения выходных данных программы.
Начните набирать следующий код под переменной query .
Вы видите, как IntelliSense показывает Краткие сведения о символе query .
Чтобы вставить оставшуюся часть слова query с помощью функции завершения слов IntelliSense, нажмите клавишу Tab.
Завершите блок кода, чтобы он выглядел аналогично приведенному ниже примеру кода. Вы даже можете снова попрактиковаться в использовании фрагментов кода, введя cw и дважды нажав клавишу TAB, чтобы создать код Console.WriteLine .
Технология IntelliSense крайне полезна при написании кода. Она может отображать сведения о доступных членах типа или сведения о параметрах для различных перегрузок метода. Вы также можете использовать IntelliSense для завершения слова после того, как ввели достаточно знаков для однозначного его определения.
Давайте добавим строку кода для вывода упорядоченных строк в окне консоли — это стандартное место для отображения выходных данных программы.
Начните набирать следующий код под переменной query .
Вы увидите всплывающее окно IntelliSense с информацией о символе query .
Чтобы вставить оставшуюся часть слова query с помощью функции завершения слов IntelliSense, нажмите клавишу TAB.
Завершите блок кода, чтобы он выглядел аналогично приведенному ниже примеру кода. Вы можете попрактиковаться, используя фрагменты кода. Для этого введите cw и дважды нажмите клавишу TAB, чтобы создать оператор Console.WriteLine .
Рефакторинг имени
Никто не пишет код правильно с первого раза, и, среди прочего, вам может потребоваться изменить имя переменной или метода. Давайте попробуем использовать функциональность рефакторинга Visual Studio, чтобы переименовать переменную _words в words .
Поместите курсор на определение переменной _words и выберите пункт Переименовать в контекстном меню или нажмите клавиши CTRL+R, CTRL+R.
В верхней правой части редактора отображается всплывающее диалоговое окно Переименование.
Введите нужное имя words. Обратите внимание, что ссылка на words в запросе также переименовывается автоматически. Перед нажатием клавиши ВВОД установите флажок Включить комментарии во всплывающем окне Переименование.
Нажмите клавишу ВВОД.
Переименованы были оба экземпляра words , а также ссылка на words в комментарии кода.
Никто не пишет код правильно с первого раза, и, среди прочего, вам может потребоваться изменить имя переменной или метода. Давайте попробуем использовать функциональность рефакторинга Visual Studio, чтобы переименовать переменную someWords в unsortedWords .
Поместите курсор на определение переменной someWords и выберите команду Переименовать в контекстном меню или нажмите клавишу F2.
Справа в верхней части окна редактора отобразится диалоговое окно Переименование.
Введите имя unsortedWords. Вы увидите, что ссылка на unsortedWords в операторе назначения query также переименовывается автоматически. Прежде чем нажать клавишу ВВОД или щелкнуть действие Применить, установите флажок Включить комментарии во всплывающем окне Переименовать.
Нажмите клавишу ВВОД или щелкните команду Применить в диалоговом окне Переименование.
Оба вхождения someWords в коде, а также текст someWords в комментарии к коду были переименованы.
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.
Горячая перезагрузка позволяет вносить изменения в исходный код приложения во время его выполнения без необходимости приостанавливать его вручную или создавать точку останова. Теперь прямо во время работы приложения можно внести в код изменение из числа тех, что поддерживаются для горячей перезагрузки, нажать кнопку «Применить изменения кода» в новом интерфейсе Visual Studio — и изменение будет сразу же применено.
Мы стремились сделать горячую перезагрузку доступной независимо от того, как вы предпочитаете запускать свои приложения. Представленную сегодня версию можно использовать в отладчике Visual Studio, с которым она полностью интегрирована, а также через командную строку ( dotnet watch ). В следующих выпусках появятся и другие варианты.
Начало работы
Visual Studio
Использование горячей перезагрузки в Visual Studio при работе с отладчиком:
Скачайте и установите Visual Studio 2019 16.11 (предварительная версия 1).
Откройте проект поддерживаемого типа, например приложение WPF.
Запустите приложение с подключенным отладчиком клавишей F5 (удостоверьтесь, что параметр «Разрешить отладку машинного кода» в настройках/профиле запуска отладчика отключен).
Примените изменения кода с помощью новой кнопки Применить изменения кода (ALT + F10) на панели инструментов Visual Studio (рядом с кнопкой Продолжить). Сохранять файлы при использовании Visual Studio не нужно — можно быстро внести в код изменение и двигаться дальше.
Если внесенное изменение поддерживается, обновленная логика будет применена к запущенному приложению, и вы увидите изменения в его работе при следующем выполнении обновленного кода (по действию или при выполнении активирующего условия, например по таймеру).
Интерфейс командной строки (CLI)
Использование горячей перезагрузки из командной строки при запуске приложения с помощью dotnet watch:
Добавьте свойство " hotReloadProfile ": " aspnetcore " в профиль запуска приложения ( launchSettings.json ).
Пример файла Properties/launchSettings.json :
Запустите проект с помощью команды dotnet watch и убедитесь, что в выводе указано, что горячая перезагрузка активирована.
Внесите в управляемый исходный код приложения поддерживаемое изменение и сохраните файл, чтобы применить это изменение.
Как и в Visual Studio, с этого момента начнет применяться новая логика: при следующем выполнении обновленного кода вы увидите изменения в работе приложения.
Этот же подход можно использовать с проектами Blazor WebAssembly: следует изменить профиль горячей перезагрузки blazorwasm и далее действовать, как описано выше. Можно попробовать его даже с Windows Forms и другими типами проектов на платформе CoreCLR: для этого вручную добавьте в папку Properties файл с именем launchSettings.json и тем же содержимым, что в предыдущем примере.
Примеры ниже позволяют составить представление о том, какие возможности мы планируем реализовать в будущих предварительных выпусках и окончательной версии:
Работа в Visual Studio без отладчика. В будущем выпуске Visual Studio 2022 мы планируем добавить поддержку горячей перезагрузки без отладчика. Это значит, что даже при запуске приложения сочетанием клавиш CTRL + F5 разработчики смогут вносить изменения в выполняемое приложение.
Таковы планы на данный момент. Они не окончательные: мы будем прислушиваться к отзывам пользователей и ориентироваться на график выпусков.
Поддерживаемые и неподдерживаемые изменения и языки
Нам важны ваши отзывы
Конечно, в этой ранней предварительной версии будут ошибки. Иногда при попытке применить изменение ничего не будет происходить, иногда возможно аварийное завершение приложения и т. п. Если вы столкнетесь с какими-либо проблемами, сообщите нам о них — это не займет много времени. Ваша поддержка поможет нам эффективно устранить критические проблемы и определить приоритеты для дальнейшей работы.
Также приглашаем всех желающих на открытый урок «Управление конфигурациями микросервисов». На занятии обсудим один из подходов, используемых в реальных high-load проектах.
VSCode — самый популярный редактор кода среди веб-разработчиков. Вы можете использовать его с нуля, однако со временем его базовых функций станет недостаточно. Рассказываю, как сам докрутил этот редактор под свои потребности.
Статья дорабатывается по вашим замечаниям. Спасибо всем за комментарии.
Вводная часть
История появления редактора
VSCode разрабатывается в Microsoft и унаследовал имя от их тяжеловесного IDE — Visual Studio. Первый релиз был аж в апреле 2015 года. В 2016 году редактор стал доступен для всех желающих.
Особенности
Сделан с помощью Electron.js, то есть под капотом у него HTML + CSS + JS
Поддерживает разработку на разных языках: Java, JavaScript, Go, Node.js, Python, C++ и так далее (см. Расширения)
Имеет ОГРОМНОЕ количество настроек, которыми удобно управлять
Многие фичи скрыты из графического интерфейса, но их можно найти через Command Pallete ( cmd/win + shift + P )
Возможности редактора могут быть дополнены с помощью расширений
Удобный и быстрый магазин расширений внутри редактора и через браузер
Собирает данные и шлёт их в Microsoft, но телеметрию можно отключить в настройках
В среднем скорость отклика медленнее, чем у нативных конкурентов
Преимущества
Быстрее, чем типичное приложение на Electron.js
Плотная интеграция с Github
Плотная интеграция с TypeScript
Низкий порог входа
Можно настроить под себя почти что угодно
Настройки
Настройки — это моя любимая часть VSCode. За пять лет я потратил на них десятки часов (если не сотни).
JSON vs UI
У настроек есть два режима просмотра/управления:
Стандартный просмотр через UI с категориями и поиском
Использую для поиска по настройкам или для просмотра возможных значений
Просмотр большого JSON со всеми изменёнными настройками
Использую во всех остальных случаях, к тому же чаще
Забавно, что шоткат для настроек cmd/win + , по умолчанию вызывает именно JSON-режим. А для GUI-режима нужно нажать более длинный cmd/win + shift + , . Наверное, это исторически так сложилось 🤷♂️
Синхронизация настроек
VSCode сам научился синхронизировать настройки между устройствами. До этого требовалось расширение и пара гистов на Гитхабе.
Кажется, тут нечего добавить, потому что синхронизация легко настраивается через меню «Шестерёнка» (требует логина через Github).
Сортировка и поиск настроек через JSON
В режиме JSON мы видим только те параметры, которые отличаются от настроек по умолчанию. Если вы открыли VSCode впервые, то в файле будет только <> . Со временем, по мере подстройки редактора, он наполнится — в моём сейчас 370 строк.
Чтобы было удобнее ориентироваться, я использую автосортировку по алфавиту (с помощью расширения JSON-sort) и пользуюсь поиском по ключевым словам в файле.
VSCode сам линтит этот JSON: предупреждает об ошибках, подсказывает имена настроек и делает тусклыми неиспользуемые опции.
Полезные настройки
Некоторые из моих любимых! Их можно просто скопировать себе в JSON с настройками.
Доводка редактора
Улучшение JS
Эти настройки позволяют делать статическую типизацию в JS без использования TypeScript.
Прочее
Расширения
Я часто ищу новые расширения и отключаю бесполезные. Для того чтобы накопить несколько десятков любимых расширений, мне потребовалось 5 лет. Ищи favorite list ниже ;)
Featured
VSCode помимо хорошего поиска и удобных категорий имеет тэг с отборными расширениями, которые меняются примерно раз в месяц. Рекомендую иногда в него заглядывать, чтобы находить свежие и интересные штуки.
Любимые расширения
Улучшает подсветку ошибок, ворнингов и прочей информации
Быстрая замена регистра и стиля написания выделенного текста: CONSTANT_CASE, snake_case, etc.
Material Icon Theme
Иконки в стиле Material Design, но главное что их очень много и они гармоничнее прочих. По-моему лучшие.
Лёгкий способ переключать проекты в редакторе
Quit Control for VSCode
Для тех, кто периодически всё проклинает из-за случайно нажатого CMD + Q . Спасительная штука.
GitLens — Git supercharged
Git GUI на стероидах прямо в VSCode. Тот случай, когда 80% проблем легче решить из графического интерфейса, чем в терминале.
New Relic CodeStream: GitHub, GitLab, Bitbucket PRs and Code Review
Единый интерфейс для отправки, ревью и приёма ваших PR и MR в VSCode с удобным интерфейсом. Можно даже не заходить на сайт бесплатного и устаревшего self-hosted GitLab вашей конторы вашего хостинга для Гита
Markdown All in One
Всё, что вам надо для написания Markdown (keyboard shortcuts, table of contents, auto preview and more)
Open in browser
Автокомплит для путей до файлов
Prettier - Code formatter
Автоматическое форматирование кода почти без настроек
JS/TS интерактивная среда исполнения кода прямо в VSCode
Как Postman, но в виде файлов в вашем проекте
Нейросетевые подсказки кода экономящие вам время
Turbo Console Log
console.log по шоткату с генерацией подписей. Всё.
Штука, которая считает время написания кода, а не просто время открытого тикета или редактора. Есть подробная статистика.
Auto Rename Tag
Автоматическое переименование парных тэгов в HTML и JSX
Улучшенное комментирование кода с помощью аннотаций с предупреждениями, информацией, TODO и многим другим!
Интегрирует ESLint JavaScript в VS Code.
Продвинутая подсветка для новейшего стандарта JS
Указание цвета с колорпикером рядом с цветовыми кодами.
Draw.io внутри VSCode
EditorConfig for VS Code
Визуализация ветвления в Git
GitHub Pull Requests and Issues
Работа с Github PRs и Issues внутри VSCode
Управление репозиториями на Github через VSCode
HTML CSS Support
Продвинутые возможности по авто-рефакторингу кода (как у IntelliJ IDEA)
IntelliSense for CSS class names in HTML
Автодополнение названий стилевых классов в HTML
Возможность поиска, проверки и подтверждения задач из LeetCode не выходя из VS Code
Совместное редактирование кода в реальном времени
Поддержка NPM для VS Code
Sort JSON objects
Умная сортировка JSON
Space Block Jumper
Для быстрого перемещения по блокам кода
🚀 Если у вас есть свои хитрости и находки, поделитесь в комментариях. Обсудим вместе!
Читайте также: