unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Feature branches review please
       [not found] <20201104161200.tyeo2r5jibdahukb.ref@Ergus>
@ 2020-11-04 16:12 ` Ergus
  2020-11-04 23:18   ` Basil L. Contovounesios
                     ` (2 more replies)
  0 siblings, 3 replies; 61+ messages in thread
From: Ergus @ 2020-11-04 16:12 UTC (permalink / raw)
  To: emacs-devel

Hi:

The icomplete-vertical feature branch is pretty much ready, please if
any maintainer could give it a last review and tell me anything else
needed to merge into master?

OTOH the highlight-completions branch is almost ready too. I have more
doubts about this and maybe I will be doing some unneeded things there,
so maybe a review with some critics and advises will be very very
welcome.

Best,
Ergus



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

* Re: Feature branches review please
  2020-11-04 16:12 ` Feature branches review please Ergus
@ 2020-11-04 23:18   ` Basil L. Contovounesios
  2020-11-05  8:30   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 13:25   ` Andrii Kolomoiets
  2 siblings, 0 replies; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-04 23:18 UTC (permalink / raw)
  To: Ergus; +Cc: emacs-devel

Ergus <spacibba@aol.com> writes:

> The icomplete-vertical feature branch is pretty much ready, please if
> any maintainer could give it a last review and tell me anything else
> needed to merge into master?

Thanks.  I've never used icomplete before, but FWIW I just gave it a
quick whirl with icomplete-separator set to "\n" and the orderless
package installed, and it seems to work fine.

The only thing that caught my eye in the code is that variables defined
with defvar-local can be set with setq; they don't need setq-local,
since they automatically become buffer-local when set.

> OTOH the highlight-completions branch is almost ready too. I have more
> doubts about this and maybe I will be doing some unneeded things there,
> so maybe a review with some critics and advises will be very very
> welcome.

I have yet to try this branch out, but it sounds cool.

-- 
Basil



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

* Re: Feature branches review please
  2020-11-04 16:12 ` Feature branches review please Ergus
  2020-11-04 23:18   ` Basil L. Contovounesios
@ 2020-11-05  8:30   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 10:05     ` Jean Louis
  2020-11-05 13:25   ` Andrii Kolomoiets
  2 siblings, 1 reply; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05  8:30 UTC (permalink / raw)
  To: Ergus; +Cc: emacs-devel


Hi Ergus,

>
> The icomplete-vertical feature branch is pretty much ready, please if 
> any maintainer could give it a last review and tell me anything else 
> needed to merge into master?
>

You may have followed the (heated) discussions about displaying completion 
candidates vertically in the minibuffer about a month ago.  Short summary:

1. During these discussions, Eli added two lines in xdisp.c, and 
icomplete-vertical now only requires `(setq icomplete-separator "\n")'.

2. These two lines do not implement a 100% correct icomplete-vertical, 
sometimes the prompt is still hidden (in cases where it could/should be 
displayed).  But the approach you use (calculating the height of the 
minibuffer contents pixelwise) is not 100% correct either.

3. The only correct approach is to ask redisplay to start displaying the 
minibuffer at beginning of buffer.  I provided a simple solution to do 
this, but Eli doesn't like it.  He thinks another solution (using text 
properties) should be implemented.  Stefan thinks yet another solution 
(using the buffer redisplay routines instead of using a specific code for 
minibuffers) should be used.  In short, there is no clear agreement.

4. FWIW, I (and a few others) have been using the solution I provided, and 
it works flawlessly.

Gregory



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

* Re: Feature branches review please
  2020-11-05  8:30   ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 10:05     ` Jean Louis
  2020-11-05 16:10       ` Gregory Heytings via Emacs development discussions.
  0 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-05 10:05 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Ergus, emacs-devel

* Gregory Heytings via "Emacs development discussions. <emacs-devel@gnu.org> [2020-11-05 11:37]:
> 
> Hi Ergus,
> 
> > 
> > The icomplete-vertical feature branch is pretty much ready, please if
> > any maintainer could give it a last review and tell me anything else
> > needed to merge into master?
> > 
> 
> You may have followed the (heated) discussions about displaying completion
> candidates vertically in the minibuffer about a month ago.  Short summary:
> 
> 1. During these discussions, Eli added two lines in xdisp.c, and
> icomplete-vertical now only requires `(setq icomplete-separator
> "\n")'.

I hope that functions are made in the spirit of ivy and helm so that I
can build completion based system for any choices, not only minibuffer
built-in choices.

For ivy, I have this:

ivy-completing-read is an autoloaded compiled Lisp function in
‘ivy.el’.

(ivy-completing-read PROMPT COLLECTION &optional PREDICATE
REQUIRE-MATCH INITIAL-INPUT HISTORY DEF INHERIT-INPUT-METHOD)

icomplete-vertical would be very useful function and I hope it will
get:

- full window support, like poping out of minibuffer to full window
- settable size of minibuffer
- actions like ivy with M-o or helm with TAB

Then I could develop on built-in Emacs features instead of asking for
too many outside packages to be loaded.

Let me know how to get that branch, that I can test it.

Jean



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

* Re: Feature branches review please
  2020-11-04 16:12 ` Feature branches review please Ergus
  2020-11-04 23:18   ` Basil L. Contovounesios
  2020-11-05  8:30   ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 13:25   ` Andrii Kolomoiets
  2 siblings, 0 replies; 61+ messages in thread
From: Andrii Kolomoiets @ 2020-11-05 13:25 UTC (permalink / raw)
  To: Ergus; +Cc: emacs-devel

Ergus <spacibba@aol.com> writes:

> The icomplete-vertical feature branch is pretty much ready, please if
> any maintainer could give it a last review and tell me anything else
> needed to merge into master?

I'm not the maintainer, but can you please look into the following
issue?

Completions candidates not visible in the minibuffer-only frame.

In 'emacs -Q':
1. Enable icomplete-mode:
M-x icomplete-mode
2. Evaluate:
(setq resize-mini-frames t)
(setq icomplete-separator "\n")
(setq icomplete-prospects-height 4)
3. M-x i

Minibuffer now contains three completion candidates and ellipsis.

Repeat the same steps in
emacs -Q --eval "(setq default-frame-alist '((minibuffer . nil)))"

Minibuffer now contains no completion candidates but only ellipsis.

Thank you!



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

* Re: Feature branches review please
  2020-11-05 10:05     ` Jean Louis
@ 2020-11-05 16:10       ` Gregory Heytings via Emacs development discussions.
  2020-11-05 16:27         ` Manuel Uberti
  2020-11-05 17:22         ` Jean Louis
  0 siblings, 2 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 16:10 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel


>
> I hope that functions are made in the spirit of ivy and helm so that I 
> can build completion based system for any choices, not only minibuffer 
> built-in choices.
[...]
>
> (ivy-completing-read PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH 
> INITIAL-INPUT HISTORY DEF INHERIT-INPUT-METHOD)
>

In fact it's the opposite, that function is made in the spirit of Emacs' 
built-in completing-read function: (completing-read PROMPT COLLECTION 
&optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF 
INHERIT-INPUT-METHOD)

>
> - full window support, like poping out of minibuffer to full window
>

I'm not sure I understand what you mean, but it seems to me that this is a 
standard feature when reading from the minibuffer, when you press TAB a 
*Completions* buffer opens.

>
> - settable size of minibuffer
>

This is a separate feature, see max-mini-window-height.

>
> - actions like ivy with M-o or helm with TAB
>

This I don't know, what do you mean by "actions"?



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

* Re: Feature branches review please
  2020-11-05 16:10       ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 16:27         ` Manuel Uberti
  2020-11-05 17:00           ` Gregory Heytings via Emacs development discussions.
  2020-11-05 17:22         ` Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Manuel Uberti @ 2020-11-05 16:27 UTC (permalink / raw)
  To: emacs-devel

On 05/11/20 17:10, Gregory Heytings via Emacs development discussions. wrote:
>>
>> - actions like ivy with M-o or helm with TAB
>>
> 
> This I don't know, what do you mean by "actions"?
> 

Probably something like the package embark[1] provides.


[1] https://github.com/oantolin/embark

-- 
Manuel Uberti
www.manueluberti.eu



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

* Re: Feature branches review please
  2020-11-05 16:27         ` Manuel Uberti
@ 2020-11-05 17:00           ` Gregory Heytings via Emacs development discussions.
  2020-11-05 17:32             ` Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 17:00 UTC (permalink / raw)
  To: Manuel Uberti; +Cc: emacs-devel


>>> - actions like ivy with M-o or helm with TAB
>>
>> This I don't know, what do you mean by "actions"?
>
> Probably something like the package embark[1] provides.
>
> [1] https://github.com/oantolin/embark
>

Oh yes, I see.  In that case, no, I don't think such a feature is in the 
scope of icomplete.



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

* Re: Feature branches review please
  2020-11-05 16:10       ` Gregory Heytings via Emacs development discussions.
  2020-11-05 16:27         ` Manuel Uberti
@ 2020-11-05 17:22         ` Jean Louis
  1 sibling, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 17:22 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

* Gregory Heytings <ghe@sdf.org> [2020-11-05 19:10]:
> 
> > 
> > I hope that functions are made in the spirit of ivy and helm so that I
> > can build completion based system for any choices, not only minibuffer
> > built-in choices.
> [...]
> > 
> > (ivy-completing-read PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH
> > INITIAL-INPUT HISTORY DEF INHERIT-INPUT-METHOD)
> > 
> 
> In fact it's the opposite, that function is made in the spirit of Emacs'
> built-in completing-read function: (completing-read PROMPT COLLECTION
> &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF
> INHERIT-INPUT-METHOD)
> 
> > 
> > - full window support, like poping out of minibuffer to full window
> > 
> 
> I'm not sure I understand what you mean, but it seems to me that this is a
> standard feature when reading from the minibuffer, when you press TAB a
> *Completions* buffer opens.

I mean that icomplete should provide function for others:
`icomplete-completing-read' just in the spirit of Emacs.

> > - actions like ivy with M-o or helm with TAB
> > 
> 
> This I don't know, what do you mean by "actions"?

Thank you, thank you.

I also forgot to mention multiple choice.

Let us say I have a list COLLECTION, I can feed it into

- helm-completing-read
- ido-completing-read
- ivy-completing-read

there may be others. Some of them automatically replace the built-in
completing read.

Now in helm and ivy (what as that is all what I know until now), there
are "actions" which can determine what to do on the specific
selection. In helm I can press TAB to see actions, then I can choose
one of actions. In Ivy I press M-o

For example if ivy-mode is turned on, I can do C-x b and there is list
of buffers with incremental search, I can press M-o and I can see
actions: insert, copy, find file, other window, kill and
rename. Actions are customizable

As I prefer working with built-ins and reusing the built-in Emacs Lisp
functions, that is why I am asking you. Ivy is in GNU ELPA, helm is
outside of GNU ELPA, but best would be to have vertical completion
similar to both of them, but built-in.

Another point is that icomplete-completing-read should allow multiple
selections. In helm I can select with C-SPC multiple lines or choices.

Summary;

- if possible, provide multiple choices for icomplete, so that
  multiple list items can be returned

- provide actions on the selection, as default action is when I
  choose it, but I could have different selection. For example default
  action would be to view contact details, but I could have selection
  to send email to contact.

- incremental search is I guess there, I did not try that yet

- I like when completion function can find it in reverse, for example
  when writing words "Doe John" can select "He was John Doe"

I would be eventually using ido-mode, but it is not adequate and does
not have vertical incremental serach. Helm is best so far but it is
overkill for many applications. So now I am using `ivy-mode' as it is
in GNU ELPA. Even better would be to have incremental visual selection
with icomplete-* if it will come into main Emacs.

Jean



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

