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

TODO у коді

TODO — це обіцянка, яку хтось дав самому собі й загубив. Її пишуть там, де проблема, тобто саме там, куди більше ніхто не зазирає, а коли вона стає важливою, автор уже в іншій команді. Grep їх знаходить, і тисяча рядків виводу grep дорівнює тому, щоб не знайти нічого.

Вкладка TODO в доці аналізатора читає їх усі й робить те, чого grep не вміє: групує. Відкрийте док зі смуги стану або з палітри команд (TODO у коді) і перейдіть на другу вкладку.

Смуга стану рахує позначки поряд із помилками та попередженнями аналізаторів; клік на цьому лічильнику відкриває цю вкладку.

Вкладка TODO, згрупована за власником

Що вважається позначкою

Тег, у коментарі, у файлі, який Git відстежує або відстежував би:

Написано Прочитано як
// TODO: викотити позначка TODO, без власника
//todo викотити те саме — двокрапка й пробіл необовʼязкові
# todo викотити те саме — ні регістр, ні мова не мають значення
/* TODO(cgm): викотити */ позначка TODO, власник cgm
-- TODO (CGM) викотити той самий власник: cgm, (CGM) і [cgm] — одна людина
<!-- TODO: @cgm викотити --> і знову те саме

Теги: TODO, FIXME, BUG, HACK, XXX, NOTE, OPTIMIZE, REVIEW, REFACTOR, DEPRECATED, QUESTION, IDEA, WIP і TEMP. Перші чотири мають колір, бо «це зламано» і «це в мене була ідея» не повинні виглядати однаково в одному списку.

Тег має стояти після початку коментаря — //, #, --, ;, %, /*, *, <!--, """. Більше ніщо не рахується: todo = [l for l in lines] — це код, а панель, що записує присвоєння змінної в борг, — панель, якій не повірять удруге. Те саме правило не пускає до списку функцію з назвою reviewNotes.

Групування — це і є суть

Чотири осі, по одному кліку:

Групувати за Відповідає на питання
Позначкою Який борг тягне цей репозиторій?
Власником Що лишила по собі кожна людина — і що в купі без власника?
Текою Який куток дерева гниє?
Файлом Звичайний список, коли ви й так знаєте, куди йдете.

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

Чипи позначок угорі фільтрують список; те саме робить клік на значку власника в рядку та поле пошуку, яке шукає за текстом, файлом, позначкою й власником. Лише змінені звужує до файлів, які ви редагували й ще не закомітили, — остання перевірка перед пушем, коли // FIXME, залишений годину тому, ось-ось стане постійним.

Клік на рядку відкриває файл на потрібному рядку.

Чого він не робить

  • Він читає і ніколи не пише. Жодного «позначити виконаним»: закрити TODO — це видалити рядок і закомітити це. Список, який Gitcito веде за вас, — це todos, зовсім інша річ: приватні нотатки, що живуть у застосунку, а не в коді.
  • Ігноровані файли пропускаються, разом із node_modules, хоч би що казали позначки всередині. Невідстежувані файли, навпаки, входять: позначка, написана пʼять хвилин тому, найважливіша.
  • Він не відрізняє коментар від рядка. Рядок const banner = "// TODO" для сканування є позначкою. У нього немає парсера сорока мов, і він цього не вдає.
  • Сканування — це знімок. Відредагуйте файл, і панель збереже попередні числа до наступного сканування; кнопка оновлення — уся історія.
  • Він зупиняється на 5000 позначках. Репозиторій за цією межею має проблему з боргом, якої не розвʼяже жодна панель.

Де він виконується

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

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