Textmate在哪里找到它的语法检查规则?

时间:2010-12-06 20:49:59

标签: ruby-on-rails ruby syntax textmate

Ruby 1.9.2,Rails 3+ app。

我在lambda块中设置默认值:

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

TextMate告诉我每次保存时此语法都无效。更令人讨厌的是,它让我走到了问题的界限,当我在文件中工作较低并且它让我跳到那里时,这很麻烦。

当然,Ruby运行文件a-ok。

我在哪里可以找到语法规则,以便我可以更改它们?或者是以某种方式通过Ruby传递它?

3 个答案:

答案 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变量

希望有帮助吗?

相关问题