Sha256: b8ac9a9501a58fab5d7db2a5c4e3df06ae68239214c54ad4fa4879cffccf6188

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

#!/usr/bin/env ruby
spackle_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
$LOAD_PATH.unshift(spackle_dir) unless $LOAD_PATH.include?(spackle_dir)

require 'spackle/helpers/ruby_project_root'

# Load a Vim Quickfix file in an active vim session.
#
# Usage:
# spackle-vim-load-quickfix [servername] quickfix_file
#
# If servername is specified, try to use it as the vim
# server. Otherwise, assume the name for the vim server
# is the from ruby-project-root -basename, if
# successful. If no Ruby project root was found, use
# DEFAULT as the servername.
#
# If the server doesn't exist, we'll create a new
# gvim session.
#

def servername_from_arguments
  ARGV.shift if ARGV.count == 2
end

def servername_from_project_root
  project_root = Spackle::Helpers::RubyProjectRoot.search Dir.pwd
  File.basename(project_root) if project_root
end

def servername
  @servername ||= servername_from_arguments || servername_from_project_root || "DEFAULT"
end

def server_running?
  !`gvim --serverlist`.grep(/#{servername}/i).empty?
end

unless server_running?
  system %{gvim --servername #{servername}}
  sleep 1
end

system %{gvim --servername #{servername} --remote-send "<ESC>" &> /dev/null}
system %{gvim --servername #{servername} --remote-expr "LoadSpackleQuickfix('#{ARGV.first}')" &> /dev/null}
system %{gvim --servername #{servername} --remote-send "<ESC><C-W>p" &> /dev/null}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spackle-0.0.1 bin/spackle-vim-load-quickfix