zsh-workers
 help / color / mirror / code / Atom feed
* Re: PATCH: completion in quotes
@ 1999-06-07 11:55 Sven Wischnowsky
  0 siblings, 0 replies; 4+ messages in thread
From: Sven Wischnowsky @ 1999-06-07 11:55 UTC (permalink / raw)
  To: zsh-workers


I forgot to mention...

Peter Stephenson wrote:

> So long as the documentation is explicit about "foo' b" and
> "'foo b" completing differently, I would say let them have quotes.

The code does this now but I didn't document it (yet) because I didn't 
know where to put it... any suggestions?

Bye
 Sven

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: PATCH: completion in quotes
@ 1999-06-07 12:42 Sven Wischnowsky
  0 siblings, 0 replies; 4+ messages in thread
From: Sven Wischnowsky @ 1999-06-07 12:42 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

> Sven Wischnowsky wrote:
> > This makes completion always work on whole quoted strings. It has the
> > special casing for string that start with a quote as discussed last
> > week. The code is very careful to change the word as few as possible,
> > I hope it is even better than what Bart suggested in 6471.
> 
> Wow.  It looks like the compsys.yo chunk was just a repeat of the
> documentation for $compcontext, and there was some debugging code in
> _brace_parameter so it needed applying by hand, but I think it was all
> unambiguous.

Ugh. Sorry.

> > 1) The code tries to automatically insert closing quotes. This is also 
> >    done during menucompletion -- is this ok?
> 
> Maybe in principle this should be compstate-able, but I won't worry too
> much.

Hadn't thought of that... but I'll first let it sink in anyway.

> > 2) `compset -q' currently does nothing if the current word isn't
> >    quoted. This could be changed to always split the current word at
> >    spaces even if not inside quotes. Should we?
> 
> I'd say, not until there's a clear use for this, then (presumably) you can
> share code in cases which do or don't have quotes.  The spaces to split on
> in this case would have to have been put there explcitly by the completion
> code, wouldn't they?  Otherwise they'd have to be quoted already to get
> that far.  Or are you distinguishing between "zsh -c 'echo foo'" and "zsh
> -c echo\ foo"?  Ideally those two should be split in the same way.

(I take the double quotes as being meta-characters in this case.)

This is the thing I was thinking about. Here, `compset -q' will only
return true (and modify the parameters) in the first case, not in the
second one, because the code knows that there is/isn't a single quote 
at the beginning.

> > 4) I changed `_brace_parameters' to automatically insert closing
> >    quotes inside parameter expansions (`${"foo<TAB>'). This fails with 
> >    completeinword if there already was a closing quote on the line.
> >    I may have to rethink something here. Maybe this should always be
> >    done automatically without the completion widget having to bother
> >    about it. Probably in a way that closes the expansion automatically 
> >    only if there is no user-supplied -S suffix.
> 
> It could get quite icky if you're trying to close nested things all the
> time.  Anything simple and consistent would be OK.

Btw. When the code automatically inserts closing quotes, this is only
done for one level. If you use `compctl -h' or `compset -q' to
complete parts of:

  % foo 'bar "baz<TAB>

the code inserts only the ", not "', and only if there is no other
suffix worth inserting.


Bye
 Sven


--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: PATCH: completion in quotes
  1999-06-07 10:54 Sven Wischnowsky
@ 1999-06-07 11:54 ` Peter Stephenson
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Stephenson @ 1999-06-07 11:54 UTC (permalink / raw)
  To: zsh-workers

Sven Wischnowsky wrote:
> This makes completion always work on whole quoted strings. It has the
> special casing for string that start with a quote as discussed last
> week. The code is very careful to change the word as few as possible,
> I hope it is even better than what Bart suggested in 6471.

Wow.  It looks like the compsys.yo chunk was just a repeat of the
documentation for $compcontext, and there was some debugging code in
_brace_parameter so it needed applying by hand, but I think it was all
unambiguous.

> 1) The code tries to automatically insert closing quotes. This is also 
>    done during menucompletion -- is this ok?

Maybe in principle this should be compstate-able, but I won't worry too
much.

> 2) `compset -q' currently does nothing if the current word isn't
>    quoted. This could be changed to always split the current word at
>    spaces even if not inside quotes. Should we?

I'd say, not until there's a clear use for this, then (presumably) you can
share code in cases which do or don't have quotes.  The spaces to split on
in this case would have to have been put there explcitly by the completion
code, wouldn't they?  Otherwise they'd have to be quoted already to get
that far.  Or are you distinguishing between "zsh -c 'echo foo'" and "zsh
-c echo\ foo"?  Ideally those two should be split in the same way.

> 3) The code tries hard to correctly close quotes inside parameter
>    expansions. While writing this is saw again that ${'$a'} is the
>    same as $$. Shouldn't we disallow single quotes there?
>    At least the completion code can only handle double quotes.

