Unicode characters
Nessuno ha ancora preso questa issue.
- Lingua principale
- Ruby
- Stelle
- 155
- Fork
- 37
- Merge medio
- 4g 2h
- PR unite (30g)
- 1
Descrizione
Currently, error_highlight does not handle Unicode characters well. There are two subissues.
- Ruby::AST::Node#first_column and #last_column seem to return the column in bytes, but String#match handles the index in characters. We need to convert the column indexes.
- Some Unicode characters are displayed as two (or more?) columns in a terminal with monospace font.
(1) is relatively simple, but (2) is a bit tough. It requires a table telling how many columns each character has. It is known that Reline has such a table. But because error_highlight is a built-in gem that is loaded at Ruby process invocation, it is not good for error_highlight to depend on Reline (unless we make Reline a special built-in gem). We need to discuss how we make the table available to error_highlight.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia esaminando come Ruby::AST::Node#first_column e #last_column vengono usati con String#match, poi confronta i dati sulla larghezza Unicode in lib/reline/unicode/east_asian_width.rb di Reline. Riproduci sia i casi di indice dei byte sia quelli di larghezza del terminale; per considerare il lavoro completato serve un approccio concordato alla conversione dei caratteri e rendere disponibili i dati sulla larghezza senza una dipendenza inadatta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100