* [BUG] zle_highlight fails to highlight suffix added with compadd -R @ 2021-09-07 10:05 Marlon Richert 2021-09-07 22:19 ` Bart Schaefer 0 siblings, 1 reply; 4+ messages in thread From: Marlon Richert @ 2021-09-07 10:05 UTC (permalink / raw) To: Zsh hackers list The following completion functions give different highlighting results in the zle: _tst() { compadd -S '<SUFFIX>' -q -- '' } _tst() { compadd -S '<SUFFIX>' -r '' -- '' } _tst() { compadd -S '<SUFFIX>' -R '' -- '' } With the first two functions, <SUFFIX> correctly gets highlighted as autoremovable. However, with the third function, <SUFFIX> does not get highlighted, even though it is autoremovable. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [BUG] zle_highlight fails to highlight suffix added with compadd -R 2021-09-07 10:05 [BUG] zle_highlight fails to highlight suffix added with compadd -R Marlon Richert @ 2021-09-07 22:19 ` Bart Schaefer 2021-09-08 2:13 ` Mikael Magnusson 0 siblings, 1 reply; 4+ messages in thread From: Bart Schaefer @ 2021-09-07 22:19 UTC (permalink / raw) To: Marlon Richert; +Cc: Zsh hackers list On Tue, Sep 7, 2021 at 3:07 AM Marlon Richert <marlon.richert@gmail.com> wrote: > > _tst() { compadd -S '<SUFFIX>' -q -- '' } > _tst() { compadd -S '<SUFFIX>' -r '' -- '' } > _tst() { compadd -S '<SUFFIX>' -R '' -- '' } > > With the first two functions, <SUFFIX> correctly gets highlighted as > autoremovable. However, with the third function, <SUFFIX> does not get > highlighted, even though it is autoremovable. -R is supposed to be followed by the name of a function. You gave it the empty string. That should probably have been an error right off the bat, but it does mean the suffix can't possibly be autoremoved. However, the same highlight behavior occurs even if you do supply a working subroutine. Does anyone remember why suffixfunclen needed to be stored separately? diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c index 612ac2138..eba28d1ec 100644 --- a/Src/Zle/zle_misc.c +++ b/Src/Zle/zle_misc.c @@ -1508,9 +1508,6 @@ static struct suffixset *suffixlist; /**/ static char *suffixfunc; -/* Length associated with the suffix function */ -static int suffixfunclen; - /* Whether to remove suffix on uninsertable characters */ /**/ int suffixnoinsrem; @@ -1611,7 +1608,7 @@ makesuffixstr(char *f, char *s, int n) if (f) { zsfree(suffixfunc); suffixfunc = ztrdup(f); - suffixfunclen = n; + suffixlen = n; } else if (s) { int inv, i, z = 0; ZLE_STRING_T ws, lasts, wptr; @@ -1685,7 +1682,7 @@ iremovesuffix(ZLE_INT_T c, int keep) unmetafy_line(); } - sprintf(buf, "%d", suffixfunclen); + sprintf(buf, "%d", suffixlen); addlinknode(args, suffixfunc); addlinknode(args, buf); @@ -1800,5 +1797,5 @@ fixsuffix(void) suffixlist = next; } - suffixfunclen = suffixnoinsrem = suffixlen = 0; + suffixnoinsrem = suffixlen = 0; } ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [BUG] zle_highlight fails to highlight suffix added with compadd -R 2021-09-07 22:19 ` Bart Schaefer @ 2021-09-08 2:13 ` Mikael Magnusson 2021-09-08 2:43 ` Bart Schaefer 0 siblings, 1 reply; 4+ messages in thread From: Mikael Magnusson @ 2021-09-08 2:13 UTC (permalink / raw) To: Bart Schaefer; +Cc: Marlon Richert, Zsh hackers list On 9/8/21, Bart Schaefer <schaefer@brasslantern.com> wrote: > On Tue, Sep 7, 2021 at 3:07 AM Marlon Richert <marlon.richert@gmail.com> > wrote: >> >> _tst() { compadd -S '<SUFFIX>' -q -- '' } >> _tst() { compadd -S '<SUFFIX>' -r '' -- '' } >> _tst() { compadd -S '<SUFFIX>' -R '' -- '' } >> >> With the first two functions, <SUFFIX> correctly gets highlighted as >> autoremovable. However, with the third function, <SUFFIX> does not get >> highlighted, even though it is autoremovable. > > -R is supposed to be followed by the name of a function. You gave it > the empty string. That should probably have been an error right off > the bat, but it does mean the suffix can't possibly be autoremoved. > > However, the same highlight behavior occurs even if you do supply a > working subroutine. Does anyone remember why suffixfunclen needed to > be stored separately? I didn't make any attempt to understand the code, but can you usefully specify both -r and -R? (it doesn't appear to be an error). -- Mikael Magnusson ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [BUG] zle_highlight fails to highlight suffix added with compadd -R 2021-09-08 2:13 ` Mikael Magnusson @ 2021-09-08 2:43 ` Bart Schaefer 0 siblings, 0 replies; 4+ messages in thread From: Bart Schaefer @ 2021-09-08 2:43 UTC (permalink / raw) To: Mikael Magnusson; +Cc: Marlon Richert, Zsh hackers list On Tue, Sep 7, 2021 at 7:13 PM Mikael Magnusson <mikachu@gmail.com> wrote: > > On 9/8/21, Bart Schaefer <schaefer@brasslantern.com> wrote: > > Does anyone remember why suffixfunclen needed to > > be stored separately? > > I didn't make any attempt to understand the code, but can you usefully > specify both -r and -R? (it doesn't appear to be an error). You mean in the same call to compadd ? Sure. The argument passed to -r just determines when to invoke the function, it doesn't provide a different suffix. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-09-08 2:44 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-07 10:05 [BUG] zle_highlight fails to highlight suffix added with compadd -R Marlon Richert 2021-09-07 22:19 ` Bart Schaefer 2021-09-08 2:13 ` Mikael Magnusson 2021-09-08 2:43 ` Bart Schaefer
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).