<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Macros/find_current_keyword.tmMacro</filename>
    </added>
    <added>
      <filename>Macros/prev_find_selected_keyword.tmMacro</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -10,6 +10,14 @@
 	&lt;dict&gt;
 		&lt;key&gt;completionCommand&lt;/key&gt;
 		&lt;string&gt;#!/usr/bin/env ruby
+require 'yaml'
+
+Dir.glob(&quot;#{ENV[&quot;TM_PROJECT_DIRECTORY&quot;]}/spec/fixtures/*.yml&quot;).each { |file_name|
+  puts &quot;*&quot;
+  data = YAML.load_file(file_name)
+  puts data.values.map { |n| n.keys }.flatten.select { |e| e.include?(ENV[&quot;TM_CURRENT_WORD&quot;].to_s) }
+}
+
 open(&quot;#{ENV[&quot;HOME&quot;]}/.easyopen_tmbundle#{ENV[&quot;TM_PROJECT_DIRECTORY&quot;]}/def_index.dump&quot;, &quot;r&quot;) { |io|
 	def_index = Marshal.load(io)
 	puts def_index[:name_locationIds].keys.select { |e| e.include?(ENV[&quot;TM_CURRENT_WORD&quot;].to_s) }</diff>
      <filename>Preferences/completionCommand.tmPreferences</filename>
    </modified>
    <modified>
      <diff>@@ -6,10 +6,10 @@ module EasyOpen
           name = m[2].split(&quot;.&quot;).last
           pre = m[1].sub(/#{Regexp.escape(&quot;#{name}&quot;)}$/, &quot;&quot;)
         
-          { :name =&gt; m[1].split(&quot;.&quot;).last,
+          { :name =&gt; m[1].split(&quot;.&quot;).last.strip,
             :column =&gt; pre.size + 1,
             :more_info =&gt; line }
-        elsif m = /^([\s]*)(.*):\s*function.*$/.match(line)
+        elsif m = /^([\s]*)(\S*)\s*:\s*function.*$/.match(line)
         
           { :name =&gt; m[2],
             :column =&gt; m[1].size + 1,</diff>
      <filename>Support/lib/easyopen/extension/javascript_token.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,10 +2,11 @@ module EasyOpen
   module Extension
     class RubyToken
       def tokenize(line)
+        # ruby
         if m = /(^\s*(class|def|module)\s*)([\w:\.]*)(.*)$/.match(line)
           if mm = m[3].match(/([^\.]+)\.([^\.]+)/) # static method
             name = mm[2]
-            { :column =&gt; (m[1] + mm[1]).size + 2,
+            return { :column =&gt; (m[1] + mm[1]).size + 2,
               :name =&gt; name,
               :more_info =&gt; line }
           else
@@ -13,7 +14,7 @@ module EasyOpen
             pre_first_str = m[1]
             colum = pre_first_str.size + 1
             
-            names.map do |name|
+            return names.map do |name|
               current = colum
               colum += name.size + &quot;::&quot;.size
               { :name =&gt; name,
@@ -22,6 +23,13 @@ module EasyOpen
             end.last
           end
         end
+        #rails
+        if m =/(^\s*(alias_attribute|belongs_to|has_many)[\s:]*)([\w]*)(.*)$/.match(line)
+          return {
+            :column =&gt; (m[1].size) + 1,
+            :name =&gt; m[3],
+            :more_info =&gt; line }
+        end
       end
     end
   end</diff>
      <filename>Support/lib/easyopen/extension/ruby_token.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,8 @@ module EasyOpen
         sort_by { |f| File.mtime(f) }.
         reverse[0..10].
         reject { |e| e == @current_file }.
+        reject { |e| !!e.match(/.*\.log$/) }.
+        reject { |e| !!e.match(/.*\.sqlite3$/) }.
         map { |e| 
           { 
             :file =&gt; e, </diff>
      <filename>Support/lib/easyopen/open_recent.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,14 @@ module EasyOpen::Extension
       @token = JavaScriptToken.new
     end
     
+    it &quot;should tokinize '    color : function(string, color) {'&quot; do
+      line =  '    color : function(string, color) {'
+      result = @token.tokenize(line)
+      result[:name].should == &quot;color&quot;
+      result[:column].should == &quot;    &quot;.size + 1
+      result[:more_info].should == line      
+    end
+    
     it &quot;should tokenize '  be_empty: {'&quot; do
       line =   '  be_empty: {'
       result = @token.tokenize(line)
@@ -37,7 +45,15 @@ module EasyOpen::Extension
       result[:column].should == &quot; JSSpec.&quot;.size + 1
       result[:more_info].should == line
     end
-    
+
+    it &quot;should tokeninze '  to = function(matcher) {'&quot; do
+      line = '  to = function(matcher) {'
+      result = @token.tokenize(line)
+      result[:name].should == &quot;to&quot;
+      result[:column].should == &quot;  &quot;.size + 1
+      result[:more_info].should == line
+    end
+
     it &quot;should tokeninze 'JSSpec.Executor = function (target, onSuccess, onException) {'&quot; do
       result = @token.tokenize('JSSpec.Executor = function (target, onSuccess, onException) {')
       result[:name].should == &quot;Executor&quot;</diff>
      <filename>Support/spec/easyopen/extension/javascript_token_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,13 +5,37 @@ module EasyOpen::Extension
     before(:each) do
       @token = RubyToken.new
     end
-  
+    
+    it &quot;should tokeinze '  has_many :name'&quot; do
+      line = '  has_many :name'
+      result = @token.tokenize(line)
+      result[:name].should == &quot;name&quot;
+      result[:column].should == &quot;  has_many :&quot;.size + 1
+      result[:more_info].should == line
+    end
+
+    it &quot;should tokeinze '  belongs_to :name'&quot; do
+      line = '  belongs_to :name'
+      result = @token.tokenize(line)
+      result[:name].should == &quot;name&quot;
+      result[:column].should == &quot;  belongs_to :&quot;.size + 1
+      result[:more_info].should == line
+    end    
+    
+    it &quot;should tokeinze '  alias_attribute :alias_name, :collumn_name'&quot; do
+      line = '  alias_attribute :alias_name, :collumn_name'
+      result = @token.tokenize(line)
+      result[:name].should == &quot;alias_name&quot;
+      result[:column].should == &quot;  alias_attribute :&quot;.size + 1
+      result[:more_info].should == line
+    end
+    
     it &quot;should tokenize '    def Parse.html_to_text s'&quot; do
       line = '    def Parse.html_to_text s'
       result = @token.tokenize(line)
       result[:name].should == &quot;html_to_text&quot;
       result[:column].should == &quot;    def Parse.&quot;.size + 1
-      result[:more_info].should == line      
+      result[:more_info].should == line
     end
     
     it &quot;should tokenize '	def self.hogefuga(hoge, foo)'&quot; do
@@ -21,7 +45,7 @@ module EasyOpen::Extension
       result[:column].should == &quot;	def self.&quot;.size + 1
       result[:more_info].should == line
     end
-  
+    
     it &quot;should tokenize '	def open(hoge, foo)'&quot; do
       line = &quot;	def open(hoge, foo)&quot;
       result = @token.tokenize(line)
@@ -29,7 +53,7 @@ module EasyOpen::Extension
       result[:column].should == &quot;	def &quot;.size + 1
       result[:name].should == &quot;open&quot;
     end
-  
+    
     it &quot;should tokenize 'module Hoge::Hogeogeoge'&quot; do
       line = 'module Hoge::Hogeogeoge'
       result = @token.tokenize(line)
@@ -37,7 +61,7 @@ module EasyOpen::Extension
       result[:name].should == &quot;Hogeogeoge&quot;
       result[:more_info].should == line
     end
-  
+    
     it &quot;should tokenize return nil if not include def module class&quot; do
       line = '      '
       @token.tokenize(line).should be_nil</diff>
      <filename>Support/spec/easyopen/extension/ruby_token_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,11 +10,13 @@
 			&lt;string&gt;F79EF9CA-6D4D-45D9-807C-F7183BE855E6&lt;/string&gt;
 			&lt;string&gt;1E135F00-FE33-4BDE-AA2C-31A6C3B3943D&lt;/string&gt;
 			&lt;string&gt;------------------------------------&lt;/string&gt;
+			&lt;string&gt;E065B750-38D6-45BC-A3DE-C6ABCD29225A&lt;/string&gt;
+			&lt;string&gt;EE021D5D-1400-4629-A83F-AC10D68A07A5&lt;/string&gt;
+			&lt;string&gt;------------------------------------&lt;/string&gt;
 			&lt;string&gt;71C114BE-105F-4BF0-AE8E-050E919711F5&lt;/string&gt;
 			&lt;string&gt;60415A72-E2EA-42D1-8A71-FEC60644BECD&lt;/string&gt;
 			&lt;string&gt;71B53E07-8F2B-4074-8CAF-B2B454AF09F7&lt;/string&gt;
 			&lt;string&gt;------------------------------------&lt;/string&gt;
-			&lt;string&gt;0F2DB92A-0D23-4A98-9056-5437285D518D&lt;/string&gt;
 			&lt;string&gt;5C05808F-1680-4237-9026-A2EFD0CD263F&lt;/string&gt;
 			&lt;string&gt;------------------------------------&lt;/string&gt;
 			&lt;string&gt;B5701FBA-C60D-4216-B5E5-D22829649FB2&lt;/string&gt;
@@ -26,12 +28,17 @@
 	&lt;string&gt;EasyOpen&lt;/string&gt;
 	&lt;key&gt;ordering&lt;/key&gt;
 	&lt;array&gt;
+		&lt;string&gt;E065B750-38D6-45BC-A3DE-C6ABCD29225A&lt;/string&gt;
+		&lt;string&gt;EE021D5D-1400-4629-A83F-AC10D68A07A5&lt;/string&gt;
 		&lt;string&gt;4F261511-9691-422A-8894-088A10B99061&lt;/string&gt;
 		&lt;string&gt;301C8785-9A97-4E24-A313-2AC89FF7403F&lt;/string&gt;
 		&lt;string&gt;F79EF9CA-6D4D-45D9-807C-F7183BE855E6&lt;/string&gt;
 		&lt;string&gt;1E135F00-FE33-4BDE-AA2C-31A6C3B3943D&lt;/string&gt;
 		&lt;string&gt;5C05808F-1680-4237-9026-A2EFD0CD263F&lt;/string&gt;
 		&lt;string&gt;B5701FBA-C60D-4216-B5E5-D22829649FB2&lt;/string&gt;
+		&lt;string&gt;71C114BE-105F-4BF0-AE8E-050E919711F5&lt;/string&gt;
+		&lt;string&gt;71B53E07-8F2B-4074-8CAF-B2B454AF09F7&lt;/string&gt;
+		&lt;string&gt;60415A72-E2EA-42D1-8A71-FEC60644BECD&lt;/string&gt;
 	&lt;/array&gt;
 	&lt;key&gt;uuid&lt;/key&gt;
 	&lt;string&gt;A586D61A-96C6-491D-9BD9-E2C6AB7F26FF&lt;/string&gt;</diff>
      <filename>info.plist</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fb03bd5a9697eccf85450d9cfee6adc89f343617</id>
    </parent>
    <parent>
      <id>d675b8e6d7643c525b02d7e4b6198328877c8aab</id>
    </parent>
  </parents>
  <author>
    <name>Thomas Aylott</name>
    <email>oblivious+git@subtlegradient.com</email>
  </author>
  <url>http://github.com/subtleGradient/easy-open-tmbundle/commit/eb812db1f032a3cddcafc012d3e37a7fcb8f5c49</url>
  <id>eb812db1f032a3cddcafc012d3e37a7fcb8f5c49</id>
  <committed-date>2009-06-15T08:27:45-07:00</committed-date>
  <authored-date>2009-06-15T08:27:45-07:00</authored-date>
  <message>Merge branch 'master' of git@github.com:subtleGradient/easy-open-tmbundle</message>
  <tree>eefc6729053dbd8667ed48549dd936292428e11e</tree>
  <committer>
    <name>Thomas Aylott</name>
    <email>oblivious+git@subtlegradient.com</email>
  </committer>
</commit>