* Re: Feature branches review please
  2020-11-05 17:00           ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 17:32             ` Jean Louis
  2020-11-05 18:50               ` Stefan Monnier
                                 ` (2 more replies)
  0 siblings, 3 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 17:32 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Manuel Uberti, emacs-devel

* Gregory Heytings via "Emacs development discussions. <emacs-devel@gnu.org> [2020-11-05 20:06]:
> 
> > > > - actions like ivy with M-o or helm with TAB
> > > 
> > > This I don't know, what do you mean by "actions"?
> > 
> > Probably something like the package embark[1] provides.
> > 
> > [1] https://github.com/oantolin/embark
> > 
> 
> Oh yes, I see.  In that case, no, I don't think such a feature is in the
> scope of icomplete.

I don't think that embark is what I mean. Here is short screen how
actions are implemented in Helm with TAB:

https://gnu.support/images/tmp/2020-11-05-20:26:22.ogv

I can then choose what to do on the selection instead of the default
action. In Ivy actions are also there but with M-o

If function icomplete-completing-read is not there, I still need to
use external packages. It is more useful if it is there.

How can I checkout that branch?







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

* Re: Feature branches review please
  2020-11-05 17:32             ` Jean Louis
@ 2020-11-05 18:50               ` Stefan Monnier
  2020-11-05 19:30                 ` Jean Louis
  2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
  2020-11-06 10:31               ` Alan Mackenzie
  2 siblings, 1 reply; 61+ messages in thread
From: Stefan Monnier @ 2020-11-05 18:50 UTC (permalink / raw)
  To: Jean Louis; +Cc: Gregory Heytings, Manuel Uberti, emacs-devel

> I don't think that embark is what I mean. Here is short screen how
> actions are implemented in Helm with TAB:
>
> https://gnu.support/images/tmp/2020-11-05-20:26:22.ogv
>
> I can then choose what to do on the selection instead of the default
> action. In Ivy actions are also there but with M-o
>
> If function icomplete-completing-read is not there, I still need to
> use external packages. It is more useful if it is there.
>
> How can I checkout that branch?

FWIW, such actions would be a great addition to the generic completion.
If done well, it could help unify a bit more Ivy, Helm, Icomplete, and
the default completion.  Currently in Icomplete there is a very limited
and ad-hoc support for actions in the form of the "kill" action when
selecting buffers.

I think we should try and generalize that.  If someone with experience
with Ivy or Helm actions would like to tackle that, that'd be great.
And if they feel like they don't know enough about the minibuffer.el
code for that, don't be afraid: I'd be happy to help.


        Stefan




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

* Re: Feature branches review please
  2020-11-05 18:50               ` Stefan Monnier
@ 2020-11-05 19:30                 ` Jean Louis
  2020-11-05 19:52                   ` Eli Zaretskii
  2020-11-05 21:55                   ` Adam Porter
  0 siblings, 2 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 19:30 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Gregory Heytings, Manuel Uberti, emacs-devel

* Stefan Monnier <monnier@iro.umontreal.ca> [2020-11-05 21:51]:
> > I don't think that embark is what I mean. Here is short screen how
> > actions are implemented in Helm with TAB:
> >
> > https://gnu.support/images/tmp/2020-11-05-20:26:22.ogv
> >
> > I can then choose what to do on the selection instead of the default
> > action. In Ivy actions are also there but with M-o
> >
> > If function icomplete-completing-read is not there, I still need to
> > use external packages. It is more useful if it is there.
> >
> > How can I checkout that branch?
> 
> FWIW, such actions would be a great addition to the generic completion.
> If done well, it could help unify a bit more Ivy, Helm, Icomplete, and
> the default completion.  Currently in Icomplete there is a very limited
> and ad-hoc support for actions in the form of the "kill" action when
> selecting buffers.

And why not include ivy straight into Emacs and then build on top of
it?

Also tabulated-list-mode would need built-in incremental narrowing
search. That would be great too. I have application working in that mode.

Who can help me check out the icomplete-vertical branch that I may
try? I am working on application Hyperscope that is based on
Engelbart's work and it uses browsable tabulated-list-mode. Sometimes
there are many choices, the list can be really long. Index of specific
pages in PDF file can be thousands and thousands. Of course I have
implemented incremental narrowing by using Helm and I wish to switch
it to something built-in.q I wish to give those to GNU ELPA soon. But
with focus on least number of packages from outside.

Insight with some bugs:
https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:14:01.ogv

and export to Org mode:
https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:23:20.ogv

For that system I need vertical incremental narrowing search. I would
be best if tabulated-list-mode provides such function.

Help me to checkout that ivertical branch. How do I get it?

I have tried git branch --list but I see only master.



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

* Re: Feature branches review please
  2020-11-05 19:30                 ` Jean Louis
@ 2020-11-05 19:52                   ` Eli Zaretskii
  2020-11-05 21:55                   ` Adam Porter
  1 sibling, 0 replies; 61+ messages in thread
From: Eli Zaretskii @ 2020-11-05 19:52 UTC (permalink / raw)
  To: Jean Louis; +Cc: ghe, manuel.uberti, monnier, emacs-devel

> Date: Thu, 5 Nov 2020 22:30:31 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: Gregory Heytings <ghe@sdf.org>, Manuel Uberti <manuel.uberti@inventati.org>,
>  emacs-devel@gnu.org
> 
> Who can help me check out the icomplete-vertical branch that I may
> try?

Emacs:

  M-s M-w how to checkout a git branch RET




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

* Re: Feature branches review please
  2020-11-05 17:32             ` Jean Louis
  2020-11-05 18:50               ` Stefan Monnier
@ 2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
  2020-11-05 21:09                 ` Ergus
  2020-11-05 21:33                 ` Jean Louis
  2020-11-06 10:31               ` Alan Mackenzie
  2 siblings, 2 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 20:39 UTC (permalink / raw)
  To: Jean Louis; +Cc: Manuel Uberti, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 453 bytes --]


>
> How can I checkout that branch?
>

As I said earlier in this thread, you can have icomplete-vertical without 
using that branch, with the master branch you only need to `(setq 
icomplete-separator "\n")'.

If you want a more robust solution however (neither the above nor the 
branch are always correct), you'll have to wait.  If you don't want to 
wait, you can try my proposed solution (see attached), which works for any 
version of Emacs >= 24.

