Ruby 1.9.2,Rails 3+ app。
我在lambda块中设置默认值:
scope :order_by, lambda { |field, dir='ASC'|
...
TextMate告诉我每次保存时此语法都无效。更令人讨厌的是,它让我走到了问题的界限,当我在文件中工作较低并且它让我跳到那里时,这很麻烦。
当然,Ruby运行文件a-ok。
我在哪里可以找到语法规则,以便我可以更改它们?或者是以某种方式通过Ruby传递它?
答案 0 :(得分:1)
查看Bundle Editor(在Bundles菜单下) - 您的案例中的Ruby或Ruby on Rails包。 Bundles定义命令(例如'Validate Syntax'),片段,宏,语法等。
答案 1 :(得分:0)
在文件'Validate and Save.tmCommand'中的Ruby Bundle中也有这一行:
result = #{compiler_ruby} -wc "$TM_FILEPATH" 2>&1
-w打开警告。
删除'w'对我来说很有用:
result = #{compiler_ruby} -c "$TM_FILEPATH" 2>&1
更改任何捆绑后,在textmate中你需要运行:
捆绑 - >捆绑编辑器 - >重新加载捆绑包
P.S。捆绑可以在这里找到:
〜/ Library / Application Support / TextMate / Bundles
答案 2 :(得分:0)
我能够通过更改Ruby>来解决这个问题。验证并保存命令
#!/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>中设置了此设置。高级> Shell变量
希望有帮助吗?