Зовнішній редактор
Git-клієнт — це місце, де ви читаєте код; лагодите ви його рідко саме тут. Відстань між тим, щоб помітити проблему в діфі, і тим, щоб мати курсор на цьому рядку у своєму редакторі, — це пошук файлу і прокрутка. Щоразу.
Один раз покажіть Gitcito ваш редактор — і ця відстань зникає: клацніть правою кнопкою на рядку в перегляді файлу чи blame, і він відкриється там, на цьому рядку.
Як обрати
Налаштування → Загальні → Зовнішній редактор. Випадний список показує
редактори, які Gitcito зміг знайти на цій машині: спершу він шукає команду
кожного редактора, а потім, на macOS, бандл застосунку в /Applications і
~/Applications. Сканування виконується щоразу, коли ви відкриваєте
налаштування, тож редактор, встановлений п’ять хвилин тому, з’явиться без
перезапуску.
Розпізнаються з коробки:
| Редактор | Команда, яку він шукає |
|---|---|
| Visual Studio Code | code, code-insiders |
| Cursor | cursor |
| Windsurf | windsurf |
| Zed | zed |
| Sublime Text | subl |
| JetBrains IDEs | idea, webstorm, pycharm, rustrover, goland, clion, rider, phpstorm |
| Xcode | xed |
Обмеження, про яке варто знати
Щоб перейти на рядок, потрібна команда редактора, а не його іконка. Бандл
.app на macOS запускається через open, який приймає шлях і більше нічого, —
тож редактор, знайдений лише як бандл, відкриє файл на початку, і Gitcito прямо
пише про це під випадним списком, а не вдає, ніби все гаразд.
Виправляється це на боці редактора: у VS Code — Shell Command: Install 'code'
command in PATH, у Sublime — символьне посилання subl, у JetBrains —
Toolbox → Settings → Shell scripts. Щойно команда з’явиться, оберіть редактор
ще раз, і перехід на рядок запрацює.
Де з’являються дії
| Місце | Що відкриває |
|---|---|
| Вкладка репозиторію, репозиторій на бічній панелі, рядок стану | Теку репозиторію |
| Дерево файлів, файли коміту, файли стешу, композер коміту | Цей файл |
| Іконка в кінці рядка в дереві файлів | Цей файл, в один клік |
| Правий клік на рядку в перегляді файлу | Файл, на цьому рядку |
| Правий клік на рядку в перегляді blame | Файл, на цьому рядку |
.xcodeproj або інший пакет у дереві файлів |
Пакет — у застосунку, якому він належить |
Дії з рядками з’являються лише там, де номер рядка ще щось означає: файл, показаний на старому коміті, або blame, відмотаний до ранішої ревізії, мають рядки, які вже не збігаються з тим, що на диску, — тож Gitcito не пропонує там переходу, замість того щоб відправити вас не туди.
Проєкти Xcode та інші пакети
MyApp.xcodeproj — це каталог. Git це знає, і дерево файлів знало теж — доки це
не почало заважати: розгортати його, щоб знайти project.pbxproj,
project.xcworkspace і по теці на розробника всередині xcuserdata, — три
кліки шуму заради того, що ви однаково не збиралися правити руками.
Тепер вони мають піктограму пакета, і клік по рядку відкриває пакет — так
само, як подвійний клік у Finder. Стрілка лишилась, тож той єдиний раз, коли
project.pbxproj вам справді потрібен — майже завжди це конфлікт злиття, — ви
заходите всередину як раніше.
Розпізнаються: .xcodeproj, .xcworkspace, .xcframework, .framework,
.app, .appex, .dSYM, .playground, .xcuserdatad.
Не розпізнаються, навмисно: .xcassets і .lproj. Це теж пакети, але файли
всередині справді редагують, тож згортати їх коштувало б більше, ніж дає.
Обмеження
Пакет відкриває система, а не ваш редактор. .xcodeproj, відданий
текстовому редактору, відкривається як тека property list-ів — не те, чого
хотів той, хто по ньому клікнув. Тож Gitcito передає його тому, що пов'язала з
ним ОС: на Mac зі встановленим Xcode це Xcode. Вибір редактора лишається
недоторканим і досі діє для кожного звичайного файлу.
Це угода про іменування, а не прапорець файлової системи. Gitcito дивиться
на розширення, тож каталог, який ви випадково назвали notes.app, теж
згорнеться, а в Linux чи Windows — де це звичайні теки — клік відкриє файловий
менеджер замість IDE.
Власна команда
Оберіть Власна команда для всього, чого немає в таблиці, — скрипта-обгортки, запускача віддаленої розробки, термінального редактора, піднятого через ваш власний шим.
| Поле | Що означає |
|---|---|
| Команда | Виконуваний файл. Жодної оболонки, тож жодних &&, конвеєрів чи ґлобів. |
| Назва | Як це називатимуть пункти меню. |
| Аргументи для файлу | Шаблон argv, напр. -g {path}:{line}:{col} |
| Аргументи для теки | Шаблон argv, зазвичай просто {path} |
Шаблони розбиваються за пробілами, і кожен токен підставляється рівно один раз —
шлях із пробілом лишається одним аргументом, і після підстановки нічого не
розбирається заново, тож ім’я файлу ніколи не перетвориться на синтаксис. Чотири
підстановки: {path}, {line}, {col}, {repo}.
Підстановка без значення забирає із собою свій прапорець: --line {line} {path},
запущений без рядка, перетворюється просто на шлях, а не на висячий --line,
який з’їв би ім’я файлу як свій аргумент. Шаблон без {line} у ньому просто
означає, що Gitcito не пропонуватиме для цього редактора дій із точністю до
рядка.
Чим це не є
Це не налаштування «Відкрити за допомогою», яке показує системний вибір і запам’ятовує один застосунок для відкриття чого завгодно — зображення, PDF, теки у Finder. Редактор — конкретніший із двох, тож коли налаштовані обидва, на іконці в кінці рядка в дереві файлів перемагає редактор; у контекстному меню лишаються обидва.
Gitcito ніколи не запускає ваш редактор самотужки, і закриття Gitcito ніколи його не закриває: редактор стартує відчепленим, як окремий процес.