Literal carriage returns break parser under Python 3.x
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Reproduce the failure with python3 py/vimlparser.py ~/.vimrc using the .vimrc example containing literal carriage returns. Start in py/vimlparser.py at its file-reading and line-splitting path; done means those literal ^M characters are preserved as parser input rather than converted to newlines, while ordinary line endings continue to parse.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This chunk from my .vimrc causes python3 py/vimlparser.py ~/.vimrc to error out on my system.
Since this didn't show up in my initial search for VimL parsers for Python, I started work on a VimL parser of my own and I know why it happens.
The literal <CR>s in this piece of my .vimrc (the ^Ms)...

...get converted to \n by the universal newline support in Python 3.x's text mode. (I assume because a bare \r is the old Classic MacOS line terminator and Python's universal newlines mode is converting all potential newlines rather than limiting itself to whichever kind of newline it encounters first like Vim itself does.)
The quick hack I came up with to make the parser robust was to open the file in binary mode and then manually decode and split lines:
with open(path, 'rb') as fobj:
process_group(fobj.read().decode('utf8').split('\n'))
- Lingua principale
- Vim Script
- Stelle
- 173
- Fork
- 28
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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.
Altre issue di vim-jp/vim-vimlparser
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
vim-jp/vim-vimlparser#201 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
vim-jp/vim-vimlparser#200 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
vim-jp/vim-vimlparser#198 ·
-
Support for falsy operator?Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
vim-jp/vim-vimlparser#197 · 2 reazioni ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
vim-jp/vim-vimlparser#191 ·
Tutte le issue di vim-jp/vim-vimlparser
Issue simili
-
bug lsp sev-3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
Miaotofu01/Study-Mate#206 ·
I maintainer di solito rispondono entro 1 giorno
-
dependencies effort:S priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
jbacalso24/mimry#459 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 Mezza giornata Idoneità per principianti 62/100
charles-hood/DiagramCraft#62 ·