Segnalibri
Un punto in cui vuoi tornare: la riga dove abita il bug, la funzione che stai rinominando a metà, la cosa da cancellare quando il refactor arriva. Clic destro su una riga nel visualizzatore e Aggiungi un segnalibro a questa riga: compare nella barra laterale, e un clic ti riporta lì.

Una riga con segnalibro porta un segno nel margine, e passando sopra una riga qualsiasi ne compare uno tenue su cui cliccare — il menu contestuale serve quando sai già che la funzione c’è.
I segnalibri sono privati di questa macchina e di questo repository. Nel repo non viene scritto niente: non si committano, non si pushano, nessun altro li vede — esattamente come i todo.
La riga si sposta. È tutto qui il problema.
cart.ts:42 marcisce nell’istante in cui qualcuno inserisce una riga sopra, e un
segnalibro che apre in silenzio la riga sbagliata è peggio di nessun segnalibro.
Perciò il testo della riga viene salvato accanto al numero, e all’apertura si
rilocalizza:
- la riga ricordata, se porta ancora quel testo;
- altrimenti la riga più vicina con lo stesso testo — la più vicina, così una riga ripetuta in tutto il file finisce sulla copia più prossima a dov’era;
- altrimenti la riga più vicina che combacia ignorando gli spazi, il che sopravvive a una reindentazione;
- altrimenti dice che la riga non c’è più e apre dov’era, invece di tirare a indovinare.
Quando si sposta, il segnalibro si cura: il nuovo numero viene salvato e la volta dopo si parte da lì. Una nota si aggiunge dal menu contestuale — senza, l’etichetta è il testo stesso della riga.
I limiti
- Un segnalibro punta all’albero di lavoro, non a un commit. Segue le tue modifiche; non torna indietro nella storia.
- Un file riscritto perde i suoi segnalibri. Se né il testo esatto né la sua forma senza spazi si trovano entro qualche centinaio di righe, non resta niente di onesto da indicare.
- Rinominare un file rompe i suoi segnalibri. Il percorso è la chiave; git riconosce un rename in un diff, ma un segnalibro non fa parte di un diff.
- Una riga vuota non ha testo da ritrovare: il suo segnalibro dipende solo dal numero.