From: Dmitry Gutov <dgutov@yandex.ru>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Split off some backends from Company?
Date: Mon, 11 Aug 2014 23:21:06 +0400 [thread overview]
Message-ID: <53E917A2.2080409@yandex.ru> (raw)
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
next reply other threads:[~2014-08-11 19:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-11 19:21 Dmitry Gutov [this message]
[not found] ` <jwva979sonu.fsf-monnier+emacs@gnu.org>
2014-08-13 1:57 ` Split off some backends from Company? 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
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53E917A2.2080409@yandex.ru \
--to=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=monnier@IRO.UMontreal.CA \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.