Пересування між фрагментами коду

У попередньому розділі ми обговорювали вивчення коду програми, тобто отримання даних щодо символів, файлів та проєктів. Наступним кроком є перехід між компонентами коду, тобто навігація кодом. Знову ж таки, існує декілька рівнів, на яких можна здійснювати подібну навігацію: локально, у межах файла і у межах проєкту.

Примітка

Доступ до багатьох засобів навігації можна отримати за допомогою меню Навігація головного вікна KDevelop.

Пересування поточним фрагментом

KDevelop — набагато більше, ніж просто редактор, — це також редактор коду. Тому, звичайно ж, ви можете пересувати курсор текстом за допомогою звичайних клавіш зі стрілочками. Ви також можете скористатися натисканням клавіш PageUp та PageDown і всіма іншими командами, якими можна скористатися у звичайному текстовому редакторі.

Пересування файлами та режим огляду

На рівні окремого файла у KDevelop передбачено багато способів навігації кодом програми. Приклад:

  • Огляд: відкрити панель з оглядом вмісту поточного файла можна у принаймні три різних способи:

    • Натисканням кнопки Огляд у верхній правій частині головного вікна або натисканням комбінації клавіш Alt+Ctrl+N. У відповідь буде відкрито спадне меню зі списком всіх функцій та оголошень класів:

      Після цього ви можете вибрати пункт, до якого слід перейти, або — якщо таких пунктів багато, — почніть вводити текст, який може бути частиною потрібного пункту. У такому разі, введення символів у текстове поле скорочуватиме список, оскільки з нього виключатимуться пункти, які не відповідають введеним вами даним, доки список не буде скорочено до прийнятних розмірів.

    • Розташуванням курсора у області файла (тобто поза межами оголошень та визначень функцій або класів) з відкритою панеллю інструмента Перегляд коду:

      За показаною панеллю ви зможете стежити з даними поточного файла і надасть вам змогу вибрати пункт, до якого ви хочете перейти.

    • Наведенням вказівника миші на вкладку одного з відкритих файлів. У відповідь буде показано панель з оглядом даних файла у відповідній вкладці.

  • * Файли коду впорядковано у список оголошень та визначень. За допомогою натискання комбінацій клавіш Alt+Ctrl+PgUp і Alt+Ctrl+PgDown можна переходити до визначення попередньої або наступної функції у файлі.

Пересування проєктами та сеансами: семантичне пересування

Як ми вже згадували раніше, зазвичай KDevelop не працює з окремими файлами коду, замість цього середовище працює з цілими проєктами (або, точніше, з усіма проєктами, які є частиною поточного сеансу). Внаслідок цього середовище надає можливість навігації у межах цілих проєктів. Частина цих можливостей є наслідком можливостей, які ми вже обговорювали у розділі щодо навігації кодом, інші ж є абсолютно відмінними від них. Основною особливістю цих можливостей навігації є те, що їх засновано на семантичному розумінні коду, тобто для роботи з ними потрібна певна обробка цілих проєктів та пов’язаних з ними даних. У наведеному нижче списку показано декілька способів навігації кодом, який може зберігатися у великій кількості окремих файлів:

  • Як ми вже бачили з розділу щодо навігації кодом, ви можете отримати панель з поясненнями щодо окремого простору назв, класу, функції або змінної наведенням вказівника миші на відповідний запис у коді або утримуванням натиснутою клавіші Alt. Ось приклад:

    Натискання посилань на оголошення символу або розгортання списку використань надає вам змогу перейти до відповідних місць коду. Подібного ефекту можна досягти за допомогою панелі перегляду Перегляд коду, яку ми вже обговорювали.

  • Швидшим способом переходу до оголошення символу без натискання посилань у підказці є тимчасове вмикання Режиму навігації кодом утримуванням натиснутою клавіші Alt або Ctrl. У цьому режимі можна безпосередньо натиснути будь-який символ у редакторі для переходу до його оголошення.

  • Швидке відкриття: дуже потужним способом пересування файлами у KDevelop є різноманітні інструменти швидкого відкриття. Передбачено чотири різновиди таких інструментів:

    • Швидке відкриття класу (НавігаціяШвидко відкрити клас або Alt+Ctrl+C): вам буде показано список всіх класів у поточному сеансі. Почніть вводити (частину) назви класу, і середовище скоротить список до назв, які відповідають введеній частині. Коли список стане достатньо коротким, просто виберіть у ньому елемент за допомогою клавіш зі стрілками вгору і вниз, а KDevelop відкриє місце у коді, де клас було оголошено.

    • Швидке відкриття функції (НавігаціяШвидко відкрити функцію або Alt+Ctrl+M): вам буде показано список всіх (вбудованих) функцій, які є частиною проєктів у поточному сеансі, вибрати потрібну вам функцію можна у той самий спосіб, у який вибирається клас. Зауважте, що у списку можуть бути одразу пункти оголошення та визначення функцій.

    • Швидке відкриття файла (НавігаціяШвидко відкрити файл або Alt+Ctrl+O): вам буде показано список всіх файлів, які є частиною проєктів поточного сеансу, вибрати потрібний можна буде у описаний вище спосіб.

    • Універсальне швидке відкриття (НавігаціяШвидко відкрити або Alt+Ctrl+Q): якщо ви забули, які комбінації клавіш пов’язано з описаними вище командами, це універсальний спосіб: вам буде показано список всіх файлів, функцій, класів та інших частин проєктів, з якого ви зможете вибрати потрібний вам пункт.

  • Перехід до оголошення або визначення: під час реалізації функції часто виникає потреба у переході до місця, де цю функцію оголошено, наприклад, для синхронізації списку аргументів між оголошенням і визначенням або для оновлення документації. Виконати такий перехід можна розташуванням курсора на назві функції з наступним вибором пункту меню НавігаціяПерейти до оголошення (або натисканням комбінації клавіш Ctrl+.). Повернутися до визначення можна у декілька способів:

    • За допомогою пункту меню НавігаціяПерейти до визначення (або натискання комбінації клавіш Ctrl+,).

    • За допомогою пункту меню НавігаціяПопередній переглянути контекст (або натискання комбінації клавіш Meta+), як це описано далі.

