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

RE: Function installation



>
> The stuff only gets put into fpath when you run compinit because it knows
> the path to compinit, which it wouldn't if it were a function; you'd have
> to give it the -f option.  So the nettle of deciding where the things are
> has to be grasped anyway.  But this is all supposed to be handled
> seamlessly by running compinstall.  At least with the function
> installation
> stuff, you get a sensible default $fpath, which compinstall will check.
>

Is it different attitude, or something I'm hopelessly missing?

I have a feeling, that new completion is still being considered as
experimental by most of zsh-workers. I see it as inherent part of future
zsh. And that is exactly what I want to avoid - running compinstall for
every new user.

What is the point of it anyway? The functions are already there in
system-wide location. Zsh already knows where they are. The path is already
in fpath. Why would I need to run yet another intialisation function?

About the "nettle of deciding" - Zsh *does* know where they are (from
configure). I don't insist on function or builtin - but let's give users a
parameter COMPINIT that holds full pathname of compinit. That would provide
for quite portable rc

[[ -n "$COMPINIT" ]] && $COMPINIT ...

that will automatically cover installation without new completion as well.


> One thing's been niggling at me:  if there's a central function
> repository,
> and the user has their own functions, then compinit.dump has to
> be somewhere
> else, probably not in the same directory as compinit.  It looks like
> compinit will need to be a bit smarter about working this out.
>

As Sven suggested, put it in $HOME by default. But there is more intricate
problem - what, if I'd like to override default functions? Is it enough to
put user-defined directory before system-wide in fpath?

/andrej



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