files/e-win
2024-04-19 13:54:08 -04:00

39 lines
922 B
Ruby

#!/c/Ruby32-x64/bin/ruby
GVIM = "C:/apps/vim/vim91/gvim.exe"
def get_server_name(path)
if path
path = File.expand_path(path)
while path !~ %r{^.\\|/$}
dirname = File.dirname(path)
if File.exist?(File.join(dirname, "project.vim"))
if dirname =~ %r{([^/]+)/([^/]+)/*$}
sn = "#{$2}(#{$1})"
else
sn = File.basename(dirname)
end
return sn
end
path = dirname
end
end
return "GVIM"
end
def server_running?(server_name)
`gvim --serverlist`.lines.map(&:chomp).include?(server_name.upcase)
end
if ARGV.empty?
server_name = get_server_name('local_file')
exec(GVIM, "--servername", server_name, err: "/dev/null")
else
ARGV.each_with_index do |path, i|
server_name = get_server_name(path)
sleep(0.2) if i > 0
Process.detach(Process.spawn(GVIM, "--servername", server_name, "--remote-tab-silent", path))
end
end