##// END OF EJS Templates
Settle on cleaner API for magic registration....
Settle on cleaner API for magic registration. The official API will be: - ip.register_magics(*args): for registering one or more classes or instances that subclass the main magic.Magics class. This will be the *only* method for registering magics that have a signature f(self, line,...). - ip.function_as_magic: for registering one-off magics made from a standalone function with the signatures f(line), f(line, cell) or f(line, cell=None). We will support, for backwards compatibility, the old ip.define_magic, but it will print a deprecation warning.

File last commit:

r4574:a8c54759
r6936:9c7626b3
Show More
ipy_gnuglobal.py
35 lines | 867 B | text/x-python | PythonLexer
"""
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')