From 2f5e2a966f592ba2c7d08d5676575b10c57f863a 2007-03-23 09:49:08 From: vivainio Date: 2007-03-23 09:49:08 Subject: [PATCH] ipy_gnuglobal provides %global magic and completer for users of GNU Global TAGS system --- diff --git a/IPython/Extensions/ipy_gnuglobal.py b/IPython/Extensions/ipy_gnuglobal.py new file mode 100644 index 0000000..34e7cf7 --- /dev/null +++ b/IPython/Extensions/ipy_gnuglobal.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + + +""" +Add %global magic for GNU Global usage. + +http://www.gnu.org/software/global/ + +""" + +import IPython.ipapi +ip = IPython.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 = 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.expose_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') +