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

Re: Expanding quotes

On Dec 23,  6:38pm, Yuri D'Elia wrote:
} On 12/17/2013 07:26 PM, Bart Schaefer wrote:
} > There's a basic conflict in the completion system in that it can't "know"
} > if you mean for the literal string backslash-quote to be completed, or if
} > you mean for the backslash to have its usual semantic effect on the quote.
} Hhhm, how could this happen? Surely, zsh seem to take note if the
} argument to be completed starts with a quote.

It's a syntactic question as well as a semantic one.  For example, you

    ls *\"

and expected completion to treat backslash-dquote as a unit matching a
literal double quote.  But someone else might type

    ls *"

and expect completion to *supply* the missing backslash, because there
is a file name ending with a quote.  It gets even more complicated if
the backslash is inside another set of quotes, etc.  We spent quite a
lot of time (years ago) responding to complaints about this kind of thing
before finally concluding that we couldn't please everybody and should
stick with making the common cases work.

A third complication is that there are a huge number of different ways
to apply quoting, and trying to figure out which one corresponds to what
the user already typed is difficult to generalize.  The globbing code
that generates the list of possible files returns a particular quoting
scheme that would have to be converted to the user's arbitrary quoting.

Consequently there are a number of cases that either never came up when
this was all being developed, or that have been deemed to seldom come
up in practice, where the results are imperfect.

We'd be happy to find some more volunteers to work on the internals of
completion to resolve more of these cases.

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