Show More
@@ -12,6 +12,7 b' update upgrade' | |||
|
12 | 12 | |
|
13 | 13 | """ |
|
14 | 14 | import IPython.ipapi |
|
15 | import glob,os,shlex | |
|
15 | 16 | |
|
16 | 17 | ip = IPython.ipapi.get() |
|
17 | 18 | |
@@ -91,4 +92,28 b' def svn_completer(self,event):' | |||
|
91 | 92 | |
|
92 | 93 | return svn_commands.split() |
|
93 | 94 | |
|
94 | ip.set_hook('complete_command', svn_completer, str_key = 'svn') No newline at end of file | |
|
95 | ip.set_hook('complete_command', svn_completer, str_key = 'svn') | |
|
96 | ||
|
97 | def runlistpy(self, event): | |
|
98 | comps = shlex.split(event.line) | |
|
99 | relpath = (len(comps) > 1 and comps[-1] or '') | |
|
100 | ||
|
101 | print "rp",relpath | |
|
102 | if relpath.startswith('~'): | |
|
103 | relpath = os.path.expanduser(relpath) | |
|
104 | dirs = [f.replace('\\','/') + "/" for f in glob.glob(relpath+'*') if os.path.isdir(f)] | |
|
105 | pys = [f.replace('\\','/') for f in glob.glob(relpath+'*.py')] | |
|
106 | return dirs + pys | |
|
107 | ||
|
108 | ip.set_hook('complete_command', runlistpy, str_key = '%run') | |
|
109 | ||
|
110 | def listdirs(self, event): | |
|
111 | relpath = event.symbol | |
|
112 | if relpath.startswith('~'): | |
|
113 | relpath = os.path.expanduser(relpath).replace('\\','/') | |
|
114 | found = [f.replace('\\','/')+'/' for f in glob.glob(relpath+'*') if os.path.isdir(f)] | |
|
115 | if not found: | |
|
116 | return [relpath] | |
|
117 | return found | |
|
118 | ||
|
119 | ip.set_hook('complete_command', listdirs, str_key = '%cd') No newline at end of file |
@@ -540,8 +540,19 b' class IPCompleter(Completer):' | |||
|
540 | 540 | event.symbol = text |
|
541 | 541 | cmd = line.split(None,1)[0] |
|
542 | 542 | event.command = cmd |
|
543 | #print "\ncustom:{%s]\n" % event # dbg | |
|
544 | ||
|
545 | # for foo etc, try also to find completer for %foo | |
|
546 | if not cmd.startswith(self.magic_escape): | |
|
547 | try_magic = self.custom_completers.s_matches( | |
|
548 | self.magic_escape + cmd) | |
|
549 | else: | |
|
550 | try_magic = [] | |
|
551 | ||
|
552 | ||
|
543 | 553 | for c in itertools.chain( |
|
544 | 554 | self.custom_completers.s_matches(cmd), |
|
555 | try_magic, | |
|
545 | 556 | self.custom_completers.flat_matches(self.lbuf)): |
|
546 | 557 | # print "try",c # dbg |
|
547 | 558 | try: |
@@ -1,3 +1,10 b'' | |||
|
1 | 2006-11-02 Ville Vainio <vivainio@gmail.com> | |
|
2 | ||
|
3 | * ipy_stock_completers.py: Add %run and %cd completers. | |
|
4 | ||
|
5 | * completer.py: Try running custom completer for both | |
|
6 | "foo" and "%foo" if the command is just "foo". | |
|
7 | ||
|
1 | 8 | 2006-10-31 Ville Vainio <vivainio@gmail.com> |
|
2 | 9 | |
|
3 | 10 | * strdispatch.py, completer.py, ipy_stock_completers.py: |
General Comments 0
You need to be logged in to leave comments.
Login now