Прочитать на английском

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


Перемещение по коду С++ в 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также