Ruby 1.9.2,Rails 3+應用程序。Textmate在哪裏找到它的語法檢查規則?
我設置的拉姆達塊默認:
scope :order_by, lambda { |field, dir='ASC'|
...
TextMate的告訴,這個語法是無效的,每次我保存。更令人討厭的是,這讓我感到疑惑,當我在文件中工作時,這是一件麻煩事,它讓我跳到那裏。
當然,Ruby運行文件a-ok。
我在哪裏可以找到語法規則,以便我可以更改它們?或者它以某種方式通過Ruby?
Ruby 1.9.2,Rails 3+應用程序。Textmate在哪裏找到它的語法檢查規則?
我設置的拉姆達塊默認:
scope :order_by, lambda { |field, dir='ASC'|
...
TextMate的告訴,這個語法是無效的,每次我保存。更令人討厭的是,這讓我感到疑惑,當我在文件中工作時,這是一件麻煩事,它讓我跳到那裏。
當然,Ruby運行文件a-ok。
我在哪裏可以找到語法規則,以便我可以更改它們?或者它以某種方式通過Ruby?
查看捆綁編輯器(在捆綁菜單下)—您的情況下的Ruby或Ruby on Rails捆綁軟件。束定義的命令(如「驗證語法」),片段,宏語法等
還有這條線在Ruby包文件「驗證並Save.tmCommand」內:
結果= #{compiler_ruby} -wc "$TM_FILEPATH" 2>&1
-w開啓警告。
去掉「W」爲我做的伎倆:
結果= #{compiler_ruby} -c "$TM_FILEPATH" 2>&1
和更改任何束,在TextMate的之後,你需要運行:
套裝 - >包編輯 - >刷新捆綁
PS束可以在這裏找到:
〜/庫/ Application Support/TextMate的/捆綁
我能夠通過改變紅寶石>驗證解決這一問題,並保存命令
#!/usr/bin/env ruby
require ENV['TM_SUPPORT_PATH'] + '/lib/textmate'
#compiler_ruby = `which rbx`.strip
#if compiler_ruby.length == 0
compiler_ruby = ENV['TM_RUBY'] || `which ruby`.strip
#end
result = `#{compiler_ruby} -wc "$TM_FILEPATH" 2>&1`
scopes = ENV['TM_SCOPE'].split
if scopes.include? 'source.ruby.rspec.cucumber.steps'
result.gsub!(/^.+warning: ambiguous first argument; put parentheses or even spaces$/, '')
end
if result =~ /:(\d+):/
print result
TextMate.go_to :line => $1
end
註釋掉5,6, 8強制命令每次都使用TM_RUBY - 確保你在Preferences> Advanced> Shell Variables中設置了這個設置
希望有幫助嗎?
TextMate.go_to:line => $ 1 if result =〜/ - :((\ d +):/是Ruby包中的罪魁禍首,Validate Syntax命令。謝謝! – wesgarrison 2010-12-08 07:20:52
這個快速修復幫助我,但是沒有辦法改變代碼片段,所以每次加載正確的Ruby版本? – bodacious 2012-02-01 09:30:54