Como posso fazer com que o Syntastic reconheça a sintaxe mais recente do Ruby?

9

Estou usando o Syntastic no Vim e destaca a sintaxe mais recente do Ruby como erros. Por exemplo, se eu usar os argumentos de palavra-chave requeridos (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 o ~/.vim/syntax/ruby.vim .

    
por Nathan Long 06.02.2015 / 14:56

3 respostas

9

Especifique o executável do ruby para o Syntastic

Syntastic chama ruby -c para verificar a sintaxe de um arquivo, então os erros mostrados dependem de qual versão do ruby está usando.

Você pode apontar para o que você deseja usar assim:

let g:syntastic_ruby_exec = 'path/to/ruby/executable'

OBSERVAÇÃO: em versões mais recentes do Syntastic:

let g:syntastic_ruby_mri_exec = 'path/to/ruby/executable'

$ type ruby dirá onde está seu executável atual do Ruby. Os instaladores do Ruby têm suas próprias convenções sobre onde colocar seus binários. Por exemplo:

  • o ruby-install coloca as instalações do ruby em ~/.rubies e versões específicas em caminhos como ~/.rubies/ruby-2.2.0/bin/ruby
  • O RVM coloca as instalações do ruby em ~/.rvm/rubies e versões específicas em caminhos como ~/.rvm/rubies/ruby-2.2.0/bin/ruby
por 06.02.2015 / 14:56
4

Usando o terminal macvim eu também tive esse problema, que foi agravado pelo fato de que eu estava usando o zsh, que por alguma razão não estava respeitando o binário rvm que eu dei syntastic. Eu percebi que meus caminhos estavam incorretos quando rodava !echo $PATH no terminal macvim, eu tinha vários caminhos de sistema anexados ao topo que não estavam no meu shell regular ainda causando o carregamento da MRI padrão.

Para corrigir isso, eu não precisei especificar o verificador de sintaxe em todos os meus .vimrc, no entanto, tive que atualizar como o zsh começou. Usando o tópico em: link acabei executando sudo mv /etc/zshenv /etc/zprofile e agora tudo funciona e meus caminhos estão corretos em mvim. Isso também deve resolver o problema de atualização sintática ao instalar uma nova versão em ruby via rvm.

    
por 01.04.2015 / 12:44
0

Para um projeto Rails.

  • Defina a versão do ruby em um arquivo .ruby-version na raiz do projeto.
  • E comece seu vim a partir da raiz do projeto.

O Syntastic fará a verificação de sintaxe com a versão especificada do ruby.

    
por 16.11.2015 / 12:08

Tags