Ideally, yes, if they don't work.  Most shells test give a `bad
substitution' message which suggests they test it in the equivalent of
parmsubst().  It could be hard to work out where it's necessary then.

> 4) I changed `_brace_parameters' to automatically insert closing
>    quotes inside parameter expansions (`${"foo<TAB>'). This fails with 
>    completeinword if there already was a closing quote on the line.
>    I may have to rethink something here. Maybe this should always be
>    done automatically without the completion widget having to bother
>    about it. Probably in a way that closes the expansion automatically 
>    only if there is no user-supplied -S suffix.

It could get quite icky if you're trying to close nested things all the
time.  Anything simple and consistent would be OK.

> 5) The `_closequotes' completer should be superfluous now.

I was about to ask.  I'll delete it in the next version (and the
documentation).  I won't bother sending a patch.

> Ok. Now I beg everyone who ever complained about the handling of
> quotes in completion to test all this and send us comments,
> suggestions, and so on. Please. Yes?

I'll try and get pws-21 out by tomorrow, after I've dealt with Andrej's
comments on installing functions.

-- 
Peter Stephenson <pws@ibmth.df.unipi.it>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy


^ permalink raw reply	[flat|nested] 4+ messages in thread

* PATCH: completion in quotes
@ 1999-06-07 10:54 Sven Wischnowsky
  1999-06-07 11:54 ` Peter Stephenson
  0 siblings, 1 reply; 4+ messages in thread
From: Sven Wischnowsky @ 1999-06-07 10:54 UTC (permalink / raw)
  To: zsh-workers


(This kept me busy the whole weekend... sigh.)

This makes completion always work on whole quoted strings. It has the
special casing for string that start with a quote as discussed last
week. The code is very careful to change the word as few as possible,
I hope it is even better than what Bart suggested in 6471.

Along with this (incompatible) change come some extensions:

- `compctl -h foo' -- is a bit like -l, but splits the current word. I 
  wrote a new function sep_comp_string() for this which is a little
  sister of get_compstring(), so it should nested quotes right.
- A new `compctl -x' test: `q[str]' is true if `str' starts with a `s' 
  and we are in single quotes, if it starts with `d' and we are in
  double quotes, or if it starts with `b' and we are in backticks.
- `compset -q' tests if we are in quotes and if we are, it splits the
  current word into parts, stores them in `words', and changes
  `{PRE,SUF}FIX'.
- In completion widgets `IQ{PRE,SUF}FIX' report the part of the
  original string which is currently not considered to be part of the
  word to complete. These are set by `compset -q' and are read-only.

There are a couple of things where I want to request your
help/suggestions/comments or which I just want to mention:

1) The code tries to automatically insert closing quotes. This is also 
   done during menucompletion -- is this ok?
2) `compset -q' currently does nothing if the current word isn't
   quoted. This could be changed to always split the current word at
   spaces even if not inside quotes. Should we?
3) The code tries hard to correctly close quotes inside parameter
   expansions. While writing this is saw again that ${'$a'} is the
   same as $$. Shouldn't we disallow single quotes there?
   At least the completion code can only handle double quotes.
4) I changed `_brace_parameters' to automatically insert closing
   quotes inside parameter expansions (`${"foo<TAB>'). This fails with 
   completeinword if there already was a closing quote on the line.
   I may have to rethink something here. Maybe this should always be
   done automatically without the completion widget having to bother
   about it. Probably in a way that closes the expansion automatically 
   only if there is no user-supplied -S suffix.
5) The `_closequotes' completer should be superfluous now.

Ok. Now I beg everyone who ever complained about the handling of
quotes in completion to test all this and send us comments,
suggestions, and so on. Please. Yes?

Bye
 Sven

P.S.: This is big enough to gzip it -- I also took the opportunity to
      clean up the CP_* macros (we had a bit of discussion about this
      when I added compstate[vared]).

begin 600 patch-comp-quote.gz
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
KU[IG7))D\-94L-;UII8#>#^?X5ASZ.*RB9-MWH%Y-<O3_1_S$>$<9\L``+<O
`
end

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1999-06-07 12:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-06-07 11:55 PATCH: completion in quotes Sven Wischnowsky
  -- strict thread matches above, loose matches on Subject: below --
1999-06-07 12:42 Sven Wischnowsky
1999-06-07 10:54 Sven Wischnowsky
1999-06-07 11:54 ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).