Crea il tuo text editor in C++23: setup e struttura del progetto
Prima parte della serie: costruiamo da zero un editor di testo da terminale in C++23, senza librerie esterne. Struttura a cartelle con header, Makefile e un main.cpp pulito.
9 articoli
Prima parte della serie: costruiamo da zero un editor di testo da terminale in C++23, senza librerie esterne. Struttura a cartelle con header, Makefile e un main.cpp pulito.
Disattiviamo l'eco e la modalità canonica del terminale usando termios, incapsulando tutto in una classe RAII in terminal/raw_mode.hpp.
Sequenze di escape VT100, buffer di output, dimensioni del terminale e la prima classe Editor con le tildi stile vim, divisa in header.
Decodifichiamo le sequenze di escape di frecce, Home, End e Page Up/Down in terminal/input.hpp e muoviamo il cursore dentro lo schermo.
Apriamo un file, lo memorizziamo come vettore di righe in editor/row.hpp, gestiamo tab, scrolling verticale e orizzontale e aggiungiamo la barra di stato.
Inserimento e cancellazione di caratteri, ritorno a capo, salvataggio su disco, barra dei messaggi, flag di modifica e prompt di input in editor.hpp.
Implementiamo la ricerca incrementale con Ctrl-F, riusando il prompt con callback: ricerca mentre scrivi, frecce per navigare i risultati, Esc per tornare indietro.
Ultima parte: highlight.hpp e syntax.hpp per colorare commenti, stringhe, numeri e parole chiave del C++, evidenziamo la ricerca e vediamo dove andare dopo.
Un approccio esplicito agli errori in C++ moderno: come funziona std::expected, quando usarlo e come comporre operazioni che possono fallire.