[ANNOUNCE] hg "shell" extension

Mark Williamson mark.williamson at cl.cam.ac.uk
Tue Feb 5 12:14:54 CST 2008


> > I'm not aware of anything like this having been done before but maybe I
> > just missed it.  For some reason I've decided it'd be "fun" to dive into
> > playing with Python's readline interface and hacked up a prototype
> > interactive Hg shell.
> >
> > The attached patch is a snapshot of how far I've gotten.  It applies with
> > -p0 and adds a file "shell.py" to the hgext directory.  There are no
> > other changes to the hg source.
> >
> > The "shell" extension implements an interactive commandline for hg,
> > supporting editting, history and tab completion on command names, command
> > options and global opions.  It should work on Unix systems, but I believe
> > not on Windows (which lacks a Python readline module, apparently).
> >
> > The tab completion isn't yet as intelligent as it could be, since it
> > doesn't understand which options should also have arguments and it's not
> > able to complete filenames or revision IDs.  I'll hope to add these
> > features in a future release
>
> The zsh completion script has pretty comprehensive context-sensitive
> tab completion. I think the bash one is also pretty good, though I
> haven't used it. Given that, the shell extension is probably best
> suited for windows (or csh users and other inhabitants of purgatory).

Thanks for the info!

I'll give those completion scripts a playing with...  I would hope that a true 
hg extension for shell-like behaviour ought to be able to perform better than 
an external shell completion script and offer more-cunning behaviours, but I 
could be wrong here.

This is quite fun stuff to play with though, so I'll be working on it 
regardless (and I need it for pmpu future developments).

My current development code has much better context-sensitive intelligence, 
things are coming along nice and quickly.

Cheers,
Mark

-- 
Push Me Pull You - Distributed SCM tool (http://www.cl.cam.ac.uk/~maw48/pmpu/)


More information about the Mercurial mailing list