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

Зовнішній редактор

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 ніколи його не закриває: редактор стартує відчепленим, як окремий процес.

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