Strumenti dell'area di lavoro

Editor esterno

Un client Git è dove leggi il codice; raramente è dove lo sistemi. La distanza fra il notare un problema in un diff e l'avere il cursore su quella riga nel tuo editor è una ricerca del file più uno scorrimento — ogni volta.

Indica a Gitcito il tuo editor una volta sola e quella distanza sparisce: clic destro su una riga nella vista file o blame e si apre lì, a quella riga.

Sceglierne uno

Impostazioni → Generali → Editor esterno. Il menu a tendina elenca gli editor che Gitcito riesce a trovare su questa macchina — cerca prima il comando di ciascun editor, poi, su macOS, il bundle dell'applicazione in /Applications e ~/Applications. La scansione parte ogni volta che apri le impostazioni, quindi un editor installato cinque minuti fa compare senza riavviare.

Riconosciuti in partenza:

Editor Comando che cerca
Visual Studio Code code, code-insiders
Cursor cursor
Windsurf windsurf
Zed zed
Sublime Text subl
IDE JetBrains idea, webstorm, pycharm, rustrover, goland, clion, rider, phpstorm
Xcode xed

Il limite da conoscere

Saltare a una riga richiede il comando dell'editor, non la sua icona. Un bundle .app di macOS viene lanciato tramite open, che accetta un percorso e nient'altro — quindi un editor trovato solo come bundle apre il file dall'inizio, e Gitcito lo dice sotto il menu invece di fingere il contrario.

La soluzione sta dalla parte dell'editor: Shell Command: Install 'code' command in PATH per VS Code, il link simbolico subl di Sublime, Toolbox → Settings → Shell scripts per JetBrains. Una volta che il comando esiste, riseleziona l'editor e il salto alla riga funziona.

Dove compaiono le azioni

Superficie Cosa apre
Scheda del repo, repo nella barra laterale, barra di stato La cartella del repository
Albero dei file, file di un commit, file di uno stash, compositore di commit Quel file
L'icona a fine riga nell'albero dei file Quel file, con un clic
Clic destro su una riga nella vista file Il file, a quella riga
Clic destro su una riga nella vista blame Il file, a quella riga
Un .xcodeproj o altro pacchetto nell'albero dei file Il pacchetto, nell'app che lo gestisce

Le azioni sulla riga compaiono solo dove il numero di riga significa ancora qualcosa: un file mostrato a un commit vecchio, o un blame riavvolto a una revisione precedente, ha righe che non corrispondono più a quello che c'è su disco, quindi Gitcito lì non offre alcun salto invece di mandarti nel posto sbagliato.

Progetti Xcode e altri pacchetti

MyApp.xcodeproj è una cartella. Git lo sa, e lo sapeva anche l'albero dei file finché non ha iniziato a dare fastidio: espanderlo per trovare project.pbxproj, project.xcworkspace e una cartella per sviluppatore sotto xcuserdata sono tre clic di rumore per una cosa che non avresti mai modificato a mano.

Ora hanno un'icona a pacchetto e un clic sulla riga apre il pacchetto, come un doppio clic nel Finder. La freccia resta, così l'unica volta in cui ti serve davvero project.pbxproj — un conflitto di merge, quasi sempre — ci entri come prima.

Riconosciuti: .xcodeproj, .xcworkspace, .xcframework, .framework, .app, .appex, .dSYM, .playground, .xcuserdatad.

Non riconosciuti, di proposito: .xcassets e .lproj. Sono pacchetti anche loro, ma i file dentro si modificano davvero, quindi chiuderli costerebbe più di quanto faccia risparmiare.

I limiti

Il pacchetto si apre tramite il sistema, non tramite il tuo editor. Un .xcodeproj passato a un editor di testo si apre come una cartella di property list, che non è quello che voleva chi ha cliccato — così Gitcito lo passa a ciò che il sistema gli associa, che su un Mac con Xcode installato è Xcode. La scelta dell'editor resta intatta e continua a valere per ogni file normale.

È una convenzione sui nomi, non un flag del filesystem. Gitcito guarda l'estensione, quindi anche una cartella che hai chiamato notes.app si chiude, e su Linux o Windows — dove sono cartelle qualsiasi — un clic apre il gestore file invece di un IDE.

Un comando tutto tuo

Scegli Comando personalizzato per tutto ciò che non è in tabella — uno script wrapper, un lanciatore per sviluppo remoto, un editor da terminale avviato tramite un tuo shim.

Campo Significato
Comando L'eseguibile da lanciare. Nessuna shell, quindi niente &&, pipe o glob.
Nome Come lo chiamano le voci di menu.
Argomenti per un file Template argv, ad es. -g {path}:{line}:{col}
Argomenti per una cartella Template argv, di solito solo {path}

I template vengono divisi sugli spazi e ogni token è sostituito una volta sola — un percorso con uno spazio resta un unico argomento, e dopo non viene rianalizzato nulla, quindi un nome di file non può mai trasformarsi in sintassi. Quattro segnaposto: {path}, {line}, {col}, {repo}.

Un segnaposto senza valore si porta via il suo flag: --line {line} {path} eseguito senza una riga diventa solo il percorso, mai un --line penzolante che si mangerebbe il nome del file come argomento. Un template senza {line} vuol dire semplicemente che per quell'editor Gitcito non offrirà azioni precise alla riga.

Cosa non è

Questa non è l'impostazione "Apri con", che mostra il selettore di sistema e ricorda una sola applicazione per aprire qualsiasi cosa — un'immagine, un PDF, una cartella nel Finder. L'editor è il più specifico dei due, quindi dove sono impostati entrambi l'editor vince sull'icona a fine riga nell'albero dei file; entrambi restano elencati nel menu contestuale.

Gitcito non lancia mai il tuo editor da solo, e chiudere Gitcito non lo chiude mai: l'editor viene avviato staccato, come processo a sé.

Migliora questa traduzione su GitHub