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

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

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

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

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

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

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

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

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

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

Перейти

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

Вы можете воспользоваться командой Перейти к, нажав клавиши 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Снимок экрана: панель навигации над окном редактора. Отображается канал cryptlib > ChannelSwitch > ChannelMessageSeriesEnd().

См. также раздел