Estou usando o Syntastic no Vim e destaca a sintaxe do Ruby mais recente como erros. Por exemplo, se eu usar argumentos de palavra-chave necessários (introduzidos no Ruby 2.1), assim:
def distance(from:, to:)
# whatever
end
... destaca a linha de definição e diz "inesperado ','".
Como posso reconhecê-lo como sintaxe válida do Ruby? Eu já atualizei ~/.vim/syntax/ruby.vim
.
~/.vim/syntax/ruby.vim
não tem nada a ver com a verificação de sintaxe nos arquivos; é para realçar a sintaxe . Veja robots.thoughtbot.com/writing-vim-syntax-pluginsRespostas:
Especifique o executável ruby para Syntastic
Chamadas sintáticas
ruby -c
para verificar a sintaxe de um arquivo; portanto, os erros exibidos dependem de qual versão do ruby está sendo usada.Você pode apontar para o que você deseja usar assim:
NOTA: nas versões mais recentes do Syntastic:
$ type ruby
dirá onde está o seu atual executável Ruby. Os instaladores de Ruby têm suas próprias convenções sobre onde eles colocam seus binários. Por exemplo:~/.rubies
e versões específicas em caminhos como~/.rubies/ruby-2.2.0/bin/ruby
~/.rvm/rubies
e versões específicas em caminhos como~/.rvm/rubies/ruby-2.2.0/bin/ruby
fonte
let g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
let g:syntastic_ruby_exec = '~/.rbenv/shims/ruby'
lo para que, quando as versões ruby mudarem, ele as pegue automaticamente, eu acho.system("rbenv which ruby")
no meu .vimrcUsando o terminal macvim, também tive esse problema, que foi agravado pelo fato de estar usando o zsh, que por algum motivo não respeitava o binário do rvm que eu forneci sintático. Percebi que meus caminhos
!echo $PATH
estavam incorretos ao rodar no terminal macvim, eu tinha vários caminhos do sistema anexados à parte superior que não estavam no meu shell regular ainda causando o carregamento da ressonância magnética padrão.Para corrigir isso, não precisei especificar o verificador de sintaxe no meu .vimrc, mas tive que atualizar como o zsh foi iniciado. Usando o encadeamento em: http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html Acabei simplesmente executando
sudo mv /etc/zshenv /etc/zprofile
e agora tudo funciona e meus caminhos estão corretos no mvim. Isso também deve resolver o problema de atualização do sintático ao instalar uma nova versão do ruby via rvm.fonte
Para um projeto Rails.
.ruby-version
arquivo na raiz do projeto.O Syntastic fará a verificação de sintaxe com a versão ruby especificada.
fonte