Ho familiarità con l'approccio alla macchina di stato sottostante descritto nel tuo link --- è in circolazione da decenni. Può tokenise / categorizzare qualsiasi flusso di testo che supporta un'operazione get-next-character.
Ho familiarità con le corde nel contesto di un editor di testo. Il solito scopo (come so che lo so) è di suddividere le stringhe in porzioni che hanno gli stessi attributi di visualizzazione: colore, carattere, collegamento, interruzioni di riga, ecc. Funziona bene sia per la modifica che per la visualizzazione. Le principali operazioni sono: inserire carattere; cancella carattere; cancella token; taglia e incolla. Mantenere la corda non è facile.
Non è ovvio dalla tua domanda se ti aspetti che il tokeniser generi la corda. È una corda di token, in cui ogni token ha i propri attributi di visualizzazione? Sarei preoccupato che il montaggio e la tokenizzazione potessero interferire tra loro. Cose come citazioni e commenti possono raggiungere una lunga strada.
No, non c'è un modo standard per combinare queste idee. Sospetto che l'idea giusta sia che il tokeniser generi / rigenera la corda, immediatamente per la parte sullo schermo e in background per il resto. Le modifiche dovrebbero interessare la corda (solo) con un breve ritardo prima della retokenising. La tokenizzazione deve essere anche interrompibile.
Sembra un approccio ragionevole, ma sono sicuro che ci sono molte sfide nel farlo funzionare bene. Potresti voler leggere qualche codice sorgente (Eclipse? Netbeans?) Per vedere come fanno gli altri.