Il meccanismo
Quattro costi su tutto il buffer, ognuno trovato misurando.
Nessuno dipendeva dalla dimensione del file. Ognuno era l’editor che faceva qualcosa a tutto il testo quando sarebbe bastata una schermata, e ognuno ora ha la sua regola nel codice, perché la prossima modifica non lo riporti indietro in silenzio.
01L’impaginazione segue lo schermo
Il testo è impaginato in modo non contiguo: quello che è a schermo, il cursore e una destinazione di scorrimento vengono impaginati davvero, tutto il resto è stimato. Prima ogni tasto e ogni ridisegno chiedevano di impaginare l’intero documento — e con l’a capo automatico una riga da cento kilobyte è fatta di centinaia di righe a schermo.
02Scrivere non rilegge il file
La tabella degli inizi di riga viene aggiornata sul posto a partire dalla modifica stessa — i caratteri cambiati e uno spostamento di tutto ciò che segue — invece di essere buttata via e ricostruita dal primo byte al tasto successivo.
03Aprire un secondo file lascia stare il primo
Ogni cambio di preferenza riapplicava il carattere e i colori a ogni buffer aperto, in ogni finestra, e un file che entra nei File recenti conta come tale. Ora lo fa solo un cambio di carattere, di larghezza della tabulazione o di tema: 982 ms sono diventati 58 ms con questo file aperto.
04Ricolorare è lineare
Togliere i vecchi colori da una zona avveniva token per token, e ogni passo spostava avanti tutto il resto dell’elenco. Ora è una sola sostituzione, ed è ciò che ha portato un file sorgente da 250 KB da quasi un secondo per tasto a circa un decimo.
05Il colore dove guardi
I file fino a 256 KB vengono colorati per intero. Oltre, l’editor dipinge le righe visibili e altre 200, e ricorda lo stato in cui inizia ogni riga: un commento a blocco aperto diecimila righe prima si colora ancora correttamente quando salti nel mezzo.
06Le modifiche non salvate vengono salvate come modifiche
Oltre i 64 KB, il salvataggio di emergenza aggiunge ciò che hai scritto a un registro invece di ricopiare tutto il buffer dopo ogni raffica — finché il registro non arriva a metà del file, quando una copia nuova costa meno.