#!/usr/bin/env python """ Add %global magic for GNU Global usage. http://www.gnu.org/software/global/ """ from IPython.core import ipapi ip = ipapi.get() import os # alter to your liking global_bin = 'd:/opt/global/bin/global' def global_f(self,cmdline): simple = 0 if '-' not in cmdline: cmdline = '-rx ' + cmdline simple = 1 lines = [l.rstrip() for l in os.popen( global_bin + ' ' + cmdline ).readlines()] if simple: parts = [l.split(None,3) for l in lines] lines = ['%s [%s]\n%s' % (p[2].rjust(70),p[1],p[3].rstrip()) for p in parts] print "\n".join(lines) ip.define_magic('global', global_f) def global_completer(self,event): compl = [l.rstrip() for l in os.popen(global_bin + ' -c ' + event.symbol).readlines()] return compl ip.set_hook('complete_command', global_completer, str_key = '%global')