Примітка

Перехід до оголошення символу не обмежується лише функціями, які ви реалізуєте. Цей спосіб працює і у разі розташування курсора на назві (локальної, загальної чи вбудованої) змінної: вибір відповідного пункту меню призведе до пересування області перегляду до оголошення символу. Отже ви можете, наприклад, розташувати курсор на назві класу у оголошенні змінної функції і перейти до оголошення цього класу.

  • Перемкнути визначення/оголошення: у наведеному вище прикладі для переходу до місця оголошення поточної функції нам потрібно було спочатку розташувати курсор на назві функції. Якщо вам не хочеться цього робити, скористайтеся пунктом меню НавігаціяПеремкнути визначення/оголошення (або натисніть комбінацію клавіш Shift+Ctrl+C), щоб перейти до оголошення функції, у якій перебуває курсор. Повторний вибір цього пункту меню поверне курсор назад до визначення функції.

  • Попереднє/ Наступне використання: розташування курсора на назві локальної змінної з наступним вибором пункту меню НавігаціяНаступне використання (або натискання комбінації клавіш Meta+Shift+) переведе вас до наступного використання цієї змінної у коді. Зауважте, що буде виконано не лише пошук наступного використання назви змінної, але і взято до уваги і те, що змінні з тією самою назвою, але у інших просторах назв, є іншими. Те саме стосується і назв функцій. Вибір пункту НавігаціяПопереднє використання (або натискання комбінації клавіш Meta+Shift+) переведе перегляд до попереднього використання символу.

Примітка

Щоб переглянути список всіх використань назв, якими здійснюватиметься циклічний перехід внаслідок використання цієї команди, розташуйте курсор на назві символу і відкрийте панель Перегляд коду або натисніть і утримуйте клавішу Alt. Докладніше про використання цього прийому можна дізнатися з розділу щодо навігації кодом.

  • Список контекстів: у переглядачах сторінок інтернету передбачено цю можливість, — ви можете пересуватися вперед і назад списком нещодавно відвіданих сторінок. У KDevelop теж є така можливість, але замість сторінок ви пересуваєтеся контекстами. Контекст — це поточне розташування курсора, перехід до якого або з якого було здійснено за допомогою будь-яких дій, окрім натискання клавіші зі стрілками на клавіатурі (наприклад, натискання пункту на панелі підказки, панелі Перегляд коду, одного з пунктів меню Навігація або використання будь-якої іншої команди навігації). За допомогою пунктів меню НавігаціяПопередній переглянути контекст (Meta+) та НавігаціяНаступний переглянутий контекст (Meta+) ви можете пересуватися списком відвіданих контекстів подібно до того, як за допомогою пунктів назад і вперед ви можете пересуватися між сторінками, відвіданими за допомогою програми для перегляду інтернету.

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

    Подвійне клацання на пункті (або використання відповідного пункту контекстного меню, яке можна відкрити клацанням правою кнопкою миші) надасть вам змогу перейти до місця оголошення пункту. На інших панелях інструментів можна скористатися подібними ж прийомами, наприклад, на панелі Проєкти буде наведено список частин сеансу:

    Знову ж таки, подвійне клацання на пункті файла призведе до його відкриття.