Поделиться через


Перемещение по коду С++ в Visual Studio

Visual Studio предоставляет набор средств, с помощью которых вы можете быстро и эффективно перемещаться по базе кода.

Открытие включенного файла

Щелкните правой кнопкой мыши директиву #include и выберите Перейти к документу. Или же нажмите клавишу F12, наведя курсор на строку, чтобы открыть файл.

Снимок экрана параметра меню

Переключение между файлами заголовков и кода

Вы можете переключаться между файлом заголовка и его соответствующим исходным файлом. Щелкните правой кнопкой мыши в любом месте файла и выберите Переключение между файлами заголовков и кода. Или же нажмите клавиши CTRL+K, CTRL+O.

Перейти к определению или объявлению

Вы можете перейти к определению элемента кода, щелкнув правой кнопкой мыши в редакторе и выбрав "Перейти к определению" или выбрав F12. Вы можете перейти к объявлению аналогичным образом из контекстного меню или нажав клавиши CTRL+F12.

Снимок экрана параметров, которые отображаются при щелчке правой кнопкой мыши на элементе кода. Включает переход к определению, просмотр определения и переход к объявлению.

Перейти

Go To относится к набору функций навигации, каждая из которых предоставляет определенный результат на основании указанных вами фильтров.

Вы можете воспользоваться командой Перейти к, нажав клавиши CTRL+,. При этом открывается окно поиска по документу, который вы редактируете.

Снимок экрана: поле поиска, которое отображается при открытии

Команда Перейти к включает следующие фильтры поиска:

  • Перейти к строке (CTRL+G): быстро перейти к другой строке в текущем документе.
  • Перейти ко всему (CTRL+,) или (CTRL+T): результаты поиска включают всё дальнейшее.
  • Перейдите к файлу (CTRL 1, F): найдите файлы в решении.
  • Перейти к типу (CTRL 1, T): результаты поиска включают:
    • классы, структуры и перечисления.
    • интерфейсы и делегаты (только управляемый код).
  • Перейти к участнику (Ctrl 1, M): результаты поиска включают:
    • глобальные функции и глобальные переменные;
    • переменные-члены и функции-члены класса;
    • константы;
    • элементы перечисления;
    • свойства и события.
  • Перейти к символу (CTRL 1, S): результаты поиска включают:
    • результаты, полученные при переходе к типам и членам;
    • Все оставшиеся конструкции языка C++, которые включают макросы.

При первом вызове команды Перейти к с помощью клавиш CTRL+ запускается команда Перейти ко всем (без фильтрации результатов поиска). Вы затем можете выбрать нужный фильтр с помощью кнопок рядом с полем поиска. Вы можете вызвать определенный фильтр с помощью соответствующего сочетания клавиш. При этом откроется окно поиска Перейти к уже с выбранным фильтром. Все сочетания клавиш можно настраивать.

Чтобы применить фильтр текста, выполните поисковый запрос с соответствующим символом фильтра, за которым следует пробел. (При необходимости перейти к строке можно опустить пробел.) Доступны следующие текстовые фильтры:

  • Показать всё (без текстового фильтра)
  • Перейти к номеру строки:
  • "Перейти к файлу" — f;
  • Перейти к типу: t
  • Перейти к члену: m
  • Перейти к символу: #

В следующем примере показаны результаты операции Перейти к файлам с фильтром f:

Снимок экрана: результаты

Чтобы просмотреть список фильтров текста, введите ?, за которым следует пробел. Вы можете также воспользоваться командой Перейти к, открыв пункт меню Изменить. Это еще один способ напомнить себе основные сочетания клавиш для команды Перейти к.

Снимок экрана меню

Обычный поиск и поиск в файлах

Вы можете выполнить поиск любого текста в своем решении с помощью команды Найти (CTRL+F) или Найти в файлах (CTRL+SHIFT+F).

Команду Найти можно выполнять в выделенном фрагменте, текущем документе, во всех открытых документах, текущем проекте или всем решении. Вы также можете использовать регулярные выражения и обычный текст. Также автоматически выделяются все совпадения в интегрированной среде разработки.

Снимок экрана: диалоговое окно поиска. Пользователь искал канал. Желтые выделения в файле показывают все места, где найден канал.

Команда Найти в файлах — это более мощная версия команды Найти. Она отображает результаты в окне Результаты поиска. Вы можете искать внешние зависимости кода, отфильтровывать типы файлов и многое другое.

Снимок экрана: диалоговое окно

Результаты операции Найти в файлах можно отобразить в двух окнах. Вы можете объединять результаты нескольких поисковых запросов. Выберите результат, чтобы перейти в соответствующее расположение в файле.

Снимок экрана показывает результат поиска по всем файлам, содержащим текст, который соответствует строке поиска, с кратким фрагментом каждого совпадения.

См. подробнее о поиске в файлах в документации по Visual Studio.

Найти все ссылки

Чтобы найти все случаи использования символа в базе кода, поместите курсор на символ или после него, а затем щелкните правой кнопкой мыши и выберите Найти все ссылки. Вы можете фильтровать, сортировать или группировать результаты различными способами. Результаты добавляются последовательно. Они классифицируются как "чтение" или "запись", чтобы помочь вам увидеть, что находится в вашем решении, в отличие от системных заголовков или других библиотек.

Снимок экрана с результатами команды 'Найти все ссылки', которые показывают строку с найденным символом, а также в каком файле и проекте он расположен и т. д.

Результаты можно сгруппировать по следующим категориям:

  • "Проект, затем определение";
  • "Только определение";
  • "Определение, затем проект";
  • "Определение, затем путь";
  • "Определение, проект, затем путь".

Фильтрация результатов

Чтобы отфильтровать результаты, наведите указатель мыши на столбец и нажмите всплывающий значок фильтрации. Вы можете отфильтровать результаты из первого столбца, чтобы скрыть строки и ссылки на комментарий, которые вы не хотите видеть.

Снимок экрана: параметры фильтрации. Включает подтвержденные, неподтвержденные, в комментарии и необработанные. Каждый показывает, сколько результатов относится к этой категории.

  • Подтвержденные результаты: фактические ссылки на код, в котором ищется символ. Например, поиск функции-члена Size вернет все ссылки на Size, которые соответствуют области действия класса, определяющего Size.

  • Дисконфирмированные результаты: этот фильтр отключен по умолчанию, так как он отображает символы, имена которых совпадают, но не являются фактическими ссылками на символ, который вы ищете. Например, если у вас есть два класса, каждый из которых определяет функцию-член Size, и вы выполняете поиск Size в ссылке из объекта Class1, все ссылки на Size из Class2 отображаются как неподтвержденные.

  • Необработанные результаты: операции Найти все ссылки могут потребовать значительного времени для завершения в крупных кодовых базах, поэтому в списке результатов отображаются необработанные результаты. Необработанные результаты соответствуют имени символа, который вы ищете, но они еще не определены как фактические ссылки на код. Вы можете включить этот фильтр, чтобы получать результаты быстрее. Некоторые результаты могут не быть фактическими ссылками.

Сортировка результатов

Вы можете сортировать результаты по любому столбцу, щелкнув его. Вы можете выбрать порядок по возрастанию или убыванию, щелкнув столбец еще раз.

Вы можете перейти к определению типа в файле или членам типов с помощью панели навигации, расположенной над окном редактора.

Снимок экрана: панель навигации над окном редактора. В нем показаны cryptlib > ChannelSwitch > ChannelMessageSeriesEnd().

См. также