unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51819: The Senselessness of Emacs Company Mode
@ 2021-11-13 22:57 irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-11-14  1:26 ` Lars Ingebrigtsen
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-11-13 22:57 UTC (permalink / raw)
  To: 51819

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

I am installing Company Mode so I can use auto completion. Let me show you how beautiful that is using the emacs way.
For most people, they do "M-x list-packages" and search for "company". They get about 70 matches for "company-mode"
which add compatibility for other modes. And they all have to figure all this out by themselves. This is why spacemacs and
doommacs have became so popular. Nobody wants to use Gnu Emacs. It is a mothership emacs problem that Richard
Stallman should be responsible for.

company-anaconda 20200404.1859 available melpa Anaconda backend for company-mode
company-ansible 20200306.1441 available melpa A company back-end for ansible
company-arduino 20160306.1739 available melpa company-mode for Arduino
company-auctex 20200529.1835 available melpa Company-mode auto-completion for AUCTeX
company-axiom 20191027.1928 available melpa A company-mode backend for the axiom-environment system
company-bibtex 20171105.644 available melpa Company completion for bibtex keys
company-box 20211020.2007 available melpa Company front-end with icons
company-c-headers 20190825.1631 available melpa Company mode backend for C/C++ header files
company-cabal 20170917.1317 available melpa company-mode cabal backend
company-coq 20210708.2357 available melpa A collection of extensions for Proof General's Coq mode
company-ctags 20210723.1322 available melpa Fastest company-mode completion backend for ctags
company-dcd 20210307.649 available melpa Company backend for Dlang using DCD.
company-dict 20190302.5 available melpa A backend that emulates ac-source-dictionary
company-distel 20180827.1344 available melpa Erlang/distel completion backend for company-mode
company-ebdb 1.1 available gnu company-mode completion backend for EBDB in message-mode
company-emacs-eclim 20180911.1121 available melpa Eclim company backend
company-emoji 20210427.2151 available melpa company-mode backend for emoji
company-emojify 20210718.424 available melpa Company completion for Emojify
company-erlang 20170123.538 available melpa company backend based on ivy-erlang-complete
company-flow 20180225.2159 available melpa Flow backend for company-mode
company-flx 20180103.518 available melpa flx based fuzzy matching for company
company-fuzzy 20211104.1200 available melpa Fuzzy matching for `company-mode'
company-ghci 20190707.311 available melpa company backend which uses the current ghci process.
company-glsl 20210109.1403 available melpa Support glsl in company-mode
company-go 20170825.1643 available melpa company-mode backend for Go (using gocode)
company-inf-ruby 20140805.2054 available melpa company-mode completion back-end for inf-ruby
company-ipa 20210307.1838 available melpa IPA backend for company
company-irony 20190124.2346 available melpa company-mode completion back-end for irony-mode
company-irony-c-headers 20151018.909 available melpa Company mode backend for C/C++ header files with Irony
company-jedi 20200324.25 available melpa Company-mode completion back-end for Python JEDI
company-lean 20210305.1705 available melpa A company backend for lean-mode
company-ledger 20210910.250 available melpa Fuzzy auto-completion for Ledger & friends
company-lua 20171108.2306 available melpa Company backend for Lua
company-manually 20200709.913 available melpa A company backend that lets you manually build candidates
company-math 1.4 available gnu Completion backends for unicode math symbols and latex tags
company-math 20210731.2019 available melpa Completion backends for unicode math symbols and latex tags
company-maxima 20210520.2034 available melpa Maxima company integration
company-nand2tetris 20171201.1813 available melpa Company backend for nand2tetris major mode
company-native-complete 20200315.2144 available melpa Company completion using native-complete
company-nginx 20201020.2038 available melpa company-mode keywords support for nginx-mode
company-ngram 20170129.1913 available melpa N-gram based completion
company-nixos-options 20160215.857 available melpa Company Backend for nixos-options
company-org-block 20210825.2107 available melpa Org blocks company backend
company-php 20201009.1025 available melpa A company back-end for PHP.
company-phpactor 20200121.1218 available melpa company-mode backend for Phpactor
company-plisp 20200531.1927 available melpa Company mode backend for PicoLisp language
company-plsense 20180118.58 available melpa Company backend for Perl
company-pollen 20160812.1510 available melpa company-mode completion backend for pollen
company-posframe 20211103.232 available melpa Use a posframe as company candidate menu
company-prescient 20210227.600 available melpa prescient.el + Company
company-qml 20170428.1708 available melpa Company backend for QML files
company-quickhelp 20210515.2212 available melpa Popup documentation for completion candidates
company-quickhelp-terminal 20210715.1010 available melpa Terminal support for `company-quickhelp'
company-racer 20171205.310 available melpa Company integration for racer
company-reftex 20210418.1316 available melpa Company backend based on RefTeX.
company-restclient 20190426.1312 available melpa company-mode completion back-end for restclient-mode
company-rtags 20191222.920 available melpa RTags back-end for company
company-shell 20211013.1725 available melpa Company mode backend for shell functions
company-solidity 20181117.1518 available melpa Company-mode back-end for solidity-mode
company-sourcekit 20210430.2155 available melpa company-mode completion backend for SourceKit
company-stan 20210130.1325 available melpa A company-mode completion backend for stan
company-statistics 0.2.3 available gnu Sort candidates using completion history
company-statistics 20170210.1933 available melpa Sort candidates using completion history
company-suggest 20200911.1845 available melpa Company-mode back-end for search engine suggests
company-tabnine 20210310.2247 available melpa A company-mode backend for TabNine
company-terraform 20190607.1037 available melpa A company backend for terraform
company-try-hard 20200417.1603 available melpa get all completions from company backends
company-web 20180402.1155 available melpa Company version of ac-html, complete for web,html,emmet,jade,slim modes
company-wordfreq 20210201.1839 available melpa Company backend for human language texts
company-ycm 20140904.1817 available melpa company-ycm
company-ycmd 20180520.1053 available melpa company-mode backend for ycmd

[-- Attachment #2: Type: text/html, Size: 12848 bytes --]

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

* bug#51819: The Senselessness of Emacs Company Mode
  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-15  6:51   ` Carlos Pita
  2021-11-17  2:53 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-11-17  3:00 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 2 replies; 22+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-14  1:26 UTC (permalink / raw)
  To: irenezerafa; +Cc: 51819

