ipy_gnuglobal.py
38 lines
| 927 B
| text/x-python
|
PythonLexer
vivainio
|
r567 | #!/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 | ||||
vivainio
|
r568 | lines = [l.rstrip() for l in os.popen( global_bin + ' ' + cmdline ).readlines()] | ||
vivainio
|
r567 | 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') | ||||