Commit 80cae41a4b0e330ef1d038bd294a59c7c463869e

Merge branch 'release'

Commit diff

Commands/Go to External File-RubyGem.tmCommand

 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4<dict>
5 <key>beforeRunningCommand</key>
6 <string>nop</string>
7 <key>command</key>
8 <string>#!/usr/bin/env ruby
9require "#{ENV['TM_BUNDLE_SUPPORT']}/lib/go_to_external.rb"
10
11GoToExternal.run</string>
12 <key>fallbackInput</key>
13 <string>word</string>
14 <key>input</key>
15 <string>document</string>
16 <key>keyEquivalent</key>
17 <string>~G</string>
18 <key>name</key>
19 <string>Go to External File/RubyGem</string>
20 <key>output</key>
21 <string>showAsTooltip</string>
22 <key>uuid</key>
23 <string>5DB5FB44-7052-4D3C-8FB8-2B950BEBC6AE</string>
24</dict>
25</plist>
toggle raw diff

Commands/Open Project Terminal.tmCommand

 
1515</string>
1616 <key>input</key>
1717 <string>none</string>
18 <key>keyEquivalent</key>
19 <string>^@p</string>
1820 <key>name</key>
1921 <string>Project terminal</string>
2022 <key>output</key>
toggle raw diff

Rakefile

 
1require 'rubygems'
2require 'rake'
3require 'rake/testtask'
4
5APP_NAME='RubyAMP.tmbundle'
6APP_ROOT=File.dirname(__FILE__)
7
8RUBY_APP='ruby'
9
10desc "TMBundle Test Task"
11task :default => [ :test ]
12Rake::TestTask.new { |t|
13 t.libs << "test"
14 t.pattern = 'Support/test/test_*.rb'
15 t.verbose = true
16 t.warning = false
17}
18Dir['Support/tasks/**/*.rake'].each { |file| load file }
toggle raw diff

Support/lib/go_to_external.rb

 
1require 'rubygems'
2$:.unshift "#{ENV['TM_BUNDLE_SUPPORT']}/lib"
3require "ruby_tm_helpers"
4require "grep_helpers"
5# DEMO TARGET: require 'hpricot'
6# DEMO TARGET: require 'ruby-debug'
7# DEMO TARGET: require 'map_by_method'
8
9module GoToExternal
10 extend self
11 # Returns the path of the project or file that best
12 # matches the context of where the cursor/caret is currently
13 def run
14 target_gem = target_term #ENV['TM_CURRENT_WORD']
15 if gem_spec = Gem.source_index.find_name(target_gem).last
16 gem_path = gem_spec.full_gem_path
17 tm_open gem_path
18 else
19 puts "No RubyGem with name '#{target_gem}'"
20 end
21 end
22
23 def target_term
24 filepath = tm_expanded_selection(
25 :backward => /[\w\/.-]+/,
26 :forward => /[\w\/.-]+/
27 ).strip
28 end
29end
toggle raw diff

Support/lib/ruby_tm_helpers.rb

 
4242 file = $1
4343 line = $2
4444 end
45
45
4646 unless /^\//.match(file)
4747 file = File.join((ENV['TM_PROJECT_DIRECTORY'] || Dir.pwd), file)
4848 end
49
49
5050 args = []
5151 args << "-w" if wait
5252 args << e_sh(file)
5858def tm_expanded_selection(options = {})
5959 text=ENV['TM_SELECTED_TEXT'].to_s
6060 return text unless text.empty?
61
61
6262 options = {
6363 :input_type => :doc,
6464 :input => nil,
6767 :line_number => ENV['TM_LINE_NUMBER'].to_i,
6868 :col_number => ENV['TM_COLUMN_NUMBER'].to_i
6969 }.merge(options)
70
70
7171 col_number, line_number = options[:col_number], options[:line_number]
72
72
7373 doc = options[:input] ||= $stdin.read
74
75 line =
74
75 line =
7676 case options[:input_type]
7777 when :doc then doc.split("\n")[line_number - 1].to_s
7878 when :line then doc
79 else
79 else
8080 raise "Can't handle input_type #{options[:input_type]} for tm_expanded_selection"
8181 end
82
82
8383 last_part = line[ (col_number - 1)..-1]
8484 first_part = line[ 0..col_number - 2]
8585
toggle raw diff

Support/test/test_go_to_external.rb

 
1require File.dirname(__FILE__) + "/test_helper"
2require "go_to_external"
3
4class TestGoToExternal < Test::Unit::TestCase
5 def test_case_name
6
7 end
8end
toggle raw diff

Support/test/test_helper.rb

 
1require "test/unit"
2
3$:.unshift File.dirname(__FILE__) + "/../lib"
4$:.unshift File.dirname(__FILE__) + "/../bin"
toggle raw diff

info.plist

 
1313 <string>C2B791CB-A363-4795-8722-B13D1AC082E9</string>
1414 <string>5A794E77-05F6-4BF9-A2C3-C43D81FA35E6</string>
1515 <string>110CE952-DD36-476D-BC13-48B3D906334D</string>
16 <string>7B7488CD-ACC9-49F9-BE91-B3150326C3D0</string>
1716 <string>5011F1E1-74CF-4D63-B901-1E2FB7760AFE</string>
1817 <string>C3447304-B1F3-4500-9F00-B025D9520BB0</string>
1918 <string>7BEFC54B-D3FD-4B88-916A-2E80304D5CD2</string>
2019 <string>3E287237-8082-4068-8B31-0F814338710E</string>
20 <string>90E13791-96CC-4380-8344-48EB84D9E616</string>
21 <string>6472BE24-D59B-46E3-A2AC-8B6B15621C9D</string>
2122 </array>
2223 <key>submenus</key>
2324 <dict>
4646 <string>E2D2F075-81CE-4604-9813-A08145995F96</string>
4747 <string>23D5F39E-73CA-43FC-90B3-18BDBEDDD56B</string>
4848 <string>7443155B-3A9B-4B0A-8D3D-0B533B3B9125</string>
49 <string>5DB5FB44-7052-4D3C-8FB8-2B950BEBC6AE</string>
4950 </array>
5051 <key>name</key>
5152 <string>Quick - Navigate</string>
9999 <string>E2D2F075-81CE-4604-9813-A08145995F96</string>
100100 <string>23D5F39E-73CA-43FC-90B3-18BDBEDDD56B</string>
101101 <string>7443155B-3A9B-4B0A-8D3D-0B533B3B9125</string>
102 <string>5DB5FB44-7052-4D3C-8FB8-2B950BEBC6AE</string>
102103 <string>5011F1E1-74CF-4D63-B901-1E2FB7760AFE</string>
103104 <string>C3447304-B1F3-4500-9F00-B025D9520BB0</string>
104105 <string>7BEFC54B-D3FD-4B88-916A-2E80304D5CD2</string>
105106 <string>3E287237-8082-4068-8B31-0F814338710E</string>
107 <string>6472BE24-D59B-46E3-A2AC-8B6B15621C9D</string>
106108 </array>
107109 <key>uuid</key>
108110 <string>90A97C0D-E305-4C84-93E4-DCFB2113820E</string>
toggle raw diff