irenezerafa <irenezerafa@protonmail.com> writes:

> I am installing Company Mode so I can use auto completion.  Let me
> show you how beautiful that is using the emacs way.  For most people,
> they do "M-x list-packages" and search for "company".  They get about
> 70 matches for "company-mode" which add compatibility for other modes.

I think most people are able to figure out that they should add the
package called "company" if they want to install Company.  (It's
conveniently listed first among the packages that are Company-related.)

So I don't see anything to do here, and I'm closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51819: The Senselessness of Emacs Company Mode
  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
  1 sibling, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2021-11-15  4:53 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51819, irenezerafa

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > I am installing Company Mode so I can use auto completion.  Let me
  > > show you how beautiful that is using the emacs way.  For most people,
  > > they do "M-x list-packages" and search for "company".  They get about
  > > 70 matches for "company-mode" which add compatibility for other modes.

  > I think most people are able to figure out that they should add the
  > package called "company" if they want to install Company.

Why do people use the term "Company Mode", if its name is simply
"Company"?  I get the impression the former is a misnomer.  Is it a
misnomer?

If it is a misnomer, do we say anything that encourages it?  We could
change what we say, so as to avoid promoting the term "Company mode".

Maybe we should write it as "Comp-any" to make the meaning clear.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)







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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-14  1:26 ` Lars Ingebrigtsen
  2021-11-15  4:53   ` Richard Stallman
@ 2021-11-15  6:51   ` Carlos Pita
  2021-11-16 19:22     ` irenezerafa
  1 sibling, 1 reply; 22+ messages in thread
From: Carlos Pita @ 2021-11-15  6:51 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51819, irenezerafa

Lars Ingebrigtsen <larsi@gnus.org> writes:

> irenezerafa <irenezerafa@protonmail.com> writes:
>
>> I am installing Company Mode so I can use auto completion.  Let me
>> show you how beautiful that is using the emacs way.  For most people,
>> they do "M-x list-packages" and search for "company".  They get about
>> 70 matches for "company-mode" which add compatibility for other modes.
>
> I think most people are able to figure out that they should add the
> package called "company" if they want to install Company.  (It's
> conveniently listed first among the packages that are Company-related.)

Moreover, there is little gain in using company-specific extensions
these days.  Most completing-read frameworks offer completion-at-point
compatibility, which inherits all the goodies from completing-read. And
if you prefer an in-place popup install corfu which shows a child frame
with zero extra config. Even company is moving more and more towards its
capf backend. Maybe some extensions still require or greatly benefit
from some company-specific protocol, but this is not the norm nowadays.

