Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Completing directories with special suffix



I solved this in a non-zsh fashion by writing a program called classfind that
parsed my classpath and built a cache of classes vs. package/directory.

So I can identify which jar I pick up a particular class from.

I then built a zsh completion around it, such that this program was invoked for
 'java com.oopsconsultancy.<TAB>'. So it doesn't complete on directories, but
from your classpath.

More details if you're interested.

Brian

 --- Will Sargent <wsargent@xxxxxxx> wrote: > Hello all,
> 
> I'm trying to get the zsh code completion to expand out java directories and
> application modules so that I have directory completion set up with the dot
> instead of the slash.
> 
> As an example, I'd like to be able to do with java and a directory
> /com/foo/bar containing a file Main.class
> 
>    java -classpath . com.foo.bar.Main
> 
> using the dot prefix to expand on com.f<tab>, if that makes any sense.
> 
> I also use ATG Dynamo heavily, so which uses application modules in the same
> style.  I have a script for this, but it still expands things out with the /
> tag.  It's almost what I want, but not quite; I'd also like it so that only
> directories which contain a META-INF directory are considered.
> 
> So given a directory structure
> 
>     $DYNAMO_ROOT/
> 		DAS/
> 			META-INF/
> 			LDAP/
> 				META-INF/
> 				iPlanetDirectory/
> 					META-INF/
> 		DPS/
> 			META-INF/
> 		home/
> 			no meta inf dir here/
> 
> Then
> 
>   startDynamo -m DAS.LDAP.iPlanetDirectory
> 
> would be expanded out, but home wouldn't be on the possible list, and DPS
> wouldn't have any child completions.
> 
> I've created a file called _modules with the following text
> 
> #autoload
> 
> # Because of the way that the files options are processed, need to pass in
> # DYNAMO_ROOT and not $DYNAMO_HOME/..
> 
> # We also want to find files which contain a META-INF directory.
> # We also want to be able to expand out sub-modules.
> 
> DYNAMO_ROOT=$DYNAMO_HOME/..
> 
> _files -/ -W DYNAMO_ROOT
> 
> but that's as far as I've gotten for now.
> 
> What should I change to get the code working like I want?
> 
> Will.
> 
> 
> 

=====
Brian Agnew                  http://www.oopsconsultancy.com
OOPS Consultancy Ltd         brian@xxxxxxxxxxxxxxxxxxx
Tel: +44 (0)7720 397526
Fax: +44 (0)20 8682 0012

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com



Messages sorted by: Reverse Date, Date, Thread, Author