unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Carlos Pita <carlosjosepita2@gmail.com>
To: irenezerafa <irenezerafa@protonmail.com>
Cc: Lars Ingebrigtsen <larsi@gnus.org>, 51819@debbugs.gnu.org
Subject: bug#51819: The Senselessness of Emacs Company Mode
Date: Wed, 17 Nov 2021 00:08:44 -0300	[thread overview]
Message-ID: <CAEOO5TeGQaiXkt4bRec8AVg_X4BKj1jGB=icvahwpqj1p2Lzmw@mail.gmail.com> (raw)
In-Reply-To: <3MrKAAqmjrgofaJ20S377p52aXYjeL5kbOXXzH159e3j47V1KzE3DzcNvCKZHROcBLM11jsxCtLQpuV1-DWH2O-Fl9tmIOwqEpea_TTVrQk=@protonmail.com>

> It is the mini-buffer thing.  It is not so easy to go through and make the selections though.

I agree. But you have a number of options here:

1. Use company.
2. Use corfu.
3. Use ivy completion-at-point.
4. Use a completing-read framework able to channel buffer completion
to the minibuffer. Selectrum is one, and consult allows you to do that
with any completing-read framework. See [1] and [2].

All but the first one are 100% compatible with completion-at-point.
Company adds some nifty extensions on top of that but if you use the
company-capf backend (this is automatic) it's compatible with all
completion-at-point functions.

> I am very interested in completion of words as I write documents.

For a very straightforward 80/20 solution take a look at dabbrev. That
said, there is an ispell backend for company but, sadly, no ispell
completion-at-point function. This is perhaps a downside of
extensions: even though it's easy to implement this function, effort
has been put into implementing one variant that's only compatible with
company (which AFAICS doesn't depend on any additional feature of
company). Fortunately, the author of corfu is about to publish a very
small library implementing some missing functions from which all
completion-at-point compatible implementations will benefit, see [3].
There you have combined word/spell/dabbrev completion functions that
help enter text. Functions like these may eventually find their way
into emacs.

> what is the best completion there is that is immediately available
> after installing emacs.  I recommend a completion implementation that is available
> automatically by default, but which uses a popup window as provided by either
> auto-complete or company-mode as a start.

There is nothing off-the-shelf that fulfills these requirements. In theory
there is icomplete-in-buffer but in practice the implementation is
buggy (see #51575). Given that you want on-the-fly completions,
options 1 and 2 above are the way to go. You can stick with company,
which is a good battle-tested option and nowadays works mostly through
the company-capf backend, so it channels standard completion-at-point
functions, although you can still take advantage of specific
extensions like the aforementioned company-ispell. Or you can try
corfu which is a simple frontend to completion-at-point, and set
corfu-auto in order to enable on-the-fly completions; in this case,
take into account [3]. Both solutions easily address your immediate
needs, the second one also addresses your more general and harsh
complaint here, but it's still somewhat WIP (although the code is high
quality and the minimalistic nature of the solution makes it
relatively bug free).

Best regards,
Carlos

---

[1] consult-completion-in-region in
https://github.com/minad/consult#miscellaneous.
[2] https://github.com/raxod502/selectrum/issues/42
[3] https://github.com/minad/corfu/issues/9#issuecomment-945090516





  parent reply	other threads:[~2021-11-17  3:08 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-13 22:57 bug#51819: The Senselessness of Emacs Company Mode irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-14  1:26 ` Lars Ingebrigtsen
2021-11-15  4:53   ` Richard Stallman
2021-11-16 19:12     ` irenezerafa
2021-11-15  6:51   ` Carlos Pita
2021-11-16 19:22     ` irenezerafa
2021-11-16 20:07       ` Carlos Pita
2021-11-16 20:23         ` irenezerafa
2021-11-16 21:30         ` Carlos Pita
2021-11-16 21:44           ` irenezerafa
2021-11-16 22:48             ` Carlos Pita
2021-11-16 23:24               ` irenezerafa
2021-11-17  0:15                 ` irenezerafa
2021-11-17  2:30                 ` bug#51819: [External] : " Drew Adams
2021-11-17  3:08                 ` Carlos Pita [this message]
2021-11-17  2:53 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-17 16:36   ` bug#51819: [External] : " Drew Adams
2021-11-17  3:00 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-11-17  3:12   ` Carlos Pita
2021-11-17  3:40     ` Carlos Pita
2021-11-17 16:13       ` irenezerafa
2021-11-17 16:36   ` bug#51819: [External] : " Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAEOO5TeGQaiXkt4bRec8AVg_X4BKj1jGB=icvahwpqj1p2Lzmw@mail.gmail.com' \
    --to=carlosjosepita2@gmail.com \
    --cc=51819@debbugs.gnu.org \
    --cc=irenezerafa@protonmail.com \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).