I'm using a combo of fido-mode + corfu which, if I wanted, could be
extended with consult, embark, marginalia, orderless, etc. I prefer to
keep it small, but the beauty of the new "completion stack" is that the
building blocks follow standard emacs protocols and are intercompatible
(so it's completely fine to use any of them with icomplete/fido). This
is all the configuration I need to get a "modern" completion experience:

    (setq completion-styles '(flex basic))
    (icomplete-vertical-mode +1)
    (fido-mode +1)
    (corfu-global-mode +1)

The only external dependency is the minimal, high-quality corfu
extension.

I understand the OP's frustration though, because this simplicity is not
a given but the result of an exhausting process of research and
refinement, there are a lot of options and (ill-)advice usually comes in
the form of installing yet another extension. One has to learn many
things that would be better not to know.

One complaint I have is that icomplete doesn't offer a builtin
completion-at-point mode. Strictly, it offers one but it's rather broken
(see my report #51575). I believe it would be easy to channel
completion-at-point to the minibuffer as other extensions more or less
trivially do, although this is not compatible with LSP servers. OTOH an
at-point popup is likely harder to implement and both overlays and child
frames have their own drawbacks (again, see #51575). In any case, a
builtin solution is not scifi at this point and, since the community is
already converging around core protocols, I see this as an opportunity
to greatly simplify the completion story.

Best regards,
Carlos






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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-15  4:53   ` Richard Stallman
@ 2021-11-16 19:12     ` irenezerafa
  0 siblings, 0 replies; 22+ messages in thread
From: irenezerafa @ 2021-11-16 19:12 UTC (permalink / raw)
  To: rms; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Monday, November 15th, 2021 at 4:53 AM, Richard Stallman <rms@gnu.org> wrote:

> [[[ To any NSA and FBI agents reading my email: please consider ]]]
> [[[ whether defending the US Constitution against all enemies, ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> > > I am installing Company Mode so I can use auto completion. Let me
> > > show you how beautiful that is using the emacs way. For most people,
> > > they do "M-x list-packages" and search for "company". They get about
> > > 70 matches for "company-mode" which add compatibility for other modes.

> > I think most people are able to figure out that they should add the
> > package called "company" if they want to install Company.
>
> Why do people use the term "Company Mode", if its name is simply
> "Company"? I get the impression the former is a misnomer. Is it a
> misnomer?

> If it is a misnomer, do we say anything that encourages it? We could
> change what we say, so as to avoid promoting the term "Company mode".
> Maybe we should write it as "Comp-any" to make the meaning clear.

The main problem is not company-mode in itself, but the fact that one
has to install the related functionality for each language one is using.

Rather, company-mode should recognise the language if needed and act
accordingly.  This makes company-mode a very odd implementation.







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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-15  6:51   ` Carlos Pita
@ 2021-11-16 19:22     ` irenezerafa
  2021-11-16 20:07       ` Carlos Pita
  0 siblings, 1 reply; 22+ messages in thread
From: irenezerafa @ 2021-11-16 19:22 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Monday, November 15th, 2021 at 6:51 AM, Carlos Pita <carlosjosepita2@gmail.com> wrote:

> Lars Ingebrigtsen larsi@gnus.org writes:
>
> > irenezerafa irenezerafa@protonmail.com writes:
> >
> > > I am installing Company Mode so I can use auto completion. Let me
> > >
> > > show you how beautiful that is using the emacs way. For most people,
> > >
> > > they do "M-x list-packages" and search for "company". They get about
> > >
> > > 70 matches for "company-mode" which add compatibility for other modes.
> >
> > I think most people are able to figure out that they should add the
> >
> > package called "company" if they want to install Company. (It's
> >
> > conveniently listed first among the packages that are Company-related.)
>
> Moreover, there is little gain in using company-specific extensions
>
> these days. Most completing-read frameworks offer completion-at-point
>
> compatibility, which inherits all the goodies from completing-read. And
>
> if you prefer an in-place popup install corfu which shows a child frame
>
> with zero extra config. Even company is moving more and more towards its
>
> capf backend. Maybe some extensions still require or greatly benefit
>
> from some company-specific protocol, but this is not the norm nowadays.
>
> I'm using a combo of fido-mode + corfu which, if I wanted, could be
>
> extended with consult, embark, marginalia, orderless, etc. I prefer to
>
> keep it small, but the beauty of the new "completion stack" is that the
>
> building blocks follow standard emacs protocols and are intercompatible
>
> (so it's completely fine to use any of them with icomplete/fido). This
>
> is all the configuration I need to get a "modern" completion experience:
>
> (setq completion-styles '(flex basic))
>
> (icomplete-vertical-mode +1)
>
> (fido-mode +1)
>
> (corfu-global-mode +1)
>
> The only external dependency is the minimal, high-quality corfu
>
> extension.
>
> I understand the OP's frustration though, because this simplicity is not
> a given but the result of an exhausting process of research and
> refinement, there are a lot of options and (ill-)advice usually comes in
> the form of installing yet another extension. One has to learn many
> things that would be better not to know.

I am pleased to see you understand my point, because the development geniuses
can't.

> One complaint I have is that icomplete doesn't offer a builtin
> completion-at-point mode. Strictly, it offers one but it's rather broken
> (see my report #51575). I believe it would be easy to channel
> completion-at-point to the minibuffer as other extensions more or less
> trivially do, although this is not compatible with LSP servers. OTOH an
> at-point popup is likely harder to implement and both overlays and child
> frames have their own drawbacks (again, see #51575). In any case, a
> builtin solution is not scifi at this point and, since the community is
> already converging around core protocols, I see this as an opportunity
> to greatly simplify the completion story.
>
> Best regards,
>
> Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  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
  0 siblings, 2 replies; 22+ messages in thread
From: Carlos Pita @ 2021-11-16 20:07 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, 51819

> > I understand the OP's frustration though, because this simplicity is not
> > a given but the result of an exhausting process of research and
> > refinement, there are a lot of options and (ill-)advice usually comes in
> > the form of installing yet another extension. One has to learn many
> > things that would be better not to know.
>
> I am pleased to see you understand my point, because the development geniuses
> can't.

I don't think they don't understand your point, but as it is now your
report is not really actionable. You might try your luck discussing
the point in emacs-devel, even so company is not part of emacs but a
development of the community, not to mention company extensions and
extensions of extensions up to the nth degree. Perhaps you believe
that this is a consequence of some limitation of the builtin UI and/or
protocol that triggered an extension industry around solving emacs
shortcomings and may want to discuss that. I don't see anything
terribly wrong in said UI and protocol, the UI may be a little clunky
for current standards but it's sturdy, gets the job done and is easily
replaceable (although I've argued for an improved builtin experience
which doesn't seem too far-fetched) and the protocol is not as rich as
company's but it's rich enough for most purposes and there is no way
to prevent that a new extension X adds some novel feature, gains
traction and a new X-.* extension industry flourishes, that's out of
the maintainer's hands and, for better or worse, part of emacs DNA.

Best regards,
Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-16 20:07       ` Carlos Pita
@ 2021-11-16 20:23         ` irenezerafa
  2021-11-16 21:30         ` Carlos Pita
  1 sibling, 0 replies; 22+ messages in thread
From: irenezerafa @ 2021-11-16 20:23 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Tuesday, November 16th, 2021 at 8:07 PM, Carlos Pita <carlosjosepita2@gmail.com> wrote:

> > > I understand the OP's frustration though, because this simplicity is not
> > > a given but the result of an exhausting process of research and
> > > refinement, there are a lot of options and (ill-)advice usually comes in
> > > the form of installing yet another extension. One has to learn many
> > > things that would be better not to know.
> >
> > I am pleased to see you understand my point, because the development geniuses
> >
> > can't.
>
> I don't think they don't understand your point, but as it is now your
> report is not really actionable. You might try your luck discussing
> the point in emacs-devel, even so company is not part of emacs but a
> development of the community, not to mention company extensions and
> extensions of extensions up to the nth degree.

There is a time that the project needs to clean things up a bit.  It is a basic
problem as things are accepted for inclusion.  I give texinfo as example.  Because
originally, it was based on tex, its development has not migrated to a more
structured system such as latex, making some improvements basically impossible.

> Perhaps you believe
> that this is a consequence of some limitation of the builtin UI and/or
> protocol that triggered an extension industry around solving emacs
> shortcomings and may want to discuss that. I don't see anything
> terribly wrong in said UI and protocol, the UI may be a little clunky
> for current standards but it's sturdy, gets the job done and is easily
> replaceable (although I've argued for an improved builtin experience
> which doesn't seem too far-fetched) and the protocol is not as rich as
> company's but it's rich enough for most purposes and there is no way
> to prevent that a new extension X adds some novel feature, gains
> traction and a new X-.* extension industry flourishes, that's out of
> the maintainer's hands and, for better or worse, part of emacs DNA.

Have understood criticisms of change being slow though.  Getting the job done
is customarily the first iteration in software when working at a serious enough
place.  Being able to get the job done (i.e. hacking) seems to be enough for many
people, because design is much more demanding.  I experienced this in industry,
with the result that things started to be rewritten rather that fixed or wasting
months or years trying to follow the haphazard evolution of the software.

> Best regards,
>
> Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  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
  1 sibling, 1 reply; 22+ messages in thread
From: Carlos Pita @ 2021-11-16 21:30 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, 51819

>> I am installing Company Mode so I can use auto completion.

One last thing that I believe should be obvious at this point, but
just in case: you don't need to install company to use
auto-completion, auto-completion works OOTB.

Company sports an overlay that many people find convenient and AFAIK
also defines some extensions to the core protocol (whose usage is
seemingly not encouraged these days anyway).

Emacs auto-completions come mostly in two flavours:

1. completing-read, for example the one for C-x C-f

2. completion-at-point, namely the one you want to customize using company.

But if you only need some vertical fuzzy-matching experience for 1 and
a popup for 2, just install corfu and you're good with a configuration
as simple as the one I posted above. I know this is of little
consolation, because you have already been exposed to information that
you don't care about, but that's the best I have.

> There is a time that the project needs to clean things up a bit.

There has been a significant cleanup regarding completion, both in
core emacs and in the community. Things are pretty mature right now
and expectations converge around the two core protocols listed above
(compare it to the situation a few years ago, with the emergence of
helm, ivy, company, etc, as well as ido, pcomplete, etc in the core).
But you are complaining about the outcome of a historical development
that there was no clear way (nor desire, I hope) to prevent. I don't
want to be Pangloss here, but it's in the nature of things that
extensions will be less conservative and change faster than the core.
This has both positive and negative aspects: on the plus side, you may
have been enjoying helm, ivy and company for years now, on the minus
side there is this senselessness you perceive (and you have painted a
rosy picture of it...). Some alternatives are a fossilised project or
a project that is breaking things with every release; by all means,
there is no such way as a project evolving at the perfect rate of
change, there is always uncertainty about future directions, many of
them yet unknown, and also a pile of constraints inherited from past
decisions. IMO having a creative and active community is more of an
asset than a liability, even if sometimes it's innovating too fast for
the project to provide any sort of meaningful coordination. But you
seem to see a slow-paced project instead of the fast-paced community
around it. I may agree with you about some other emacs aspects, but
regarding completion I believe sustained progress has actually been
made over the years.

> wasting months or years trying to follow the haphazard evolution of the software.

Sure, some other projects take more decisions upfront at the price of
losing some flexibility, maybe you would be better served by vscode in
that regard. Extreme flexibility is not necessarily a virtue, my empty
all-in-one-editor.c is as flexible as it is useless. At any rate I don't
think this is the case with emacs, but it's clearly biased towards
more organic evolution that you seem to dislike.

Best regards,
Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-16 21:30         ` Carlos Pita
@ 2021-11-16 21:44           ` irenezerafa
  2021-11-16 22:48             ` Carlos Pita
  0 siblings, 1 reply; 22+ messages in thread
From: irenezerafa @ 2021-11-16 21:44 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Tuesday, November 16th, 2021 at 9:30 PM, Carlos Pita <carlosjosepita2@gmail.com> wrote:

> > > I am installing Company Mode so I can use auto completion.
>
> One last thing that I believe should be obvious at this point, but
> just in case: you don't need to install company to use
> auto-completion, auto-completion works OOTB.

I did not know this.  Thought company is the OOTB one, than an external thing.
How does one use the auto-completion you are discussing?

> Company sports an overlay that many people find convenient and AFAIK
> also defines some extensions to the core protocol (whose usage is
> seemingly not encouraged these days anyway).
>
> Emacs auto-completions come mostly in two flavours:
>
> 1.  completing-read, for example the one for C-x C-f
> 2.  completion-at-point, namely the one you want to customize using company.
>
>     But if you only need some vertical fuzzy-matching experience for 1 and
>     a popup for 2, just install corfu and you're good with a configuration
>     as simple as the one I posted above. I know this is of little
>     consolation, because you have already been exposed to information that
>     you don't care about, but that's the best I have.

> > There is a time that the project needs to clean things up a bit.
> There has been a significant cleanup regarding completion, both in
> core emacs and in the community. Things are pretty mature right now
> and expectations converge around the two core protocols listed above
> (compare it to the situation a few years ago, with the emergence of
> helm, ivy, company, etc, as well as ido, pcomplete, etc in the core).

I use ivy, company and orderless.

> But you are complaining about the outcome of a historical development
> that there was no clear way (nor desire, I hope) to prevent. I don't
> want to be Pangloss here, but it's in the nature of things that
> extensions will be less conservative and change faster than the core.
>
> This has both positive and negative aspects: on the plus side, you may
> have been enjoying helm, ivy and company for years now, on the minus
> side there is this senselessness you perceive (and you have painted a
> rosy picture of it...). Some alternatives are a fossilised project or
> a project that is breaking things with every release; by all means,
> there is no such way as a project evolving at the perfect rate of
> change, there is always uncertainty about future directions, many of
> them yet unknown, and also a pile of constraints inherited from past
> decisions. IMO having a creative and active community is more of an
> asset than a liability, even if sometimes it's innovating too fast for
> the project to provide any sort of meaningful coordination. But you
> seem to see a slow-paced project instead of the fast-paced community
> around it. I may agree with you about some other emacs aspects, but
> regarding completion I believe sustained progress has actually been
> made over the years.

It is more from the new user point of view that emacs is becoming
more complicated to configure.  I am using company mode as is, but
decided to advise, for free.

> > wasting months or years trying to follow the haphazard evolution of the software.

> Sure, some other projects take more decisions upfront at the price of
> losing some flexibility, maybe you would be better served by vscode in
> that regard. Extreme flexibility is not necessarily a virtue, my empty
> all-in-one-editor.c is as flexible as it is useless. At any rate I don't
> think this is the case with emacs, but it's clearly biased towards
> more organic evolution that you seem to dislike.

Have used vscode.  Am not against organic evolution, but once something
becomes a fundamental functionality (e.g. completion), evolution should
move consciously after some time.  It is a different focus that also has
its place.

> Best regards,
> Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-16 21:44           ` irenezerafa
@ 2021-11-16 22:48             ` Carlos Pita
  2021-11-16 23:24               ` irenezerafa
  0 siblings, 1 reply; 22+ messages in thread
From: Carlos Pita @ 2021-11-16 22:48 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, 51819

> I did not know this.  Thought company is the OOTB one, than an external thing.
> How does one use the auto-completion you are discussing?

This is described in the manual:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html

Be aware that it's not a fancy popup that updates itself while you're
typing, instead it's more like what you get in bash. Nevertheless:

- The protocol is already there, when you install company most of the
things work OOTB because of the core protocol. Of course if company
adds extra features on top of it there is no way this could be
supported without installing further company-.* extensions as the ones
you listed at the top, but there is ample consensus not to do
that without good reason and alternatives have already emerged with
core APIs full-compatibility as a strong guiding principle. I
encourage you to visit the projects in https://github.com/minad/,
especially vertico, consult, embark, marginalia and corfu. You don't
need to install anything, just read about them and decide, you can
pick only the parts that you're interested in. I've only installed
corfu for now because I find the child frame nicer and more
convenient than the default UI, but I could easily live without
that.

- The protocol is already very customizable without installing
anything else. See for example the variable completion-styles. You can
set it to flex for fuzzy matching. You mentioned you're using
orderless: it also leverages this core mechanism in order to provide
a different completion strategy.

So, as you can see, there is more here than you first thought, it's
not really "haphazard evolution".

> once something becomes a fundamental functionality (e.g. completion),
> evolution should move consciously after some time.

I hope I've convinced you this is indeed what's happening. Indeed,
most of what I've described has been there for many many years.

>  I use ivy, company and orderless.

ivy implements its own protocols, be aware that there is a world of
ivy-.* stuff too. Also be aware that some of the packages in
https://github.com/minad/ are alternatives to ivy (it's not another
case of NIH though, because the idea is to stick to the roots for
good).

ivy can do completion-at-point too:

https://www.reddit.com/r/emacs/comments/57fnar/ivy_completion_at_point_in_an_overlay/

Maybe that's enough for your needs so you don't have to install anything else.

Best regards,
Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-16 22:48             ` Carlos Pita
@ 2021-11-16 23:24               ` irenezerafa
  2021-11-17  0:15                 ` irenezerafa
                                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: irenezerafa @ 2021-11-16 23:24 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Tuesday, November 16th, 2021 at 10:48 PM, Carlos Pita <carlosjosepita2@gmail.com> wrote:

> > I did not know this. Thought company is the OOTB one, than an external thing.
> >
> > How does one use the auto-completion you are discussing?
>
> This is described in the manual:
>
> https://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html

> Be aware that it's not a fancy popup that updates itself while you're
> typing, instead it's more like what you get in bash. Nevertheless:

It is the mini-buffer thing.  It is not so easy to go through and make the selections
though.  Emacs cam be quite straining on the fingers.

> -   The protocol is already there, when you install company most of the
>     things work OOTB because of the core protocol. Of course if company
>     adds extra features on top of it there is no way this could be
>     supported without installing further company-.* extensions as the ones
>     you listed at the top, but there is ample consensus not to do
>     that without good reason and alternatives have already emerged with
>     core APIs full-compatibility as a strong guiding principle. I
>     encourage you to visit the projects in https://github.com/minad/,
>     especially vertico, consult, embark, marginalia and corfu. You don't
>     need to install anything, just read about them and decide, you can
>     pick only the parts that you're interested in. I've only installed
>     corfu for now because I find the child frame nicer and more
>     convenient than the default UI, but I could easily live without
>     that.

> -   The protocol is already very customizable without installing
>     anything else. See for example the variable completion-styles. You can
>     set it to flex for fuzzy matching. You mentioned you're using
>     orderless: it also leverages this core mechanism in order to provide
>     a different completion strategy.

>     So, as you can see, there is more here than you first thought, it's
>     not really "haphazard evolution".

> > once something becomes a fundamental functionality (e.g. completion),
> > evolution should move consciously after some time.

> I hope I've convinced you this is indeed what's happening. Indeed,
> most of what I've described has been there for many many years.

Am glad to hear it.  From about Emacs 28 things are quite better than
distributions whose repositories still ship with Emacs 25 or earlier.

> > I use ivy, company and orderless.

> ivy implements its own protocols, be aware that there is a world of
> ivy-.* stuff too. Also be aware that some of the packages in
> https://github.com/minad/ are alternatives to ivy (it's not another
> case of NIH though, because the idea is to stick to the roots for
> good).

> ivy can do completion-at-point too:

> https://www.reddit.com/r/emacs/comments/57fnar/ivy_completion_at_point_in_an_overlay/

> Maybe that's enough for your needs so you don't have to install anything else.
> Best regards,

I am very interested in completion of words as I write documents.  Although coding
related stuff is also handy.  I customarily have key bindings to switch between orderless,
ivy, company.  All depending on the work at the time.

Thanks Carlos





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

* bug#51819: The Senselessness of Emacs Company Mode
  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
  2 siblings, 0 replies; 22+ messages in thread
From: irenezerafa @ 2021-11-17  0:15 UTC (permalink / raw)
  To: Carlos Pita; +Cc: Lars Ingebrigtsen, 51819

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Tuesday, November 16th, 2021 at 11:24 PM, irenezerafa <irenezerafa@protonmail.com> wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>
> On Tuesday, November 16th, 2021 at 10:48 PM, Carlos Pita carlosjosepita2@gmail.com wrote:
>
> > > I did not know this. Thought company is the OOTB one, than an external thing.
> > >
> > > How does one use the auto-completion you are discussing?
> >
> > This is described in the manual:
> >
> > https://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html
>
> > Be aware that it's not a fancy popup that updates itself while you're
> >
> > typing, instead it's more like what you get in bash. Nevertheless:
>
> It is the mini-buffer thing. It is not so easy to go through and make the selections
>
> though. Emacs cam be quite straining on the fingers.
>
> > -   The protocol is already there, when you install company most of the
> >
> >     things work OOTB because of the core protocol. Of course if company
> >
> >     adds extra features on top of it there is no way this could be
> >
> >     supported without installing further company-.* extensions as the ones
> >
> >     you listed at the top, but there is ample consensus not to do
> >
> >     that without good reason and alternatives have already emerged with
> >
> >     core APIs full-compatibility as a strong guiding principle. I
> >
> >     encourage you to visit the projects in https://github.com/minad/,
> >
> >     especially vertico, consult, embark, marginalia and corfu. You don't
> >
> >     need to install anything, just read about them and decide, you can
> >
> >     pick only the parts that you're interested in. I've only installed
> >
> >     corfu for now because I find the child frame nicer and more
> >
> >     convenient than the default UI, but I could easily live without
> >
> >     that.
>
> > -   The protocol is already very customizable without installing
> >
> >     anything else. See for example the variable completion-styles. You can
> >
> >     set it to flex for fuzzy matching. You mentioned you're using
> >
> >     orderless: it also leverages this core mechanism in order to provide
> >
> >     a different completion strategy.
>
> >     So, as you can see, there is more here than you first thought, it's
> >     not really "haphazard evolution".
> >
>
> > > once something becomes a fundamental functionality (e.g. completion),
> > >
> > > evolution should move consciously after some time.
>
> > I hope I've convinced you this is indeed what's happening. Indeed,
> >
> > most of what I've described has been there for many many years.
>
> Am glad to hear it. From about Emacs 28 things are quite better than
>
> distributions whose repositories still ship with Emacs 25 or earlier.
>
> > > I use ivy, company and orderless.
>
> > ivy implements its own protocols, be aware that there is a world of
> >
> > ivy-.* stuff too. Also be aware that some of the packages in
> >
> > https://github.com/minad/ are alternatives to ivy (it's not another
> >
> > case of NIH though, because the idea is to stick to the roots for
> >
> > good).
>
> > ivy can do completion-at-point too:
>
> > https://www.reddit.com/r/emacs/comments/57fnar/ivy_completion_at_point_in_an_overlay/
>
> > Maybe that's enough for your needs so you don't have to install anything else.
> >
> > Best regards,
>
> I am very interested in completion of words as I write documents. Although coding
> related stuff is also handy. I customarily have key bindings to switch between orderless,
> ivy, company. All depending on the work at the time.
>
> Thanks Carlos

Dear Carlos, 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 are significant advantages with completion popups which go beyond the just fancy.
Popups are more productive from the rapidity of completion point of view.

Another aspect is to improve the ease by which I can include the equivalent to running
functions by including them in the menu-bar, in contrast to keybinding commands.
As one writes more functions, it becomes more difficult to remember tho keybindings
one defined for each user-defined functionality.










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

* bug#51819: [External] : bug#51819: The Senselessness of Emacs Company Mode
  2021-11-16 23:24               ` irenezerafa
  2021-11-17  0:15                 ` irenezerafa
@ 2021-11-17  2:30                 ` Drew Adams
  2021-11-17  3:08                 ` Carlos Pita
  2 siblings, 0 replies; 22+ messages in thread
From: Drew Adams @ 2021-11-17  2:30 UTC (permalink / raw)
  To: irenezerafa, Carlos Pita; +Cc: Lars Ingebrigtsen, 51819@debbugs.gnu.org

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

Caveat: I'm not following this thread.  I just
happened upon that sentence.

Wrt your expressed interest, I assume you already
know about `dabbrev'.

You might also be interested in the very old library
`completion.el'.  It's still part of Emacs and still
useful, precisely for what you describe: completing
words you actually use when writing <whatever>.

The "doc" for it is a rambling description in the
file header, but it's simple and understandable.

There's nothing fancy at all, and you might find it
quaint, but it can be quite useful.  You can pretty
much complete everything you type.  It has a
dabbrev-like behavior, but it can also automatically
persist words you've used etc.

I'd say give it a try.  You just might find it useful.
`M-x find-library completion'.


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

* bug#51819: The Senselessness of Emacs Company Mode
  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-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
  2 siblings, 1 reply; 22+ messages in thread
From: irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-11-17  2:53 UTC (permalink / raw)
  To: Drew Adams; +Cc: Lars Ingebrigtsen, Carlos Pita, 51819@debbugs.gnu.org

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Wednesday, November 17th, 2021 at 2:30 AM, Drew Adams <drew.adams@oracle.com> wrote:

> > I am very interested in completion of words as I write documents.
>
> Caveat: I'm not following this thread. I just
> happened upon that sentence.

Mostly interested in completion mechanisms that do not require me to
install packages, as I consider completion to be such a basic functionality
that it should be installed by default, unless one decides excludes to exclude
it.  More for new users, because I am mainly using company-mode.

> Wrt your expressed interest, I assume you already
> know about `dabbrev'. You might also be interested in the very old library` completion.el'. It's still part of Emacs and still
> useful, precisely for what you describe: completing
> words you actually use when writing <whatever>.

There is also abbrev-mode.  There is just too many versions and too many to try out.  That's my basic
complaint.  The pop-up window is the most valuable for fast typers and writers.


> The "doc" for it is a rambling description in the
> file header, but it's simple and understandable.
> There's nothing fancy at all, and you might find it
> quaint, but it can be quite useful. You can pretty
> much complete everything you type. It has a
> dabbrev-like behavior, but it can also automatically
> persist words you've used etc.

> I'd say give it a try. You just might find it useful.

> `M-x find-library completion'.





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

* bug#51819: The Senselessness of Emacs Company Mode
  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-17  2:53 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 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 16:36   ` bug#51819: [External] : " Drew Adams
  2 siblings, 2 replies; 22+ messages in thread
From: irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-11-17  3:00 UTC (permalink / raw)
  To: Drew Adams; +Cc: Lars Ingebrigtsen, Carlos Pita, 51819@debbugs.gnu.org

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Wednesday, November 17th, 2021 at 2:30 AM, Drew Adams <drew.adams@oracle.com> wrote:

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

> Caveat: I'm not following this thread. I just
> happened upon that sentence.

> Wrt your expressed interest, I assume you already
> know about `dabbrev'. You might also be interested in the very old library` completion.el'. It's still part of Emacs and still
> useful, precisely for what you describe: completing
> words you actually use when writing <whatever>.
> The "doc" for it is a rambling description in the
> file header, but it's simple and understandable.

> There's nothing fancy at all, and you might find it
> quaint, but it can be quite useful. You can pretty
> much complete everything you type. It has a
> dabbrev-like behavior, but it can also automatically
> persist words you've used etc.

> I'd say give it a try. You just might find it useful.
> `M-x find-library completion'.

Do I need to install anything, or put anything in my emacs init?
I like the "watches all the words that you type and remembers them".





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

* bug#51819: The Senselessness of Emacs Company Mode
  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
  2 siblings, 0 replies; 22+ messages in thread
From: Carlos Pita @ 2021-11-17  3:08 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, 51819

> 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





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

* bug#51819: The Senselessness of Emacs Company Mode
  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:36   ` bug#51819: [External] : " Drew Adams
  1 sibling, 1 reply; 22+ messages in thread
From: Carlos Pita @ 2021-11-17  3:12 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, 51819@debbugs.gnu.org

> Do I need to install anything, or put anything in my emacs init?
> I like the "watches all the words that you type and remembers them".

No, it's as old as time, see:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html

But you will have to press Meta-/ so maybe it's not what you're looking for.





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-17  3:12   ` Carlos Pita
@ 2021-11-17  3:40     ` Carlos Pita
  2021-11-17 16:13       ` irenezerafa
  0 siblings, 1 reply; 22+ messages in thread
From: Carlos Pita @ 2021-11-17  3:40 UTC (permalink / raw)
  To: irenezerafa; +Cc: 51819@debbugs.gnu.org

> No, it's as old as time, see:
>
> https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html
>
> But you will have to press Meta-/ so maybe it's not what you're looking for.

Or use company-dabbrev which comes with company (maybe it's even
installed by default when you enable company, I don't remember). Or
corfu with https://github.com/minad/corfu/issues/9#issuecomment-945090516,
as explained above. Both of them support on-the-fly / as-you-type /
whatever completions. That said, my main use case for emacs is also
working with text (I mean, natural language) and I find it extremely
annoying that a popup opens with every word I start typing, have you
actually tried that and liked it? There's no lack of requests for such
a behavior to be turned off by default, e.g.
https://github.com/syl20bnr/spacemacs/issues/11743.





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

* bug#51819: The Senselessness of Emacs Company Mode
  2021-11-17  3:40     ` Carlos Pita
@ 2021-11-17 16:13       ` irenezerafa
  0 siblings, 0 replies; 22+ messages in thread
From: irenezerafa @ 2021-11-17 16:13 UTC (permalink / raw)
  To: Carlos Pita; +Cc: 51819@debbugs.gnu.org

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Wednesday, November 17th, 2021 at 3:40 AM, Carlos Pita <carlosjosepita2@gmail.com> wrote:

> > No, it's as old as time, see:
> > https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html
> > But you will have to press Meta-/ so maybe it's not what you're looking for.

> Or use company-dabbrev which comes with company (maybe it's even
> installed by default when you enable company, I don't remember). Or
> corfu with https://github.com/minad/corfu/issues/9#issuecomment-945090516,
> as explained above. Both of them support on-the-fly / as-you-type /
> whatever completions.

> That said, my main use case for emacs is also
> working with text (I mean, natural language) and I find it extremely
> annoying that a popup opens with every word I start typing,

I do write in natural language.  But also write mathematics with very
strange vocabulary and the popup is convenient because I can keep my
eyes en the text.  But it depends on the kind op popup.  I like the
small popup list from company mode next to the cursor, instead of a
minibuffer window, or a side emacs window.

One can put a delay for activating the popup.

> have you
> actually tried that and liked it? There's no lack of requests for such
> a behavior to be turned off by default, e.g.

> https://github.com/syl20bnr/spacemacs/issues/11743.

There exist uses for it, but also understand others having the ability to
switch it off (when done with a keybinding or simple function call, rather
that messing with the init file to switch it on or off permanently).

The biggest problem I see are those who are too prescriptive about emacs
functionality (those wanting exclusion of something permanently).  Exclusion
of functionality in a permanent way is often a lack of use case for that
individual to use it.  One never knows what valid use cases some dude could
have for something.






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

* bug#51819: [External] : bug#51819: The Senselessness of Emacs Company Mode
  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 16:36   ` Drew Adams
  1 sibling, 0 replies; 22+ messages in thread
From: Drew Adams @ 2021-11-17 16:36 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, Carlos Pita, 51819@debbugs.gnu.org

> Do I need to install anything, or put anything in my emacs init?
> I like the "watches all the words that you type and remembers them".

No, you don't.  Just `M-x dynamic-completion-mode'.
It's an autoloaded minor mode.

If you decide you want to turn on by default, then
of course you can put `(dynamic-completion-mode 1)'
in your init file.

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

* bug#51819: [External] : bug#51819: The Senselessness of Emacs Company Mode
  2021-11-17  2:53 ` irenezerafa via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-11-17 16:36   ` Drew Adams
  0 siblings, 0 replies; 22+ messages in thread
From: Drew Adams @ 2021-11-17 16:36 UTC (permalink / raw)
  To: irenezerafa; +Cc: Lars Ingebrigtsen, Carlos Pita, 51819@debbugs.gnu.org

> > > I am very interested in completion of words as I write documents.
> >
> > Caveat: I'm not following this thread. I just
> > happened upon that sentence.
> 
> Mostly interested in completion mechanisms that do
> not require me to install packages, as I consider
> completion to be such a basic functionality that it
> should be installed by default, unless one decides
> excludes to exclude it.  More for new users,
> because I am mainly using company-mode.

As I said, `completion.el' is part of Emacs, and
has been for a very long time.  You don't need to
"install" it.  You don't even need to `require'
it.  Just turn on `dynamic-completion-mode'.

> > Wrt your expressed interest, I assume you already
> > know about `dabbrev'. You might also be interested
> > in the very old library` completion.el'. It's still
> > part of Emacs and still useful, precisely for what
> > you describe: completing words you actually use
> > when writing <whatever>.
> 
> There is also abbrev-mode.

So maybe you're not acquainted with `dabbrev'
after all.  The `d' is for `dynamic'.  It uses,
as its base for completion, words you've already
typed.

`abbrev-mode' works off of a set of explicitly
defined abbrevs.  Dynamic abbreviation works off of
words you yourself use, automatically.

https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html

> There is just too many versions and too many to
> try out.  That's my basic complaint.

Emacs is a world.  A world has a lot to explore.
Don't get intimidated or overwhelmed.

If you want to propose improvements to Emacs,
then it kinda behooves you to be somewhat
acquainted with what already exists - the thing
to be improved.

> The pop-up window is the most valuable for fast
> typers and writers.

Different people find different things to be faster
or more valuable.  I won't argue with you about
your preference.

And there are different kinds of "pop-up window",
and different means and triggers for popping up.
Those differences affect speed and convenience.

The set of completions popped up also affects
things: how many choices? what order? can you
change the number of choices? on the fly? can
you change the sort order? on the fly?

These things are not black & white ("_the_
most valuable").  There are advantages to
each possible combination, and different
people, in different use contexts, find
different choices to be most helpful/useful.

> > I'd say give it a try. You just might find
> > it useful.  `M-x find-library completion'.

Even easier: `M-x dynamic-completion-mode'.
But to see the description you need to consult
the library's Commentary text.


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

end of thread, other threads:[~2021-11-17 16:36 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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).