##// END OF EJS Templates
Changing input filtering to require whitespace separation between the initial command (alias, magic, autocall) and rest of line. ...
Changing input filtering to require whitespace separation between the initial command (alias, magic, autocall) and rest of line. This fixes some subtle but nasty bugs with lines that start with, e.g. r'a_string'. They had been getting parsed as the magic %r followed by the string literal 'a_string' -- now that's been fixed.

File last commit:

r680:5a2d2c1b
r707:8de6d199
Show More
ipy_gnuglobal.py
38 lines | 889 B | text/x-python | PythonLexer
#!/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 = [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.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')