2010-12-06 25 views
0

Ruby 1.9.2,Rails 3+應用程序。Textmate在哪裏找到它的語法檢查規則?

我設置的拉姆達塊默認:

scope :order_by, lambda { |field, dir='ASC'| 
... 

TextMate的告訴,這個語法是無效的,每次我保存。更令人討厭的是,這讓我感到疑惑,當我在文件中工作時,這是一件麻煩事,它讓我跳到那裏。

當然,Ruby運行文件a-ok。

我在哪裏可以找到語法規則,以便我可以更改它們?或者它以某種方式通過Ruby?

回答

1

查看捆綁編輯器(在捆綁菜單下)—您的情況下的Ruby或Ruby on Rails捆綁軟件。束定義的命令(如「驗證語法」),片段,宏語法等

+0

TextMate.go_to:line => $ 1 if result =〜/ - :((\ d +):/是Ruby包中的罪魁禍首,Validate Syntax命令。謝謝! – wesgarrison 2010-12-08 07:20:52

+0

這個快速修復幫助我,但是沒有辦法改變代碼片段,所以每次加載正確的Ruby版本? – bodacious 2012-02-01 09:30:54

0

還有這條線在Ruby包文件「驗證並Save.tmCommand」內:
結果= #{compiler_ruby} -wc "$TM_FILEPATH" 2>&1

-w開啓警告。
去掉「W」爲我做的伎倆:

結果= #{compiler_ruby} -c "$TM_FILEPATH" 2>&1

和更改任何束,在TextMate的之後,你需要運行:
套裝 - >包編輯 - >刷新捆綁

PS束可以在這裏找到:
〜/庫/ Application Support/TextMate的/捆綁

0

我能夠通過改變紅寶石>驗證解決這一問題,並保存命令

#!/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中設置了這個設置

希望有幫助嗎?

相關問題