語法錯誤,意想不到的$結束,預計keyword_end有沒有一種方法可以在Ruby中找到缺失的結尾?
我們都在那裏!假設有足夠的代碼改變,快速瀏覽一下git diff
或類似的東西並不能說明問題,是否有一種簡單的方法可以找到缺少的end
(切換到Python等基於縮進的語言)?
FWIW,我使用Sublime Text 2作爲我的編輯器。
語法錯誤,意想不到的$結束,預計keyword_end有沒有一種方法可以在Ruby中找到缺失的結尾?
我們都在那裏!假設有足夠的代碼改變,快速瀏覽一下git diff
或類似的東西並不能說明問題,是否有一種簡單的方法可以找到缺少的end
(切換到Python等基於縮進的語言)?
FWIW,我使用Sublime Text 2作爲我的編輯器。
如果您使用的是Ruby 1.9,請在運行ruby程序時嘗試-w
標誌。
# t.rb
class Example
def meth1
if Time.now.hours > 12
puts "Afternoon"
end
def meth2
# ...
end
end
ruby t.rb
=> t.rb:10: syntax error, unexpected $end, expecting keyword_end
ruby -w t.rb
=> t.rb:5: warning: mismatched indentations at 'end' with 'if' at 3
t.rb:9: warning: mismatched indentations at 'end' with 'def' at 2
t.rb:10: syntax error, unexpected $end, expecting keyword_end
來源:
http://pragdave.blogs.pragprog.com/pragdave/2008/12/ruby-19-can-check-your-indentation.html
這是否只有在使用一致的縮進時才起作用? (+1) –
我刪除了所有的空白,它沒有給我任何不匹配的識別錯誤,所以看起來答案是肯定的。 – sunnyrjuneja
我可以在Rails中使用這個選項嗎?我現在快死了...... –
如果您使用的軌道,可以專門-w標誌運行有問題的文件。
如果你仍然無法找到違規的不匹配,那麼我解決這個問題的方法就是評論大塊的代碼,直到我可以找出問題區域。
在OS X上,您可以使用命令+ /來註釋突出顯示的文本。
vim語法突出顯示,以及快速重新格式化代碼縮進的能力,爲我帶走了所有的痛苦:-) Sublime Text可能有類似的東西,對嗎? –