Literal carriage returns break parser under Python 3.x
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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'))
- Linguagem predominante
- Vim Script
- Estrelas
- 173
- Forks
- 28
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de vim-jp/vim-vimlparser
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
vim-jp/vim-vimlparser#201 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
vim-jp/vim-vimlparser#200 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
vim-jp/vim-vimlparser#198 ·
-
Support for falsy operator?Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
vim-jp/vim-vimlparser#197 · 2 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
vim-jp/vim-vimlparser#191 ·
Todas as issues de vim-jp/vim-vimlparser
Issues semelhantes
-
bug:new
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
callstackincubator/simlock#673 ·
Mantenedores costumam responder em até 1 dia
-
feature-request mini.icons
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
IBRAHIMDANS/i18nSupportPlus#577 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
docs: the dev-setup table and AGENTS.md name the reviewed_by guard that CI's Changelog job runsAbertaarea: tools documentation good first issue ready for a contributor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
eyalgolan/statecraft-israel#873 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
git-workflow task-4
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100