unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Split off some backends from Company?
@ 2014-08-11 19:21 Dmitry Gutov
       [not found] ` <jwva979sonu.fsf-monnier+emacs@gnu.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Gutov @ 2014-08-11 19:21 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Hi Stefan,

It's been suggested [0] that we split the backends that require 
third-party Emacs packages to be installed, from Company, to separate 
packages.

Tentatively, the list would look like:

company-bbdb, company-oddmuse, company-ropemacs.

Maybe also company-yasnippet. On the one hand it's distributed in GNU 
ELPA, so it's not really third-party, on the other hand, it still has to 
be installed for the respective backend to work.

Taking it further, we could do the same that depend on specific external 
programs to be available, but not Elisp code: company-clang, 
company-eclim, company-gtags, company-xcode.

There are two main benefits are, I think:

- More visibility for Company; users see the backends for specific 
completion sources they're interested in, in `M-x list-packages'.

- Each new package's description can include the list of its 
dependencies and how to install them, especially if the user has to 
install something outside of Emacs (ropemacs is the prime example). 
Before installing each new backend, the user would be able to read those 
instructions.

Drawbacks:

- If the backend doesn't depend on third-party Elisp code, or if that 
package is likely to be installed anyway; if the external program 
dependency or easy to install or likewise is likely to be already 
present on the user's system, then we lose out on user convenience, 
because otherwise the backend could "just work", if it was installed and 
present by default.

- The list of packages in GNU ELPA is fairly short, and adding 3-7 new 
packages, all named "company-...", might look like hijacking. There are 
many "ac-..." packages in third-party repositories, for example, but no 
such pattern hare, and I hesitate to change that.

- The setup proceduce for each such backend becomes more complicated: 
you have to install the backend, its dependencies (happens 
automatically), external dependencies, and add 1-2 new lines to your 
init file.

WDYT?

[0] 
https://github.com/company-mode/company-inf-ruby/issues/2#issuecomment-51649939



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

end of thread, other threads:[~2014-08-14  4:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-11 19:21 Split off some backends from Company? Dmitry Gutov
     [not found] ` <jwva979sonu.fsf-monnier+emacs@gnu.org>
2014-08-13  1:57   ` Dmitry Gutov
2014-08-13 12:38     ` Stefan Monnier
2014-08-14  2:20       ` Dmitry Gutov
2014-08-14  3:07         ` Stefan Monnier
2014-08-14  4:23           ` Dmitry Gutov

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