##// END OF EJS Templates
- Small dir. completion fix, problem reported by Stefan.
fperez -
Show More
@@ -372,6 +372,22 b' class IPCompleter(Completer):'
372 372 def protect_filename(s):
373 373 return "".join([(ch in protectables and '\\' + ch or ch)
374 374 for ch in s])
375
376 def single_dir_expand(matches):
377 "Recursively expand match lists containing a single dir."
378
379 if len(matches) == 1 and os.path.isdir(matches[0]):
380 # Takes care of links to directories also. Use '/'
381 # explicitly, even under Windows, so that name completions
382 # don't end up escaped.
383 d = matches[0]
384 if d[-1] in ['/','\\']:
385 d = d[:-1]
386
387 matches = [ (d + '/' + p) for p in os.listdir(d) ]
388 return single_dir_expand(matches)
389 else:
390 return matches
375 391
376 392 lbuf = self.lbuf
377 393 open_quotes = 0 # track strings with open quotes
@@ -420,17 +436,8 b' class IPCompleter(Completer):'
420 436 else:
421 437 matches = [text_prefix +
422 438 protect_filename(f) for f in m0]
423 if len(matches) == 1 and os.path.isdir(matches[0]):
424 # Takes care of links to directories also. Use '/'
425 # explicitly, even under Windows, so that name completions
426 # don't end up escaped.
427 d = matches[0]
428 if d[-1] in ['/','\\']:
429 d = d[:-1]
430
431 matches = [ (d + '/' + p) for p in os.listdir(d) ]
432
433 return matches
439
440 return single_dir_expand(matches)
434 441
435 442 def alias_matches(self, text):
436 443 """Match internal system aliases"""
@@ -1,5 +1,10 b''
1 1 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
2 2
3 * IPython/completer.py
4 (IPCompleter.file_matches.single_dir_expand): fix a problem
5 reported by Stefan, where directories containign a single subdir
6 would be completed too early.
7
3 8 * IPython/Shell.py (_load_pylab): Make the execution of 'from
4 9 pylab import *' when -pylab is given be optional. A new flag,
5 10 pylab_import_all controls this behavior, the default is True for
General Comments 0
You need to be logged in to leave comments. Login now