[-- Attachment #2: Type: text/plain, Size: 1141 bytes --]

(defvar-local start-display-at-beginning-of-minibuffer nil)
(defun start-display-at-beginning-of-minibuffer (&rest args)
  (when (and start-display-at-beginning-of-minibuffer (minibufferp))
    (set-window-start-at-begin (point-min) (point))))
(defun set-window-start-at-begin (beg end)
  (when (< (+ beg 2) end)
    (set-window-start nil beg)
    (unless (pos-visible-in-window-p end nil t)
      (set-window-start-at-begin (+ beg (/ (- end beg) 2)) end))))
(add-hook 'window-scroll-functions #'start-display-at-beginning-of-minibuffer)
(add-hook 'post-command-hook #'start-display-at-beginning-of-minibuffer)

(setq icomplete-separator "\n")
(add-hook 'icomplete-minibuffer-setup-hook (lambda () (setq start-display-at-beginning-of-minibuffer t)))
(defun icomplete-vertical-reformat-completions (completions)
  (save-match-data
    (if (string-match "^\\((.*)\\|\\[.*\\]\\)?{\\(\\(?:.\\|\n\\)+\\)}" completions)
        (format "%s \n%s" (or (match-string 1 completions) "") (match-string 2 completions))
      completions)))
(advice-add 'icomplete-completions :filter-return #'icomplete-vertical-reformat-completions)

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

* Re: Feature branches review please
  2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 21:09                 ` Ergus
  2020-11-05 21:19                   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 21:33                 ` Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Ergus @ 2020-11-05 21:09 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Jean Louis, Manuel Uberti, emacs-devel

On Thu, Nov 05, 2020 at 08:39:03PM +0000, Gregory Heytings via Emacs development discussions. wrote:
>
>>
>>How can I checkout that branch?
>>
>
>As I said earlier in this thread, you can have icomplete-vertical 
>without using that branch, with the master branch you only need to 
>`(setq icomplete-separator "\n")'.
>
>If you want a more robust solution however (neither the above nor the 
>branch are always correct),

In which case the branch is not correct?

>you'll have to wait.  If you don't want to 
>wait, you can try my proposed solution (see attached), which works for 
>any version of Emacs >= 24.

>(defvar-local start-display-at-beginning-of-minibuffer nil)
>(defun start-display-at-beginning-of-minibuffer (&rest args)
>  (when (and start-display-at-beginning-of-minibuffer (minibufferp))
>    (set-window-start-at-begin (point-min) (point))))
>(defun set-window-start-at-begin (beg end)
>  (when (< (+ beg 2) end)
>    (set-window-start nil beg)
>    (unless (pos-visible-in-window-p end nil t)
>      (set-window-start-at-begin (+ beg (/ (- end beg) 2)) end))))
>(add-hook 'window-scroll-functions #'start-display-at-beginning-of-minibuffer)
>(add-hook 'post-command-hook #'start-display-at-beginning-of-minibuffer)
>
>(setq icomplete-separator "\n")
>(add-hook 'icomplete-minibuffer-setup-hook (lambda () (setq start-display-at-beginning-of-minibuffer t)))
>(defun icomplete-vertical-reformat-completions (completions)
>  (save-match-data
>    (if (string-match "^\\((.*)\\|\\[.*\\]\\)?{\\(\\(?:.\\|\n\\)+\\)}" completions)
>        (format "%s \n%s" (or (match-string 1 completions) "") (match-string 2 completions))
>      completions)))
>(advice-add 'icomplete-completions :filter-return #'icomplete-vertical-reformat-completions)




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

* Re: Feature branches review please
  2020-11-05 21:09                 ` Ergus
@ 2020-11-05 21:19                   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 21:36                     ` Jean Louis
  2020-11-05 21:44                     ` Stefan Monnier
  0 siblings, 2 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 21:19 UTC (permalink / raw)
  To: Ergus; +Cc: Jean Louis, Manuel Uberti, emacs-devel


>> As I said earlier in this thread, you can have icomplete-vertical 
>> without using that branch, with the master branch you only need to 
>> `(setq icomplete-separator "\n")'.
>>
>> If you want a more robust solution however (neither the above nor the 
>> branch are always correct),
>
> In which case the branch is not correct?
>

This has been discussed at length earlier: it is in practice impossible to 
calculate the height of the minibuffer, and to calculate the size of the 
completion candidates list to insert in the minibuffer.  Yet you need to 
do both to have a correct solution with the approach of the branch.



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

* Re: Feature branches review please
  2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
  2020-11-05 21:09                 ` Ergus
@ 2020-11-05 21:33                 ` Jean Louis
  2020-11-05 21:46                   ` Basil L. Contovounesios
  2020-11-05 22:24                   ` Gregory Heytings via Emacs development discussions.
  1 sibling, 2 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 21:33 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Manuel Uberti, emacs-devel

Alright, it is in master branch, I have it.

When I do:

{C-h v RET icomplete-separator RET} then I get option to customize.

When I enter there: \n without quotes I get this completion:

~doe/\nntp/\ntor etc. so it deos not work well as intended from
customize. You maybe wish to verify that for users. Did you try
changing it in customize yourself? So it will not work with the
advise. It is not well made customization, OK? I consider that bug.

If I do in customize {C-q C-j} then I get new line in customize which
then does work. Not everybody will know how to tweak that.

This of course works directly:

(setq icomplete-separator "\n")

It does not work smooth as ivy. I wish it could.

I am supposed to click TAB even if it matches, clicking ENTER creates
new buffer with half of the file name. Ivy allows me to click enter if
I am on the match which is faster.

icomplete-mode works well with M-j so far.

I am asking myself what is the big difference between icomplete and
ido now. icomplete is doing what difference?

By your advise I have also changed the third parameter for
ido-decorations to: {C-q C-j and I have also got vertical ido
completion.

I expect to be able to move in vertical line, not only type
letters. Feeling is rigid, I cannot move up and down with familiar
keys likes C-n or C-p like I can do in ivy-mode or in helm

My feeling is that icomplete-mode is downgrade of ido-mode as it has
less keybindings, or better, icomplete is not complete.

Both ido-mode and icomplete-mode are so much worse than ivy mode.

Why ivy-mode cannot enter Emacs as it is GNU ELPA?

And then in Emacs there are two packages doing basically the same
function, ido-mode and icomplete-mode. I cannot know why. I am giving
you my opinion and review as user who would like to have: narrowing
incremental search with movements up and down, actions and
X-completing-read function.

Here is video and comparison between ido-mode, icomplete-mode,
ivy-mode and helm-mode, size 59M, about 9 minutes:
https://gnu.support/images/2020/11/2020-11-05/2020-11-06-00:03:17.ogv

Let us first see ido-mode C-j did not work as expected. I am used to
ivy-mode, my fault. Maybe it is separator. Even with my customization,
C-j is not working. What does ido-mode map says? There is no
ido-mode-map and no description of mode map as I expect to get it with
{C-h m} but I can see in the source that key bindings are well defined.

ido-mode selects text only partially, does not automatically choose
from selection if it matches. I may be familiar with ivy/helm and
expect that when I press enter on the match that it should work. I
have to complete it myself in full by using TAB, coming to EOL so that
ido-mode recognizes it. Not what I expect. Only horizontal works for
ido-mode. Visually ido-mode can work vertically if third parameter of
ido-decorations is changed to C-q C-j but it does not function in
selection. So why icomplete vertically when you can improve ido-mode
in the same way to be vertical? It looks as more mature package. 

Then I have tried icomplete in vertical mode. I cannot move with
familiar keys up and down. So I cannot see what is down. That is what
I expected.

Then I have tried again with ido-mode. And it was better, more visible
files. Then I've tried again icomplete-mode and I got confused as I
could not see nothing by moving up and down, it is far from my
vertical related expectations.

Then I have tested horizontal I complete and it gives me feeling of
not being nearly close to ido-mode. But is better than vertical. But
ido-mode is much better than icomplete-mode.

Now to ivy-mode. What you see on video with M-o are actions. That is
so useful. Let us say you create icomplete-find-files, you may want to
delete, rename, copy and do other actions with files.

counsel package utilizs ivy-mode to create exactly that, to cd, open,
open externally, open as root, to open read only, to delete, to copy,
move or mkdir. Those are actions, very necessary and common in other
completion frameworks.

Then I have checked helm-find-files which is definitely the best. No
question about it.

But ivy-mode is light, it is in GNU ELPA (easier to install on
multiple machines) and way better than ido or icomplete.

Summary of these four reviewed:

1. helm-find-files, best but overkill, and outside of Emacs GNU ELPA

2. ivy-mode and counsel are in GNU ELPA, ivy works great.

3. ido-mode works well, it has user functions and looks pretty mature

4. icomplete-mode reinvents the wheel and is already in Emacs. I get
   surprised. I was reviewing it some days before and I did not get
   what it is as it looked like bad version of ido-mode.

Thank you.

Jean



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

* Re: Feature branches review please
  2020-11-05 21:19                   ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 21:36                     ` Jean Louis
  2020-11-05 21:44                     ` Stefan Monnier
  1 sibling, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 21:36 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Ergus, Manuel Uberti, emacs-devel

* Gregory Heytings <ghe@sdf.org> [2020-11-06 00:19]:
> 
> > > As I said earlier in this thread, you can have icomplete-vertical
> > > without using that branch, with the master branch you only need to
> > > `(setq icomplete-separator "\n")'.
> > > 
> > > If you want a more robust solution however (neither the above nor
> > > the branch are always correct),
> > 
> > In which case the branch is not correct?
> > 
> 
> This has been discussed at length earlier: it is in practice impossible to
> calculate the height of the minibuffer, and to calculate the size of the
> completion candidates list to insert in the minibuffer.  Yet you need to do
> both to have a correct solution with the approach of the branch.

While this may not be mathematically possible, it can be observed that
ivy simply works much better then both the reinvented icomplete-mode
and built-in ido-mode.



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

* Re: Feature branches review please
  2020-11-05 21:19                   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 21:36                     ` Jean Louis
@ 2020-11-05 21:44                     ` Stefan Monnier
  2020-11-05 22:00                       ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 61+ messages in thread
From: Stefan Monnier @ 2020-11-05 21:44 UTC (permalink / raw)
  To: Gregory Heytings via Emacs development discussions.
  Cc: Gregory Heytings, Ergus, Manuel Uberti, Jean Louis

> This has been discussed at length earlier: it is in practice impossible to
> calculate the height of the minibuffer, and to calculate the size of the
> completion candidates list to insert in the minibuffer.  Yet you need to do
> both to have a correct solution with the approach of the branch.

With the current display code on `master`, I don't think the behaviors
you refer to can qualify as incorrect.  You can argue that they are
less often preferable than some other choice, but that's a far cry from
incorrect, IMO, and then should be fairly uncommon.  So it's definitely
not very high priority and shouldn't decide whether we install
a particular version of the code right now.


        Stefan




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

* Re: Feature branches review please
  2020-11-05 21:33                 ` Jean Louis
@ 2020-11-05 21:46                   ` Basil L. Contovounesios
  2020-11-05 22:24                   ` Gregory Heytings via Emacs development discussions.
  1 sibling, 0 replies; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-05 21:46 UTC (permalink / raw)
  To: Jean Louis; +Cc: Gregory Heytings, Manuel Uberti, emacs-devel

Jean Louis <bugs@gnu.support> writes:

> Why ivy-mode cannot enter Emacs as it is GNU ELPA?

There's a different thread for that:

https://lists.gnu.org/archive/html/emacs-devel/2020-09/msg01095.html
https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00114.html

> But ivy-mode is light

Depends on what you compare it to. ;)

-- 
Basil



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

* Re: Feature branches review please
  2020-11-05 19:30                 ` Jean Louis
  2020-11-05 19:52                   ` Eli Zaretskii
@ 2020-11-05 21:55                   ` Adam Porter
  2020-11-05 22:18                     ` hyperscope Jean Louis
  2020-11-06  5:50                     ` Feature branches review please Jean Louis
  1 sibling, 2 replies; 61+ messages in thread
From: Adam Porter @ 2020-11-05 21:55 UTC (permalink / raw)
  To: emacs-devel

Jean Louis <bugs@gnu.support> writes:

> Who can help me check out the icomplete-vertical branch that I may
> try? I am working on application Hyperscope that is based on
> Engelbart's work and it uses browsable tabulated-list-mode. Sometimes
> there are many choices, the list can be really long. Index of specific
> pages in PDF file can be thousands and thousands. Of course I have
> implemented incremental narrowing by using Helm and I wish to switch
> it to something built-in.q I wish to give those to GNU ELPA soon. But
> with focus on least number of packages from outside.
>
> Insight with some bugs:
> https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:14:01.ogv

That looks interesting.  It reminds me of Semantic Synchrony, an Emacs
project which seems to not be very well known.  This video in particular
reminds me of yours: https://www.youtube.com/watch?v=R2vX2oZmUUM  See
also: https://github.com/synchrony/smsn




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

* Re: Feature branches review please
  2020-11-05 21:44                     ` Stefan Monnier
@ 2020-11-05 22:00                       ` Gregory Heytings via Emacs development discussions.
  2020-11-05 22:36                         ` Ergus
  0 siblings, 1 reply; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 22:00 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Gregory Heytings via Emacs development discussions., Ergus,
	Manuel Uberti, Jean Louis


>> This has been discussed at length earlier: it is in practice impossible 
>> to calculate the height of the minibuffer, and to calculate the size of 
>> the completion candidates list to insert in the minibuffer.  Yet you 
>> need to do both to have a correct solution with the approach of the 
>> branch.
>
> With the current display code on `master`, I don't think the behaviors 
> you refer to can qualify as incorrect.
>

Which is why I said, in the two previous mails, "not 100% correct" and 
"not always correct".  I did not think it was necessary to repeat "always" 
here.

>
> You can argue that they are less often preferable than some other 
> choice, but that's a far cry from incorrect, IMO, and then should be 
> fairly uncommon.  So it's definitely not very high priority and 
> shouldn't decide whether we install a particular version of the code 
> right now.
>

My point is that now that `(setq icomplete-separator "\n")' works (in most 
but not all cases), there is no need for the specific vertical-icomplete 
implementation anymore.  What is (or could be) needed is an implementation 
that is "more correct" (correct in all cases).



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

* hyperscope
  2020-11-05 21:55                   ` Adam Porter
@ 2020-11-05 22:18                     ` Jean Louis
  2020-11-06 18:18                       ` hyperscope Eduardo Ochs
  2020-11-06  5:50                     ` Feature branches review please Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-05 22:18 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

* Adam Porter <adam@alphapapa.net> [2020-11-06 00:56]:
> Jean Louis <bugs@gnu.support> writes:
> 
> > Who can help me check out the icomplete-vertical branch that I may
> > try? I am working on application Hyperscope that is based on
> > Engelbart's work and it uses browsable tabulated-list-mode. Sometimes
> > there are many choices, the list can be really long. Index of specific
> > pages in PDF file can be thousands and thousands. Of course I have
> > implemented incremental narrowing by using Helm and I wish to switch
> > it to something built-in.q I wish to give those to GNU ELPA soon. But
> > with focus on least number of packages from outside.
> >
> > Insight with some bugs:
> > https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:14:01.ogv
> 
> That looks interesting.  It reminds me of Semantic Synchrony, an Emacs
> project which seems to not be very well known.  This video in particular
> reminds me of yours: https://www.youtube.com/watch?v=R2vX2oZmUUM  See
> also: https://github.com/synchrony/smsn

Ineed it looks very similar by concept. I will study that. My system
was meant primarily for me so that I can quickly pin point what I need
in the index and jump to specific reference. It is like augmented
bookmark system. Because it is database, once link type is defined
there is no limit to it.

Hyperscope is meant to:

- dwell in eww buffer, press w and later just insert hyperlink with
  good description

- dwell in any browser, obtain reference and quickly enter into
  database

- obtain reference from online video or specific time when to play
  video, and quickly enter database, or specific line in specific
  file, to jump quickly there, or PDF specific page or specific search
  term. Not all readers provide support for that.

- to obtain specific mail reference and jump to that specific mail

- use various indexes to enter into database, to quickly jump to very
  specific places

- to represent the database by various means, converting to Org is
  easy, but it could as well be dynamically published on WWW, Gopher,
  Gemini

- to allow multi user knowledge information editing or revisions (no
  idea how to make revisions yet), remotely

- to allow connections to other databases, meaning that only database
  is running on server and with permissions some people can view it
  and some people can edit it.

- to provide feature for any kind of hyperlinks

- raise collective IQ

For now I have these types of links:

 Web
 MPV play video at exact time
 Local File
 YouTube Video at exact time
 YouTube Video
 Dired Directory
 Launch Program
 Media
 Info Node
 PDF
 HyperScope ID
 Emacs Lisp
 PDF Query
 Org Heading
 Org
 PDF by Page Nr.
 Set
 DJVU
 Note
 Video




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

* Re: Feature branches review please
  2020-11-05 21:33                 ` Jean Louis
  2020-11-05 21:46                   ` Basil L. Contovounesios
@ 2020-11-05 22:24                   ` Gregory Heytings via Emacs development discussions.
  2020-11-05 22:48                     ` Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-05 22:24 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel


>
> I expect to be able to move in vertical line, not only type letters. 
> Feeling is rigid, I cannot move up and down with familiar keys likes C-n 
> or C-p like I can do in ivy-mode or in helm
>

With icomplete-mode, C-h m tells you that:

C-, is icomplete-backward-completions
C-. is icomplete-forward-completions

And you can always:

(define-key icomplete-minibuffer-map (kbd "C-n") 'icomplete-forward-completions)
(define-key icomplete-minibuffer-map (kbd "C-p") 'icomplete-backward-completions)

>
> Maybe it is separator. Even with my customization, C-j is not working.
>

With icomplete-mode C-j would do what you want (it is bound to 
icomplete-force-complete-and-exit).

I looked at your video, most of the time I do not understand what you try 
to do.  Of course nothing works as you expect it to work, out of the box, 
without reading any documentation.

And yes, ivy and helm have more features, so if you prefer ivy or helm, 
just use ivy or helm.

>
> 4. icomplete-mode reinvents the wheel and is already in Emacs.
>

No, icomplete-mode does not reinvent the wheel, it came first, then came 
ido-mode, then ivy and helm.



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

* Re: Feature branches review please
  2020-11-05 22:00                       ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 22:36                         ` Ergus
  2020-11-06  8:42                           ` Gregory Heytings via Emacs development discussions.
  0 siblings, 1 reply; 61+ messages in thread
From: Ergus @ 2020-11-05 22:36 UTC (permalink / raw)
  To: Gregory Heytings
  Cc: Stefan Monnier,
	Gregory Heytings via Emacs development discussions.,
	Manuel Uberti, Jean Louis

On Thu, Nov 05, 2020 at 10:00:57PM +0000, Gregory Heytings via Emacs development discussions. wrote:
>
>>>This has been discussed at length earlier: it is in practice 
>>>impossible to calculate the height of the minibuffer, and to 
>>>calculate the size of the completion candidates list to insert in 
>>>the minibuffer.  Yet you need to do both to have a correct 
>>>solution with the approach of the branch.
>>
>>With the current display code on `master`, I don't think the 
>>behaviors you refer to can qualify as incorrect.
>>
>
>Which is why I said, in the two previous mails, "not 100% correct" and 
>"not always correct".  I did not think it was necessary to repeat 
>"always" here.
>
>>
>>You can argue that they are less often preferable than some other 
>>choice, but that's a far cry from incorrect, IMO, and then should be 
>>fairly uncommon.  So it's definitely not very high priority and 
>>shouldn't decide whether we install a particular version of the code 
>>right now.
>>
>
>My point is that now that `(setq icomplete-separator "\n")' works (in 
>most but not all cases), there is no need for the specific 
>vertical-icomplete implementation anymore.  What is (or could be) 
>needed is an implementation that is "more correct" (correct in all 
>cases).
>
I don't totally agree is the same than the branch.

The completion like "compi{compilation" with fido mode is still there,
in the same line and is not intuitive; the ellipsis is not shown and the
{} and [] are still there and hard coded. icomplete-prospects-height is
not respected either because the number of candidates is still
calculated with the window-width and adding the candidates length which
actually makes no sense at all in vertical mode.

The pixel calculation is just part of the modifications in the branch.



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

* Re: Feature branches review please
  2020-11-05 22:24                   ` Gregory Heytings via Emacs development discussions.
@ 2020-11-05 22:48                     ` Jean Louis
  2020-11-06  9:19                       ` Gregory Heytings via Emacs development discussions.
  2020-11-15 20:12                       ` Feature branches review please Juri Linkov
  0 siblings, 2 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-05 22:48 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

* Gregory Heytings <ghe@sdf.org> [2020-11-06 01:25]:
> 
> > 
> > I expect to be able to move in vertical line, not only type letters.
> > Feeling is rigid, I cannot move up and down with familiar keys likes C-n
> > or C-p like I can do in ivy-mode or in helm
> > 
> 
> With icomplete-mode, C-h m tells you that:
> 
> C-, is icomplete-backward-completions
> C-. is icomplete-forward-completions

Sorry for omission.

I am not used to those keys. When you are in M-x shell or in terminal,
or in bash, or in eshell keys are C-p and C-n, those keys are
everywhere. Of course I am not used to C-, and C-. even they could be
popular, I have no idea. 

> (define-key icomplete-minibuffer-map (kbd "C-n") 'icomplete-forward-completions)
> (define-key icomplete-minibuffer-map (kbd "C-p")
> 'icomplete-backward-completions)

Of course I can.

But I need not do it in ivy- helm-, and is surprise for ido- and
icomplete- to follow different key bindings. I am giving you review,
it is not that I will use icomplete. I am giving you impression upon
which you may think and maybe act, ideas for considerations.

> I looked at your video, most of the time I do not understand what you try to
> do.  Of course nothing works as you expect it to work, out of the box,
> without reading any documentation.

I have been demonstrating differences, maybe it is too fast. I have
tried moving up and down and narrowing the search, showing actions and
possibilities. Comparing icomplete to ido.

> And yes, ivy and helm have more features, so if you prefer ivy or helm, just
> use ivy or helm.

That I know already. I am looking for preferrably built-in system that
will have narrowing vertical incremental search, like built-in ivy or
helm. Something that ido or icomplete could become. Until then I keep
ivy as most simplest solution as I prefer package from GNU ELPA.

> > 4. icomplete-mode reinvents the wheel and is already in Emacs.
> 
> No, icomplete-mode does not reinvent the wheel, it came first, then came
> ido-mode, then ivy and helm.

OK it came first, then ido-mode became better, it had to be
merged. Now we have ido-mode that works and icomplete coming that does
not work but does anything what ido-mode does. Sorry I get confused
there.

What I need is basically dmenu for Emacs. Simple and general approach
for narrowing incremental search. That opens up plethora of
opportunities which I am already using. But I could make packages for
Emacs. Dmenu: https://tools.suckless.org/dmenu/

- database backed accounting becomes easy to do

- multi-companies issuing many invoices for variety of goods or
  articles

- supermarket inventory

- managing unlimited mailing lists

- accurate statistics provisioning with graphs for organizations

- translations

- template expansion for website revision systems

- website revision system

- handling tasks

- handling SMS-es, emails, locations on file system

- human resource management

- relations between people

- contact management

- sales flow

You may see how dmenu which is separate program works under X Window
system to launch files:

1.8M demo of dmenu program:
https://gnu.support/images/2020/11/2020-11-05/2020-11-06-01:38:29.ogv

I could as well use dmenu from within Emacs, that would be useful but
it would be mixture of various interfaces. It can complete any kind of
lists. 

System should be by KISS principle. Even ivy and helm are way too
complicated. Helm has too many options on display and is not user
friendly. 



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

* Re: Feature branches review please
  2020-11-05 21:55                   ` Adam Porter
  2020-11-05 22:18                     ` hyperscope Jean Louis
@ 2020-11-06  5:50                     ` Jean Louis
  1 sibling, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06  5:50 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

* Adam Porter <adam@alphapapa.net> [2020-11-06 00:56]:
> Jean Louis <bugs@gnu.support> writes:
> 
> > Who can help me check out the icomplete-vertical branch that I may
> > try? I am working on application Hyperscope that is based on
> > Engelbart's work and it uses browsable tabulated-list-mode. Sometimes
> > there are many choices, the list can be really long. Index of specific
> > pages in PDF file can be thousands and thousands. Of course I have
> > implemented incremental narrowing by using Helm and I wish to switch
> > it to something built-in.q I wish to give those to GNU ELPA soon. But
> > with focus on least number of packages from outside.
> >
> > Insight with some bugs:
> > https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:14:01.ogv
> 
> That looks interesting.  It reminds me of Semantic Synchrony, an Emacs
> project which seems to not be very well known.  This video in particular
> reminds me of yours: https://www.youtube.com/watch?v=R2vX2oZmUUM  See
> also: https://github.com/synchrony/smsn

Thank you.

I was thinking it is Emacs, now I see it is Java and other stuff. I
find many good practical references there. On my side I simply use
PostgreSQL and it must be possible to use any kind of database when it
gets polished.



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

* Re: Feature branches review please
  2020-11-05 22:36                         ` Ergus
@ 2020-11-06  8:42                           ` Gregory Heytings via Emacs development discussions.
  0 siblings, 0 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-06  8:42 UTC (permalink / raw)
  To: Ergus; +Cc: emacs-devel


>> My point is that now that `(setq icomplete-separator "\n")' works (in 
>> most but not all cases), there is no need for the specific 
>> vertical-icomplete implementation anymore.  What is (or could be) 
>> needed is an implementation that is "more correct" (correct in all 
>> cases).
>
> I don't totally agree is the same than the branch.
>
> The completion like "compi{compilation" with fido mode is still there, 
> in the same line and is not intuitive; the ellipsis is not shown and the 
> {} and [] are still there and hard coded. icomplete-prospects-height is 
> not respected either because the number of candidates is still 
> calculated with the window-width and adding the candidates length which 
> actually makes no sense at all in vertical mode.
>

These are details, which AFAICS require only minor modifications to the 
existing code.



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

* Re: Feature branches review please
  2020-11-05 22:48                     ` Jean Louis
@ 2020-11-06  9:19                       ` Gregory Heytings via Emacs development discussions.
  2020-11-06 10:51                         ` Feature branches review please (ivy hello) Jean Louis
  2020-11-15 20:12                       ` Feature branches review please Juri Linkov
  1 sibling, 1 reply; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-06  9:19 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel


>
> I am looking for preferrably built-in system that will have narrowing 
> vertical incremental search, like built-in ivy or helm. Something that 
> ido or icomplete could become. Until then I keep ivy as most simplest 
> solution as I prefer package from GNU ELPA.
>

Again I'm not sure I understand what you want, but I think you should try 
(setq completion-styles (cons 'flex completion-styles)).  With that 
setting you can narrow the candidates list with any character, you do not 
need to type the first characters.

>
> You may see how dmenu which is separate program works under X Window 
> system to launch files:
>
> 1.8M demo of dmenu program: 
> https://gnu.support/images/2020/11/2020-11-05/2020-11-06-01:38:29.ogv
>

404 Not Found...



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

* Re: Feature branches review please
  2020-11-05 17:32             ` Jean Louis
  2020-11-05 18:50               ` Stefan Monnier
  2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
@ 2020-11-06 10:31               ` Alan Mackenzie
  2020-11-06 10:55                 ` Jean Louis
  2 siblings, 1 reply; 61+ messages in thread
From: Alan Mackenzie @ 2020-11-06 10:31 UTC (permalink / raw)
  To: Jean Louis; +Cc: Gregory Heytings, Manuel Uberti, emacs-devel

Hello, Jean.

On Thu, Nov 05, 2020 at 20:32:32 +0300, Jean Louis wrote:

[ .... ]

> How can I checkout that branch?

I'm not sure if anybody's answered this question yet, so here is the
answer to what I think you're asking:

    $ git branch --list --all

should show you all the branches available at savannah.  There will be
lots of entries like

    remotes/origin/feature/icomplete-vertical

in the resulting output.

So all you now need to do is

    $ git checkout feature/icomplete-vertical

, which should fetch the branch from savannah for you and make it
current.

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Feature branches review please (ivy hello)
  2020-11-06  9:19                       ` Gregory Heytings via Emacs development discussions.
@ 2020-11-06 10:51                         ` Jean Louis
  2020-11-06 11:17                           ` Oleh Krehel
  2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
  0 siblings, 2 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06 10:51 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Oleh Krehel, emacs-devel

* Gregory Heytings <ghe@sdf.org> [2020-11-06 12:19]:
> > I am looking for preferrably built-in system that will have narrowing
> > vertical incremental search, like built-in ivy or helm. Something that
> > ido or icomplete could become. Until then I keep ivy as most simplest
> > solution as I prefer package from GNU ELPA.

> Again I'm not sure I understand what you want, but I think you should try
> (setq completion-styles (cons 'flex completion-styles)).  With that setting
> you can narrow the candidates list with any character, you do not need to
> type the first characters.

Sounds like you do not know ivy or helm? Try using helm functions, you
may understand what is "narrowing incremental search". I may express
myself badly so I may need help to express me very nice.

> > You may see how dmenu which is separate program works under X Window
> > system to launch files:
> > 
> > 1.8M demo of dmenu program:
> > https://gnu.support/images/2020/11/2020-11-05/2020-11-06-01:38:29.ogv

Now the first demo works, click above to see. Click here below to see
the comparison between completion frameworks, others but icomplete (as
it is not complete yet).

https://gnu.support/images/2020/11/2020-11-06/2020-11-06-13:22:39.ogv

Here is demonstration of completions with helm, ivy, ido, and dmenu
(outside command): https://tools.suckless.org/dmenu/

1. Helm mode, can move up and down freely, have actions and multi
   selection possibility with highlighting. It can select by using
   reverse words. It is outside package with many contributors now
   hard to enter main Emacs.

2. Ivy mode is good candidate to enter main Emacs as it is on GNU ELPA
   already and author is willing. IT LACKS reverse word search. It has
   multiple action capability, highlighting and looks saner than
   Helm. This is my current choice.

3. dmenu is external program with beautiful user interface. User can
   move up and down and may use reverse words to come to selection.

4. ido-mode is built-in, I do not know how to get selection by using
   reverse order of words. For now I did not find if it has multiple
   choices option.

P.S. I am including author of Ivy Oleh Krehel with hope and proposal
to improve ivy with reverse order of words selections and hopefully to
include it in GNU Emacs.

You may test features to understand it by evaluating one by one here
below.

;; This is what Emacs needs as a built-in function what I name for now
;; "dynamic narrowing incremental search"

;; It would be very useful to have built-in Ivy or Ivy-like completion:
;;
;; 0. Function (YOU-NAME-THE-MODE-completing-read PROMPT COLLECTION &OPTIONAL ...)
;;    and possibility to automatically replace the built-in function named
;;    `completing-read' when `YOU-NAME-THE-MODE-mode' is turned on
;;
;; 1. It should get selection by using words in reverse order, for
;;    example to select "AMERICAN SAMOA" when one writes "SAMOA
;;    AMERICAN"
;;
;; 2. Highlighting like in Ivy or Helm or Dmenu
;;
;; 3. Capability to choose other actions, not only the default action,
;;    like M-o in Ivy or TAB in Helm.
;;
;; 4. Capability to choose multiple items, like marking of the item
;;    with C-c SPC in Helm and conducting actions on multiple items

(setq collection '("2 ÅLAND ISLANDS" "30 BOUVET ISLAND" "41 CAYMAN ISLANDS" "46 CHRISTMAS ISLAND" "47 COCOS (KEELING) ISLANDS" "52 COOK ISLANDS" "70 FALKLAND ISLANDS (MALVINAS)" "71 FAROE ISLANDS" "94 HEARD ISLAND AND MCDONALD ISLANDS" "134 MARSHALL ISLANDS" "160 NORFOLK ISLAND" "161 NORTHERN MARIANA ISLANDS"))

;; Normal built-in Emacs completion for: ISLAND CAYMAN
(helm-mode 1)
(completing-read "Country: " collection)

;; ivy completion from GNU ELPA: for ISLAND CAYMAN
(ivy-completing-read "Country: " collection)

;; ido completion
(ido-completing-read "Country: " collection)

;; dmenu is a dynamic menu for X, originally designed for dwm. It
;; manages large numbers of user-defined menu items efficiently
;; if somebody has better function to input let me know
(defun dmenu-completing-read (prompt collection)
  ;; &optional predicate require-match initial-input history def inherit-input-method)
  "Uses external `dmenu' command for Emacs completions."
  (let* ((collection (concat (string-join collection "\n") "\n"))
	 (file (string-to-file-force collection "/dev/shm/collection"))
	 (dmenu "dmenu"))
    (with-temp-buffer
      (call-process dmenu file (current-buffer) nil "-fn" "DejaVu:pixelsize=30" "-l" "10" "-i" "-b" "-p" prompt "-nb" "dark goldenrod" "-nb" "black")
      (string-trim (buffer-string)))))

(dmenu-completing-read "Country: " collection)
(dmenu-completing-read "Recent files: " (recentf-elements 10))

;; HELM completion, good example how it should look like in Emacs with
;; built-in function. There is some bug that says `eval-last-sexp'
;; which I did not put choose.

(helm-mode 1)
(completing-read "Country: " collection)

Only Helm mode and Dmenu show that reverse order of words can be
selected. Ivy need to improve.

Jean



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

* Re: Feature branches review please
  2020-11-06 10:31               ` Alan Mackenzie
@ 2020-11-06 10:55                 ` Jean Louis
  0 siblings, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06 10:55 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: emacs-devel

* Alan Mackenzie <acm@muc.de> [2020-11-06 13:32]:
> I'm not sure if anybody's answered this question yet, so here is the
> answer to what I think you're asking:
> 
>     $ git branch --list --all
> 
> should show you all the branches available at savannah.  There will be
> lots of entries like
> 
>     remotes/origin/feature/icomplete-vertical

Thank you. I tried git branch --list and did not know for --all and
now I can see it. That will be great.




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

* Re: Feature branches review please (ivy hello)
  2020-11-06 10:51                         ` Feature branches review please (ivy hello) Jean Louis
@ 2020-11-06 11:17                           ` Oleh Krehel
  2020-11-06 11:42                             ` Jean Louis
  2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 61+ messages in thread
From: Oleh Krehel @ 2020-11-06 11:17 UTC (permalink / raw)
  To: Jean Louis; +Cc: Gregory Heytings, Oleh Krehel, emacs-devel

Hi Jean Louis,

> P.S. I am including author of Ivy Oleh Krehel with hope and proposal
> to improve ivy with reverse order of words selections and hopefully to
> include it in GNU Emacs.

Ivy already has the option of reverse order matching:

(setq ivy-re-builders-alist
      '((t . ivy--regex-ignore-order)))

It's not on by default, because the default setting, in my opinion,
results in a faster match if you know what you're looking for.

kind regards,
Oleh



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 11:17                           ` Oleh Krehel
@ 2020-11-06 11:42                             ` Jean Louis
  2020-11-06 11:49                               ` Basil L. Contovounesios
                                                 ` (2 more replies)
  0 siblings, 3 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06 11:42 UTC (permalink / raw)
  To: Oleh Krehel; +Cc: emacs-devel

* Oleh Krehel <ohwoeowho@gmail.com> [2020-11-06 14:17]:
> Hi Jean Louis,
> 
> > P.S. I am including author of Ivy Oleh Krehel with hope and proposal
> > to improve ivy with reverse order of words selections and hopefully to
> > include it in GNU Emacs.
> 
> Ivy already has the option of reverse order matching:
> 
> (setq ivy-re-builders-alist
>       '((t . ivy--regex-ignore-order)))
> 
> It's not on by default, because the default setting, in my opinion,
> results in a faster match if you know what you're looking for.

I hope that it did not touch you. That is great that such function
exist. I did search with ivy with "ivy" and "match" as I was thinkin
it will be somewhere there.

Ivy is great, it is good replacement for Helm, as Helm is larger
package and I need it simpler. Especially I like cleaner user
interface, you know how Helm has minibuffer full of various
explanations for key bindings, but I do not find it helpful rather
confusing for end users.

That is great package and I am glad it is in GNU ELPA and this is what
I needed.

I have seen previous discussion about it entering main Emacs.

Question: Why not?





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

* Re: Feature branches review please (ivy hello)
  2020-11-06 11:42                             ` Jean Louis
@ 2020-11-06 11:49                               ` Basil L. Contovounesios
  2020-11-06 12:01                                 ` Jean Louis
  2020-11-06 11:57                               ` Could ivy minibuffer stay where it is? Jean Louis
  2020-11-06 13:56                               ` Feature branches review please (ivy hello) Stefan Monnier
  2 siblings, 1 reply; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-06 11:49 UTC (permalink / raw)
  To: Jean Louis; +Cc: Oleh Krehel, emacs-devel

Jean Louis <bugs@gnu.support> writes:

> * Oleh Krehel <ohwoeowho@gmail.com> [2020-11-06 14:17]:
>> Hi Jean Louis,
>> 
>> > P.S. I am including author of Ivy Oleh Krehel with hope and proposal
>> > to improve ivy with reverse order of words selections and hopefully to
>> > include it in GNU Emacs.
>> 
>> Ivy already has the option of reverse order matching:
>> 
>> (setq ivy-re-builders-alist
>>       '((t . ivy--regex-ignore-order)))
>> 
>> It's not on by default, because the default setting, in my opinion,
>> results in a faster match if you know what you're looking for.
>
> I hope that it did not touch you. That is great that such function
> exist. I did search with ivy with "ivy" and "match" as I was thinkin
> it will be somewhere there.

The way Ivy performs matching is relatively customisable;
see (info "(ivy) Completion Styles").  Note that this is a separate
customisation mechanism to that of the built-in completion-styles.

> That is great package and I am glad it is in GNU ELPA and this is what
> I needed.
>
> I have seen previous discussion about it entering main Emacs.
>
> Question: Why not?

I already referred you to the correct thread for discussing that in
https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00172.html.

-- 
Basil



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

* Could ivy minibuffer stay where it is?
  2020-11-06 11:42                             ` Jean Louis
  2020-11-06 11:49                               ` Basil L. Contovounesios
@ 2020-11-06 11:57                               ` Jean Louis
  2020-11-06 15:20                                 ` Basil L. Contovounesios
  2020-11-06 13:56                               ` Feature branches review please (ivy hello) Stefan Monnier
  2 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-06 11:57 UTC (permalink / raw)
  To: Oleh Krehel; +Cc: emacs-devel

Oleh, is there a setting for Ivy that minibuffer stays where it is?

You may see the difference between:

counsel-M-x

and

helm-M-x as this one creates 2 buffers, one for selection while
minibuffer stays where it is. This is my preferred way of work. As
user is typing and should not move his eyes or focus from familiar
place in this case minibuffer.

Could you consider adding such option that prompt remains in the
minibuffer while selection is above minibuffer?



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 11:49                               ` Basil L. Contovounesios
@ 2020-11-06 12:01                                 ` Jean Louis
  2020-11-06 21:12                                   ` Basil L. Contovounesios
  0 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-06 12:01 UTC (permalink / raw)
  To: Basil L. Contovounesios; +Cc: Oleh Krehel, emacs-devel

* Basil L. Contovounesios <contovob@tcd.ie> [2020-11-06 14:49]:
> > I hope that it did not touch you. That is great that such function
> > exist. I did search with ivy with "ivy" and "match" as I was thinkin
> > it will be somewhere there.
> 
> The way Ivy performs matching is relatively customisable;
> see (info "(ivy) Completion Styles").  Note that this is a separate
> customisation mechanism to that of the built-in completion-styles.

I did not even see that info file exists, thank you. Now reading.

> > That is great package and I am glad it is in GNU ELPA and this is what
> > I needed.
> >
> > I have seen previous discussion about it entering main Emacs.
> >
> > Question: Why not?
> 
> I already referred you to the correct thread for discussing that in
> https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00172.html.

Do you refer to this issue:
https://github.com/abo-abo/swiper/issues/1597

Would that issue prevent ivy to to enter main Emacs?



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 10:51                         ` Feature branches review please (ivy hello) Jean Louis
  2020-11-06 11:17                           ` Oleh Krehel
@ 2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
  2020-11-06 14:02                             ` Stefan Monnier
  2020-11-06 19:23                             ` Jean Louis
  1 sibling, 2 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-06 12:07 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel


>> You may see how dmenu which is separate program works under X Window 
>> system to launch files:
>>
>> 1.8M demo of dmenu program: 
>> https://gnu.support/images/2020/11/2020-11-05/2020-11-06-01:38:29.ogv

I looked at this, I honestly don't see how this is different from 
icomplete/ido.  AFAICS you select a program name by typing its name.

>
> ;; 1. It should get selection by using words in reverse order, for
> ;;    example to select "AMERICAN SAMOA" when one writes "SAMOA
> ;;    AMERICAN"
>

Again, please try (setq completion-styles (cons 'flex completion-styles)). 
With this "foo bar" matches both "foo bar" and "bar foo" (and also "far 
boo", "boo far", ...).

>
> ;; 2. Highlighting like in Ivy or Helm or Dmenu
>

The default settings for icomplete/ido have some "highlighting", but 
probably not the one you want.  For example the current match is in bold.

>
> ;; 3. Capability to choose other actions, not only the default action,
> ;;    like M-o in Ivy or TAB in Helm.
> ;;
> ;; 4. Capability to choose multiple items, like marking of the item
> ;;    with C-c SPC in Helm and conducting actions on multiple items
>

These two features are not part of icomplete/ido, indeed.  If you need 
them, use ivy or helm.  Or wait until someone finds the time and energy to 
implement them for icomplete/ido.  Or find the time and energy to 
implement them for icomplete/ido.



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 11:42                             ` Jean Louis
  2020-11-06 11:49                               ` Basil L. Contovounesios
  2020-11-06 11:57                               ` Could ivy minibuffer stay where it is? Jean Louis
@ 2020-11-06 13:56                               ` Stefan Monnier
  2020-11-06 14:10                                 ` Eli Zaretskii
  2020-11-06 15:24                                 ` Jean Louis
  2 siblings, 2 replies; 61+ messages in thread
From: Stefan Monnier @ 2020-11-06 13:56 UTC (permalink / raw)
  To: Jean Louis; +Cc: Oleh Krehel, emacs-devel

> I have seen previous discussion about it entering main Emacs.
> Question: Why not?

FWIW, here's my take on it: a package should be included in Emacs
if it's activated by default or if it's a library that's required by
many other packages.

To help relieve the pain that such a "minimalist" view implies,
I consider that some GNU ELPA packages (the most popular/impactful ones)
should be bundled into Emacs's tarball, starting with the
`gnu-elpa` package (https://elpa.gnu.org/packages/gnu-elpa.html).


        Stefan




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

* Re: Feature branches review please (ivy hello)
  2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
@ 2020-11-06 14:02                             ` Stefan Monnier
  2020-11-06 14:41                               ` Gregory Heytings via Emacs development discussions.
  2020-11-06 19:23                             ` Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Stefan Monnier @ 2020-11-06 14:02 UTC (permalink / raw)
  To: Gregory Heytings via Emacs development discussions.
  Cc: Gregory Heytings, Jean Louis

> Again, please try (setq completion-styles (cons 'flex
>  completion-styles)). With this "foo bar" matches both "foo bar" and "bar
>  foo" (and also "far boo", "boo far", ...).

Does it?

>> ;; 2. Highlighting like in Ivy or Helm or Dmenu

BTW, could people who argue for particular feature take the trouble of
actually describing the feature instead of saying "like Foo"?


        Stefan




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

* Re: Feature branches review please (ivy hello)
  2020-11-06 13:56                               ` Feature branches review please (ivy hello) Stefan Monnier
@ 2020-11-06 14:10                                 ` Eli Zaretskii
  2020-11-06 14:55                                   ` Stefan Monnier
  2020-11-06 15:24                                 ` Jean Louis
  1 sibling, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2020-11-06 14:10 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: ohwoeowho, bugs, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Fri, 06 Nov 2020 08:56:45 -0500
> Cc: Oleh Krehel <ohwoeowho@gmail.com>, emacs-devel@gnu.org
> 
> > I have seen previous discussion about it entering main Emacs.
> > Question: Why not?
> 
> FWIW, here's my take on it: a package should be included in Emacs
> if it's activated by default or if it's a library that's required by
> many other packages.

We didn't make such a decision, AFAIK, and as a matter of fact, a
large part of what comes today with Emacs doesn't pass this test.

A prerequisite for making such a decision would be to find a way of
bundling ELPA packages into an Emacs tarball when preparing a
release.  We haven't yet found the way of doing that, although some
discussions were held about what would that entail.

Personally, I think promoting the above concept before the decision
was made is something to avoid, because it sends the wrong message.



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 14:02                             ` Stefan Monnier
@ 2020-11-06 14:41                               ` Gregory Heytings via Emacs development discussions.
  0 siblings, 0 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-06 14:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


>> Again, please try (setq completion-styles (cons 'flex 
>> completion-styles)). With this "foo bar" matches both "foo bar" and 
>> "bar foo" (and also "far boo", "boo far", ...).
>
> Does it?
>

Hmmm, no, you're right, it doesn't.  I don't use that setting, I tried it 
briefly and wrongly concluded that it worked that way.  What would be 
needed is a "superflex" completion-style where characters can be given in 
any order ;-)



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 14:10                                 ` Eli Zaretskii
@ 2020-11-06 14:55                                   ` Stefan Monnier
  0 siblings, 0 replies; 61+ messages in thread
From: Stefan Monnier @ 2020-11-06 14:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ohwoeowho, bugs, emacs-devel

>> > I have seen previous discussion about it entering main Emacs.
>> > Question: Why not?
>> FWIW, here's my take on it: a package should be included in Emacs
>> if it's activated by default or if it's a library that's required by
>> many other packages.
> We didn't make such a decision, AFAIK,

Indeed, I only stated my opinion.

> and as a matter of fact, a large part of what comes today with Emacs
> doesn't pass this test.

Yup.  And moving packages out of Emacs is extra work with very
little payback.  There's theory and then there's practice ;-)

> A prerequisite for making such a decision would be to find a way of
> bundling ELPA packages into an Emacs tarball when preparing a
> release.  We haven't yet found the way of doing that, although some
> discussions were held about what would that entail.

FWIW, there's an existing patch which does that.  It's more a question
of making the decision and then managing the consequences.

> Personally, I think promoting the above concept before the decision
> was made is something to avoid, because it sends the wrong message.

What I wrote above is not any kind of decision.  It's "my take on it".
And that's been my take on it for many years now, and it guides the way
I argue for or against inclusion of packages in Emacs and in GNU ELPA.


        Stefan




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

* Re: Could ivy minibuffer stay where it is?
  2020-11-06 11:57                               ` Could ivy minibuffer stay where it is? Jean Louis
@ 2020-11-06 15:20                                 ` Basil L. Contovounesios
  2020-11-06 15:36                                   ` Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-06 15:20 UTC (permalink / raw)
  To: Jean Louis; +Cc: Oleh Krehel, emacs-devel

Jean Louis <bugs@gnu.support> writes:

> Oleh, is there a setting for Ivy that minibuffer stays where it is?
>
> You may see the difference between:
>
> counsel-M-x
>
> and
>
> helm-M-x as this one creates 2 buffers, one for selection while
> minibuffer stays where it is. This is my preferred way of work. As
> user is typing and should not move his eyes or focus from familiar
> place in this case minibuffer.
>
> Could you consider adding such option that prompt remains in the
> minibuffer while selection is above minibuffer?

Ivy was explicitly designed with the minibuffer in mind, just like
built-in minibuffer completion.  That said, it's possible to customise
where completions appear.  For example, in-buffer completion is
displayed in an overlay at point, not in the minibuffer.
See e.g. the following for more information:

- https://github.com/abo-abo/swiper/wiki/ivy-display-function
- ivy-display-functions-alist
- ivy-display-functions-props
- https://github.com/tumashu/ivy-posframe

-- 
Basil



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 13:56                               ` Feature branches review please (ivy hello) Stefan Monnier
  2020-11-06 14:10                                 ` Eli Zaretskii
@ 2020-11-06 15:24                                 ` Jean Louis
  1 sibling, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06 15:24 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Oleh Krehel, emacs-devel

* Stefan Monnier <monnier@iro.umontreal.ca> [2020-11-06 16:57]:
> > I have seen previous discussion about it entering main Emacs.
> > Question: Why not?
> 
> FWIW, here's my take on it: a package should be included in Emacs
> if it's activated by default or if it's a library that's required by
> many other packages.

From Wikipedia:
https://en.wikipedia.org/wiki/Incremental_search

The first documented use of incremental search was in EMACS on ITS in
the late 1970s.[1] This was one of the many essential Emacs features
Richard Stallman included in his reimplementation, GNU Emacs. Other
noteworthy programs containing this functionality in the 1980s include
bash and Canon Cat.[2] These early implementations offered single line
feedback, not lists of suggestions.

Emacs has the built-in `ido-mode' which is definitely useful compared
to the built-in completion yet is not 

But not as nearly useful as helm, which practically or legally or
willingly cannot be imported into GNU ELPA or into Emacs.

Ivy comes as useful compromise.






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

* Re: Could ivy minibuffer stay where it is?
  2020-11-06 15:20                                 ` Basil L. Contovounesios
@ 2020-11-06 15:36                                   ` Jean Louis
  2020-11-06 21:17                                     ` Basil L. Contovounesios
  0 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-06 15:36 UTC (permalink / raw)
  To: Basil L. Contovounesios; +Cc: Oleh Krehel, emacs-devel

* Basil L. Contovounesios <contovob@tcd.ie> [2020-11-06 18:21]:
> Jean Louis <bugs@gnu.support> writes:
> 
> > Oleh, is there a setting for Ivy that minibuffer stays where it is?
> >
> > You may see the difference between:
> >
> > counsel-M-x
> >
> > and
> >
> > helm-M-x as this one creates 2 buffers, one for selection while
> > minibuffer stays where it is. This is my preferred way of work. As
> > user is typing and should not move his eyes or focus from familiar
> > place in this case minibuffer.
> >
> > Could you consider adding such option that prompt remains in the
> > minibuffer while selection is above minibuffer?
> 
> Ivy was explicitly designed with the minibuffer in mind, just like
> built-in minibuffer completion.  That said, it's possible to customise
> where completions appear.  For example, in-buffer completion is
> displayed in an overlay at point, not in the minibuffer.
> See e.g. the following for more information:
> 
> - https://github.com/abo-abo/swiper/wiki/ivy-display-function
> - ivy-display-functions-alist
> - ivy-display-functions-props
> - https://github.com/tumashu/ivy-posframe

That is it! Definitely good solution.

Can that function `ivy-display-function-window' be included in ivy on
GNU ELPA?

This is to build applications based on GNU ELPA package, to minimize
any outside dependencies.



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

* RE: Feature branches review please (ivy hello)
@ 2020-11-06 16:30 Drew Adams
  2020-11-06 19:05 ` Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Drew Adams @ 2020-11-06 16:30 UTC (permalink / raw)
  To: Emacs-Devel List

[Forwarding to the list, as it got dropped from
Reply All.]

> >> Again, please try (setq completion-styles (cons 'flex
> >> completion-styles)). With this "foo bar" matches both "foo bar" and
> >> "bar foo" (and also "far boo", "boo far", ...).
> >
> > Does it?
> 
> Hmmm, no, you're right, it doesn't.  I don't use that setting, I tried it
> briefly and wrongly concluded that it worked that way.  What would be
> needed is a "superflex" completion-style where characters can be given in
> any order ;-)

tl;dr: Matching without respect to order in
the target involves multiple separate matches.
___

What's usually called "flex" matching (Icicles
calls it "scatter") just matches bits of the
pattern you provide _in order_, one after the
other.  The matches are scattered throughout
the target, but they are _in order_ there.

To match multiple patterns without regard to
order in the target, you need to match the
patterns separately, each against the original
target or each against the result of previous
matching.

Icicles or library orderless.el provides such
behavior.

With Icicles, you can match a pattern (regexp,
fuzzy, flex, substring, whatever), and then you
can match another pattern ... etc.  Because the
component matches are separate the resulting
overall matches have those component matches in
any order.



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

* Re: hyperscope
  2020-11-05 22:18                     ` hyperscope Jean Louis
@ 2020-11-06 18:18                       ` Eduardo Ochs
  2020-11-06 19:18                         ` hyperscope Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Eduardo Ochs @ 2020-11-06 18:18 UTC (permalink / raw)
  To: Jean Louis; +Cc: Adam Porter, Emacs developers

On Fri, 6 Nov 2020 at 06:10, Jean Louis <bugs@gnu.support> wrote:
>
> * Adam Porter <adam@alphapapa.net> [2020-11-06 00:56]:
> > Jean Louis <bugs@gnu.support> writes:
> >
> > > Who can help me check out the icomplete-vertical branch that I may
> > > try? I am working on application Hyperscope that is based on
> > > Engelbart's work and it uses browsable tabulated-list-mode. Sometimes
> > > there are many choices, the list can be really long. Index of specific
> > > pages in PDF file can be thousands and thousands. Of course I have
> > > implemented incremental narrowing by using Helm and I wish to switch
> > > it to something built-in.q I wish to give those to GNU ELPA soon. But
> > > with focus on least number of packages from outside.
> > >
> > > Insight with some bugs:
> > > https://gnu.support/images/2020/11/2020-11-05/2020-11-05-22:14:01.ogv
> >
> > That looks interesting.  It reminds me of Semantic Synchrony, an Emacs
> > project which seems to not be very well known.  This video in particular
> > reminds me of yours: https://www.youtube.com/watch?v=R2vX2oZmUUM  See
> > also: https://github.com/synchrony/smsn
>
> Ineed it looks very similar by concept. I will study that. My system
> was meant primarily for me so that I can quickly pin point what I need
> in the index and jump to specific reference. It is like augmented
> bookmark system. Because it is database, once link type is defined
> there is no limit to it.
>
> Hyperscope is meant to:
>
> - dwell in eww buffer, press w and later just insert hyperlink with
>   good description
>
> - dwell in any browser, obtain reference and quickly enter into
>   database
>
> - obtain reference from online video or specific time when to play
>   video, and quickly enter database, or specific line in specific
>   file, to jump quickly there, or PDF specific page or specific search
>   term. Not all readers provide support for that.
>
> - to obtain specific mail reference and jump to that specific mail
>
> - use various indexes to enter into database, to quickly jump to very
>   specific places
>
> - to represent the database by various means, converting to Org is
>   easy, but it could as well be dynamically published on WWW, Gopher,
>   Gemini
>
> - to allow multi user knowledge information editing or revisions (no
>   idea how to make revisions yet), remotely
>
> - to allow connections to other databases, meaning that only database
>   is running on server and with permissions some people can view it
>   and some people can edit it.
>
> - to provide feature for any kind of hyperlinks
>
> - raise collective IQ
>
> For now I have these types of links:
>
>  Web
>  MPV play video at exact time
>  Local File
>  YouTube Video at exact time
>  YouTube Video
>  Dired Directory
>  Launch Program
>  Media
>  Info Node
>  PDF
>  HyperScope ID
>  Emacs Lisp
>  PDF Query
>  Org Heading
>  Org
>  PDF by Page Nr.
>  Set
>  DJVU
>  Note
>  Video

Hi Jean Louis,

do you have examples of the syntax of these links and of what we need
to make them work? I am especially interested in "MPV play video at
exact time", "Launch Program", "Media", "PDF by Page Nr." and "Set"...

I am asking because one of the topics of my talk at the next EmacsConf
(in a few weeks!) is how eev implements links to all these things,
and I want to compare eev's approach with other packages. See:

  http://angg.twu.net/eev-intros/find-pdf-like-intro.html
  http://angg.twu.net/eev-intros/find-audiovideo-intro.html

I know org-player and org-pdftools, but I found them hard to set up.

Thanks in advance, I hope =),

  Eduardo Ochs
  http://angg.twu.net/emacsconf2019.html
  http://angg.twu.net/emacsconf2020.html



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 16:30 Feature branches review please (ivy hello) Drew Adams
@ 2020-11-06 19:05 ` Jean Louis
  2020-11-06 19:27   ` Drew Adams
  0 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-06 19:05 UTC (permalink / raw)
  To: Drew Adams; +Cc: Emacs-Devel List

* Drew Adams <drew.adams@oracle.com> [2020-11-06 19:32]:
> To match multiple patterns without regard to
> order in the target, you need to match the
> patterns separately, each against the original
> target or each against the result of previous
> matching.
> 
> Icicles or library orderless.el provides such
> behavior.

https://www.emacswiki.org/emacs/DrewsElispLibraries

Incremental search on that page does not give me: orderless.el - where
is it?

Jean



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

* Re: hyperscope
  2020-11-06 18:18                       ` hyperscope Eduardo Ochs
@ 2020-11-06 19:18                         ` Jean Louis
  0 siblings, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-06 19:18 UTC (permalink / raw)
  To: Eduardo Ochs; +Cc: Adam Porter, Emacs developers

* Eduardo Ochs <eduardoochs@gmail.com> [2020-11-06 21:19]:
> do you have examples of the syntax of these links and of what we need
> to make them work? I am especially interested in "MPV play video at
> exact time", "Launch Program", "Media", "PDF by Page Nr." and
> "Set"...

I do not have universal approach similar like URL, it is database
approach such as (hyperscope 123) where ID 123 is defined to open
specific video at specific time. Links are shown to user on screen as
such and users define them but they are not accessible without
database.

> I am asking because one of the topics of my talk at the next EmacsConf
> (in a few weeks!) is how eev implements links to all these things,
> and I want to compare eev's approach with other packages. See:
> 
>   http://angg.twu.net/eev-intros/find-pdf-like-intro.html
>   http://angg.twu.net/eev-intros/find-audiovideo-intro.html

I was researching eev before weeks and it has alignment with some
principles of collective IQ creation, so I may as well include eev
mode in my hyperscope if such exist. 

Here are some functions handling those links, you may see that mpv
opens up by using id

(defun hlink-mpv-play-video-at-exact-time (id)
  (let* ((link (hlinks-link id))
	 (arguments (hlinks-arguments id))
	 (command (format "mpv --start=%s '%s'" arguments link)))
    (async-shell-command command)
    (hlink-description-show id)))

(defun hlink-show-pdf-by-page (link argument)
  "Opens the PDF page by number"
  (funcall (intern hyperscope-pdf-function) link argument))

hyperscope-pdf-function:

(defun hyperscope-evince (file &optional page query)
  "Opens PDF with evince document viewer"
  (let* ((command "evince")
	 (command (if page (format "%s --page-index=%s" command page) command))
	 (command (if query (format "%s -l '%s'" command query) command))
	 (command (format "%s '%s'" command file)))
    (async-shell-command command)))

> I know org-player and org-pdftools, but I found them hard to set up.

It is better you make simple eev based functions to handle such links.

Maybe this function below can open PDF inside of Emacs at specific
page number for maybe specific query in PDF/DJVU/DVI or specific
match. But it could be as well not functional. I have to test it to
confirm, but you could reuse for evv to view PDF/DJVU/DVI finely
grained inside of Emacs.

(defun doc-view-open-file (file &optional page-number query match)
  "Opens PDF file in GNU Emacs at specific page number or at
specific match"
  (let* ((allowed-extensions '("pdf" "djvu" "dvi"))
	 (file-ext (file-name-extension file))
	 (match (if match match 0)))
    (when (and (file-exists-p file)
	       (seq-contains-p allowed-extensions file-ext 'equalp))
      (setq doc-view--current-search-matches nil)
      (let ((created (create-file-buffer file))
	    (buffer (get-file-buffer file)))
	(switch-to-buffer created)
	(set-visited-file-name file t)
	(insert file)
	(doc-view-mode)
	(read-only-mode)
	(when page-number
	  (doc-view-goto-page page-number))
	(when query
	  (let ((txt (expand-file-name "doc.txt"
				       (doc-view--current-cache-dir))))
	    (if (file-readable-p txt)
		(progn
		  (setq doc-view--current-search-matches
			(doc-view-search-internal query txt))
		  (doc-view-search-next-match match)))))))))




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

* Re: Feature branches review please (ivy hello)
  2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
  2020-11-06 14:02                             ` Stefan Monnier
@ 2020-11-06 19:23                             ` Jean Louis
  2020-11-06 21:09                               ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-06 19:23 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

* Gregory Heytings <ghe@sdf.org> [2020-11-06 15:08]:
> 
> > > You may see how dmenu which is separate program works under X Window
> > > system to launch files:
> > > 
> > > 1.8M demo of dmenu program:
> > > https://gnu.support/images/2020/11/2020-11-05/2020-11-06-01:38:29.ogv
> 
> I looked at this, I honestly don't see how this is different from
> icomplete/ido.  AFAICS you select a program name by typing its name.
> 
> > 
> > ;; 1. It should get selection by using words in reverse order, for
> > ;;    example to select "AMERICAN SAMOA" when one writes "SAMOA
> > ;;    AMERICAN"
> > 
> 
> Again, please try (setq completion-styles (cons 'flex completion-styles)).
> With this "foo bar" matches both "foo bar" and "bar foo" (and also "far
> boo", "boo far", ...).

I will test that tip, thank you.

> > ;; 3. Capability to choose other actions, not only the default action,
> > ;;    like M-o in Ivy or TAB in Helm.
> > ;;
> > ;; 4. Capability to choose multiple items, like marking of the item
> > ;;    with C-c SPC in Helm and conducting actions on multiple items
> > 
> 
> These two features are not part of icomplete/ido, indeed.  If you need them,
> use ivy or helm.  Or wait until someone finds the time and energy to
> implement them for icomplete/ido.  Or find the time and energy to implement
> them for icomplete/ido.

I do use, though my priority is on reusing code which is inside of
Emacs in first place, then GNU ELPA, then anything else outside.



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

* RE: Feature branches review please (ivy hello)
  2020-11-06 19:05 ` Jean Louis
@ 2020-11-06 19:27   ` Drew Adams
  0 siblings, 0 replies; 61+ messages in thread
From: Drew Adams @ 2020-11-06 19:27 UTC (permalink / raw)
  To: Jean Louis; +Cc: Emacs-Devel List

> > Icicles or library orderless.el provides such
> > behavior.
> 
> https://urldefense.com/v3/__https://www.emacswiki.org/emacs/DrewsElispLibrari
> es__;!!GqivPVa7Brio!PeXT38xLaZ0WLPhzhQoy50PH99rQt9z2shHRkvYnymiDP96UbGsrHqcRD
> 1EpQbPv$
> 
> Incremental search on that page does not give me: orderless.el - where
> is it?

It's not one of my libraries.  I mentioned it because,
like Icicles "progressive completion", it lets you get
matches of multiple patterns without respect to order.

Googling "orderless.el" tells me it's here:

https://github.com/oantolin/orderless



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 19:23                             ` Jean Louis
@ 2020-11-06 21:09                               ` Gregory Heytings via Emacs development discussions.
  0 siblings, 0 replies; 61+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2020-11-06 21:09 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel


>> Again, please try (setq completion-styles (cons 'flex 
>> completion-styles)). With this "foo bar" matches both "foo bar" and 
>> "bar foo" (and also "far boo", "boo far", ...).
>
> I will test that tip, thank you.
>

Sorry, I erred here, flex matching (which I don't use) does not work the 
way I thought.



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

* Re: Feature branches review please (ivy hello)
  2020-11-06 12:01                                 ` Jean Louis
@ 2020-11-06 21:12                                   ` Basil L. Contovounesios
  0 siblings, 0 replies; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-06 21:12 UTC (permalink / raw)
  To: Jean Louis; +Cc: Oleh Krehel, emacs-devel

Jean Louis <bugs@gnu.support> writes:
> * Basil L. Contovounesios <contovob@tcd.ie> [2020-11-06 14:49]:
>> > That is great package and I am glad it is in GNU ELPA and this is what
>> > I needed.
>> >
>> > I have seen previous discussion about it entering main Emacs.
>> >
>> > Question: Why not?
>> 
>> I already referred you to the correct thread for discussing that in
>> https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00172.html.
>
> Do you refer to this issue:
> https://github.com/abo-abo/swiper/issues/1597

No, what I meant is that there is a different mailing thread for
discussing the inclusion of Ivy with the subject "Include ivy + counsel
in Emacs core?".

> Would that issue prevent ivy to to enter main Emacs?

Not necessarily.

-- 
Basil



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

* Re: Could ivy minibuffer stay where it is?
  2020-11-06 15:36                                   ` Jean Louis
@ 2020-11-06 21:17                                     ` Basil L. Contovounesios
  2020-11-07 12:51                                       ` Oleh Krehel
  0 siblings, 1 reply; 61+ messages in thread
From: Basil L. Contovounesios @ 2020-11-06 21:17 UTC (permalink / raw)
  To: Jean Louis; +Cc: Oleh Krehel, emacs-devel

Jean Louis <bugs@gnu.support> writes:

> * Basil L. Contovounesios <contovob@tcd.ie> [2020-11-06 18:21]:
>> Jean Louis <bugs@gnu.support> writes:
>> 
>> > Oleh, is there a setting for Ivy that minibuffer stays where it is?
>> >
>> > You may see the difference between:
>> >
>> > counsel-M-x
>> >
>> > and
>> >
>> > helm-M-x as this one creates 2 buffers, one for selection while
>> > minibuffer stays where it is. This is my preferred way of work. As
>> > user is typing and should not move his eyes or focus from familiar
>> > place in this case minibuffer.
>> >
>> > Could you consider adding such option that prompt remains in the
>> > minibuffer while selection is above minibuffer?
>> 
>> Ivy was explicitly designed with the minibuffer in mind, just like
>> built-in minibuffer completion.  That said, it's possible to customise
>> where completions appear.  For example, in-buffer completion is
>> displayed in an overlay at point, not in the minibuffer.
>> See e.g. the following for more information:
>> 
>> - https://github.com/abo-abo/swiper/wiki/ivy-display-function
>> - ivy-display-functions-alist
>> - ivy-display-functions-props
>> - https://github.com/tumashu/ivy-posframe
>
> That is it! Definitely good solution.
>
> Can that function `ivy-display-function-window' be included in ivy on
> GNU ELPA?

I don't know, that's Oleh's call.  I vaguely remember a preference for
showcasing these potential customisations in the wiki, rather than
maintaining them as part of Ivy, but I'm not sure.

-- 
Basil



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

* Re: Could ivy minibuffer stay where it is?
  2020-11-06 21:17                                     ` Basil L. Contovounesios
@ 2020-11-07 12:51                                       ` Oleh Krehel
  2020-11-07 17:23                                         ` Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Oleh Krehel @ 2020-11-07 12:51 UTC (permalink / raw)
  To: Basil L. Contovounesios; +Cc: Jean Louis, emacs-devel

>> That is it! Definitely good solution.
>>
>> Can that function `ivy-display-function-window' be included in 
>> ivy on
>> GNU ELPA?
>
> I don't know, that's Oleh's call.  I vaguely remember a 
> preference for
> showcasing these potential customisations in the wiki, rather 
> than
> maintaining them as part of Ivy, but I'm not sure.

I think `ivy-display-function-window' is not in a good enough 
state to be included as part of Ivy. My suggestion right now, if 
you want to avoid the minibuffer, is to use 
https://github.com/tumashu/ivy-posframe. It's higher quality and 
more customizable.

But if someone wants to work on `ivy-display-function-window' to 
make it usable, PRs are welcome.

kind regards,
Oleh



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

* Re: Could ivy minibuffer stay where it is?
  2020-11-07 12:51                                       ` Oleh Krehel
@ 2020-11-07 17:23                                         ` Jean Louis
  2020-11-08 11:21                                           ` Oleh Krehel
  0 siblings, 1 reply; 61+ messages in thread
From: Jean Louis @ 2020-11-07 17:23 UTC (permalink / raw)
  To: Oleh Krehel; +Cc: Basil L. Contovounesios, emacs-devel

* Oleh Krehel <ohwoeowho@gmail.com> [2020-11-07 15:52]:
> > > That is it! Definitely good solution.
> > > 
> > > Can that function `ivy-display-function-window' be included in ivy
> > > on
> > > GNU ELPA?
> > 
> > I don't know, that's Oleh's call.  I vaguely remember a preference for
> > showcasing these potential customisations in the wiki, rather than
> > maintaining them as part of Ivy, but I'm not sure.
> 
> I think `ivy-display-function-window' is not in a good enough state to be
> included as part of Ivy. My suggestion right now, if you want to avoid the
> minibuffer, is to use https://github.com/tumashu/ivy-posframe. It's higher
> quality and more customizable.

Alright, I appreciate your help.

Purpose of enhancement is not for me to find what to use, as if I want
to avoid ivy I can use helm or use X, but that is not the point. My
proposal is to enhance ivy as ivy is in GNU ELPA and I am trying that
new packages I am preparing are not dependent on libraries outside of
GNU ELPA (for now).

> But if someone wants to work on `ivy-display-function-window' to
> make it usable, PRs are welcome.

I am not familiar with that code but use it in other code.

Is there way to automatically switch for every ivy completion to
ivy-display-function-window?




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

* Re: Could ivy minibuffer stay where it is?
  2020-11-07 17:23                                         ` Jean Louis
@ 2020-11-08 11:21                                           ` Oleh Krehel
  2020-11-08 12:51                                             ` Jean Louis
  0 siblings, 1 reply; 61+ messages in thread
From: Oleh Krehel @ 2020-11-08 11:21 UTC (permalink / raw)
  To: Jean Louis; +Cc: Basil L. Contovounesios, emacs-devel


> Is there way to automatically switch for every ivy completion to
> ivy-display-function-window?

(setq ivy-display-functions-alist '((t 
. ivy-display-function-window)))



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

* Re: Could ivy minibuffer stay where it is?
  2020-11-08 11:21                                           ` Oleh Krehel
@ 2020-11-08 12:51                                             ` Jean Louis
  0 siblings, 0 replies; 61+ messages in thread
From: Jean Louis @ 2020-11-08 12:51 UTC (permalink / raw)
  To: Oleh Krehel; +Cc: Basil L. Contovounesios, emacs-devel

* Oleh Krehel <ohwoeowho@gmail.com> [2020-11-08 14:21]:
> 
> > Is there way to automatically switch for every ivy completion to
> > ivy-display-function-window?
> 
> (setq ivy-display-functions-alist '((t . ivy-display-function-window)))

Oh, how could I miss that. It was in front of my eyes. Thank you.

Do you mind giving me a tip to turn on something like hl-line-mode in
ivy. That would enhance visibility where user watches with eyes. Fnacy
highlighting ivy remains but whole line gets hl-line-mode. I have
tried with ivy-mode-hook but it stays where is cursors. That is what
is meant to do. I was wrongly thinking that double cursor is on ivy
match

Window mode has its problems I can see here. If you make something
like that then I can give you hints what is happening. Now is useless
for outside function to explain.






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

* Re: Feature branches review please
  2020-11-05 22:48                     ` Jean Louis
  2020-11-06  9:19                       ` Gregory Heytings via Emacs development discussions.
@ 2020-11-15 20:12                       ` Juri Linkov
  2020-11-15 22:32                         ` Drew Adams
  1 sibling, 1 reply; 61+ messages in thread
From: Juri Linkov @ 2020-11-15 20:12 UTC (permalink / raw)
  To: Jean Louis; +Cc: Gregory Heytings, emacs-devel

>> > I expect to be able to move in vertical line, not only type letters.
>> > Feeling is rigid, I cannot move up and down with familiar keys likes C-n
>> > or C-p like I can do in ivy-mode or in helm
>>
>> With icomplete-mode, C-h m tells you that:
>>
>> C-, is icomplete-backward-completions
>> C-. is icomplete-forward-completions
>
> I am not used to those keys. When you are in M-x shell or in terminal,
> or in bash, or in eshell keys are C-p and C-n, those keys are
> everywhere. Of course I am not used to C-, and C-. even they could be
> popular, I have no idea.

In shell, C-p and C-n move through the history, not through completions.
Here's is an excerpt from the bash man page:

  previous-history (C-p)
    Fetch the previous command from the history list, moving back in the list.

  next-history (C-n)
    Fetch the next command from the history list, moving forward in the list.

Maybe icomplete could be more DWIM, and when completions are displayed,
then use [up] and [down] keys to move through completions, otherwise
move through the history when the minibuffer contents is empty.



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

* RE: Feature branches review please
  2020-11-15 20:12                       ` Feature branches review please Juri Linkov
@ 2020-11-15 22:32                         ` Drew Adams
  0 siblings, 0 replies; 61+ messages in thread
From: Drew Adams @ 2020-11-15 22:32 UTC (permalink / raw)
  To: Juri Linkov, Jean Louis; +Cc: Gregory Heytings, emacs-devel

> In shell, C-p and C-n move through the history, not through
> completions.
> 
> Maybe icomplete could be more DWIM, and when completions are displayed,
> then use [up] and [down] keys to move through completions, otherwise
> move through the history when the minibuffer contents is empty.

C-p and C-n in the minibuffer should do what they
do normally.  The minibuffer is a text-editing
buffer, and it can have multiple lines of text.

(For minibuffer history we have M-p and M-n instead.)
___

FWIW, in Icicles the `up' and `down' arrows do cycle
among completion candidates.

And `C-up' and `C-down' cycle and act on each candidate,
in turn.  (You can apply the same command to multiple
candidates, in any order.  Cycling follows the current
sort order.)

And `C-M-up' and `C-M-down' show help on each candidate,
in turn.

And `C-wheel-up' and C-wheel-down', and same with `C-M-',
do the same kinds of cycling.

And `C-S-up' and `C-S-down' are like `C-up' and `C-down',
but they use an alternate action.  And likewise, with the
mouse wheel.





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

end of thread, other threads:[~2020-11-15 22:32 UTC | newest]

Thread overview: 61+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20201104161200.tyeo2r5jibdahukb.ref@Ergus>
2020-11-04 16:12 ` Feature branches review please Ergus
2020-11-04 23:18   ` Basil L. Contovounesios
2020-11-05  8:30   ` Gregory Heytings via Emacs development discussions.
2020-11-05 10:05     ` Jean Louis
2020-11-05 16:10       ` Gregory Heytings via Emacs development discussions.
2020-11-05 16:27         ` Manuel Uberti
2020-11-05 17:00           ` Gregory Heytings via Emacs development discussions.
2020-11-05 17:32             ` Jean Louis
2020-11-05 18:50               ` Stefan Monnier
2020-11-05 19:30                 ` Jean Louis
2020-11-05 19:52                   ` Eli Zaretskii
2020-11-05 21:55                   ` Adam Porter
2020-11-05 22:18                     ` hyperscope Jean Louis
2020-11-06 18:18                       ` hyperscope Eduardo Ochs
2020-11-06 19:18                         ` hyperscope Jean Louis
2020-11-06  5:50                     ` Feature branches review please Jean Louis
2020-11-05 20:39               ` Gregory Heytings via Emacs development discussions.
2020-11-05 21:09                 ` Ergus
2020-11-05 21:19                   ` Gregory Heytings via Emacs development discussions.
2020-11-05 21:36                     ` Jean Louis
2020-11-05 21:44                     ` Stefan Monnier
2020-11-05 22:00                       ` Gregory Heytings via Emacs development discussions.
2020-11-05 22:36                         ` Ergus
2020-11-06  8:42                           ` Gregory Heytings via Emacs development discussions.
2020-11-05 21:33                 ` Jean Louis
2020-11-05 21:46                   ` Basil L. Contovounesios
2020-11-05 22:24                   ` Gregory Heytings via Emacs development discussions.
2020-11-05 22:48                     ` Jean Louis
2020-11-06  9:19                       ` Gregory Heytings via Emacs development discussions.
2020-11-06 10:51                         ` Feature branches review please (ivy hello) Jean Louis
2020-11-06 11:17                           ` Oleh Krehel
2020-11-06 11:42                             ` Jean Louis
2020-11-06 11:49                               ` Basil L. Contovounesios
2020-11-06 12:01                                 ` Jean Louis
2020-11-06 21:12                                   ` Basil L. Contovounesios
2020-11-06 11:57                               ` Could ivy minibuffer stay where it is? Jean Louis
2020-11-06 15:20                                 ` Basil L. Contovounesios
2020-11-06 15:36                                   ` Jean Louis
2020-11-06 21:17                                     ` Basil L. Contovounesios
2020-11-07 12:51                                       ` Oleh Krehel
2020-11-07 17:23                                         ` Jean Louis
2020-11-08 11:21                                           ` Oleh Krehel
2020-11-08 12:51                                             ` Jean Louis
2020-11-06 13:56                               ` Feature branches review please (ivy hello) Stefan Monnier
2020-11-06 14:10                                 ` Eli Zaretskii
2020-11-06 14:55                                   ` Stefan Monnier
2020-11-06 15:24                                 ` Jean Louis
2020-11-06 12:07                           ` Gregory Heytings via Emacs development discussions.
2020-11-06 14:02                             ` Stefan Monnier
2020-11-06 14:41                               ` Gregory Heytings via Emacs development discussions.
2020-11-06 19:23                             ` Jean Louis
2020-11-06 21:09                               ` Gregory Heytings via Emacs development discussions.
2020-11-15 20:12                       ` Feature branches review please Juri Linkov
2020-11-15 22:32                         ` Drew Adams
2020-11-06 10:31               ` Alan Mackenzie
2020-11-06 10:55                 ` Jean Louis
2020-11-05 17:22         ` Jean Louis
2020-11-05 13:25   ` Andrii Kolomoiets
2020-11-06 16:30 Feature branches review please (ivy hello) Drew Adams
2020-11-06 19:05 ` Jean Louis
2020-11-06 19:27   ` Drew Adams

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

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).