Інструменти робочого простору

Закладки

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

Закладки в бічній панелі

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

Закладки приватні для цієї машини й цього репозиторію. У репозиторій нічого не пишеться: їх не закомітити, не надіслати, ніхто інший їх не побачить — так само, як завдання.

Рядок зсувається. У цьому вся проблема.

cart.ts:42 псується тієї миті, коли хтось вставить рядок вище, а закладка, що мовчки відкриває не той рядок, гірша за її відсутність. Тому поруч із номером зберігається текст рядка, і відкриття шукає його заново:

  1. запамʼятований рядок, якщо на ньому досі той текст;
  2. інакше найближчий рядок із тим самим текстом — найближчий, щоб рядок, який повторюється по всьому файлу, розвʼязався в копію, найближчу до старого місця;
  3. інакше найближчий рядок, що збігається без урахування пробілів: це переживає зміну відступів;
  4. інакше — повідомлення, що рядка більше немає, і відкриття там, де він був, замість здогадок.

Коли рядок зсувається, закладка лікується: новий номер зберігається, і наступне відкриття стартує вже звідти. Нотатку можна додати з контекстного меню — без неї підписом слугує сам текст рядка.

Обмеження

  • Закладка вказує на робоче дерево, а не на коміт. Вона йде за вашими правками, але не мандрує назад історією.
  • Переписаний файл втрачає свої закладки. Якщо ні точного тексту, ні його форми без пробілів немає в межах кількох сотень рядків, чесно вказувати вже нема на що.
  • Перейменування файлу ламає його закладки. Ключ — це шлях; git бачить перейменування в дифі, але закладка не є частиною дифа.
  • У порожнього рядка немає тексту для пошуку — його закладка тримається лише на номері.

Див. також: Завдання · Проблеми

Покращити цей переклад на GitHub