From: Dmitry Gutov <dgutov@yandex.ru>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: enabling company-capf support in cfengine.el
Date: Sun, 19 Jan 2014 18:44:21 +0200 [thread overview]
Message-ID: <52DC00E5.3020803@yandex.ru> (raw)
In-Reply-To: <jwvlhychg0k.fsf-monnier+emacs@gnu.org>
On 19.01.2014 04:37, Stefan Monnier wrote:
> Could you make a bug report listing these (3 so far) problematic
> functions, and explaining (as much as you can remember) what kind of
> problem they cause?
Done: http://debbugs.gnu.org/16496
> Ah, I see in the rest of your answer than this is all about "not
> waiting". So, yes, the name should rather be :company-immediate or
> something like that. It could also be "integer or t". And indeed, the
> integer case is probably not needed.
I'll have to think about the name more. Maybe Completion-UI gives some
inspiration.
>>> That's easy to solve: turn company-clang into its CAPF equivalent, then
>>> place it within completion-at-point-functions after the Semantic one.
>> Which body of code would contain that clang-completion-function, and perform
>> the adding?
>
> How 'bout company-clang.el at first?
> Could later be renamed to capf-clang.el, or cc-clang.el, or ... ?
Sometime ago I've been told that RMS dislikes Clang strongly enough to
oppose inclusion of any code using it in Emacs.
Unless it has changed (or is no longer a major factor), separating the
code from Company won't be particularly valuable. Ours isn't a very
sophisticated integration anyway, there are other packages doing more,
such as spinning up a persistent server to eliminate the latency of
launching new process and scanning all project files anew each time.
Alas, they're all using auto-complete ATM.
>> forcing clang-completion-function to include a major-mode check
>> (hitherto unseen behavior in CAPF functions, AFAIK),
>
> Don't know if it's already seen or not, but I don't see why it'd be
> a problem.
Yeah, OK.
>> Anyway, as I see it, none of the options would provide a smooth transition
>> from company-clang being included in company-backends. The users will have
>> to install a package, enable a minor mode, or do something equivalent.
>
> I really don't see why it's hard:
> - change company-clang.el so that it supports the "CAPF protocol" rather
> than the "company-backend protocol".
> - actually make it support both protocols (with the help of
> company-capf to translate from the CAPF protocol to the other).
This is doable, yes.
> - in company.el (add-hook 'completion-at-point-function 'company-capf-clang)
> and add company-clang to company-backends if Emacs is too old to use
> company-capf.
Would it be at the top-level? I.e. whenever you have company.el loaded,
the global value of completion-at-point-functions will include
company-capf-clag. Sounds invasive.
Doing it in global-company-mode is not an option, I believe
(define-globalized-minor-mode has no BODY argument), and even if it
were, the users don't have to call this function, they can use
company-mode directly.
If we're doing it inside company-mode function body, we'll have to
change the local value instead.
Two last options would look weird either way: why would company-mode
function concern itself with the value of completion-at-point-functions,
and Clang specifically? That's why I suggested another minor mode.
>> Guess a simpler solution would be to keep company-clang as-is, but move it
>> behind company-capf.
>
> But moving it to CAPF means that it becomes useful/usable not only for
> Company for also for good ol' competion-at-point.
Would a Company user benefit from this, really? I'd like to hear from
one person that would first.
As long as (add-hook 'completion-at-point-function 'company-capf-clang)
is only done when company-mode is enabled, there's really not much benefit.
next prev parent reply other threads:[~2014-01-19 16:44 UTC|newest]
Thread overview: 256+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-18 16:13 Emacs completion matches selection UI Ted Zlatanov
2013-11-18 20:00 ` Bozhidar Batsov
2013-11-18 20:54 ` Andreas Röhler
2013-11-18 21:15 ` Ted Zlatanov
2013-11-19 0:43 ` Stefan Monnier
2013-11-19 9:52 ` Dmitry Gutov
2013-11-19 13:41 ` Stefan Monnier
2013-11-19 14:00 ` Dmitry Gutov
2013-11-19 14:58 ` Ted Zlatanov
2013-11-19 17:50 ` Stefan Monnier
2013-11-19 21:07 ` Ted Zlatanov
2013-11-20 0:28 ` Stefan Monnier
2013-11-20 1:30 ` Ted Zlatanov
2013-11-20 3:22 ` Stefan Monnier
2013-11-20 17:52 ` Ted Zlatanov
2013-11-20 19:10 ` Stefan Monnier
2013-11-20 20:00 ` Ted Zlatanov
2013-11-20 15:57 ` Josh
2013-11-21 0:52 ` Juri Linkov
2013-11-21 3:48 ` Eli Zaretskii
2013-11-22 0:10 ` Juri Linkov
2013-11-22 7:36 ` Eli Zaretskii
2013-11-22 12:33 ` Ted Zlatanov
2013-11-25 13:28 ` Ted Zlatanov
2013-11-25 15:18 ` Stefan Monnier
2013-12-16 15:17 ` Ted Zlatanov
2013-12-16 18:35 ` Stefan Monnier
2013-12-16 22:15 ` Ted Zlatanov
2013-12-17 2:10 ` Stefan Monnier
2013-12-17 10:49 ` Ted Zlatanov
2013-12-17 18:29 ` Stefan Monnier
2013-12-17 20:59 ` Ted Zlatanov
2013-12-18 1:58 ` Stephen J. Turnbull
2013-12-18 3:09 ` Ted Zlatanov
2013-12-18 4:47 ` Stephen J. Turnbull
2013-12-18 14:43 ` Ted Zlatanov
2013-12-18 15:51 ` Eli Zaretskii
2013-12-18 16:38 ` Ted Zlatanov
2013-12-18 17:05 ` Eli Zaretskii
2013-12-18 17:18 ` Ted Zlatanov
2013-12-18 17:37 ` Stephen J. Turnbull
2013-12-18 19:05 ` Ted Zlatanov
2013-12-18 21:11 ` chad
2013-12-19 3:40 ` Stefan Monnier
2013-12-19 15:49 ` Ted Zlatanov
2013-12-19 17:30 ` Dmitry Gutov
2013-12-19 18:44 ` Ted Zlatanov
2013-12-19 21:44 ` Dmitry Gutov
2013-12-20 1:15 ` Ted Zlatanov
2013-12-20 3:06 ` Stephen J. Turnbull
2013-12-20 3:08 ` Dmitry Gutov
2013-12-20 11:49 ` Ted Zlatanov
2013-12-20 13:18 ` Dmitry Gutov
2013-12-20 14:59 ` Ted Zlatanov
2013-12-22 1:45 ` Stefan Monnier
2013-12-22 2:29 ` Dmitry Gutov
2013-12-22 11:07 ` Stefan Monnier
2013-12-22 16:07 ` Dmitry Gutov
2013-12-22 22:50 ` enabling company-capf support in cfengine.el (was: Emacs completion matches selection UI) Ted Zlatanov
2013-12-23 0:17 ` enabling company-capf support in cfengine.el Dmitry Gutov
2013-12-23 1:11 ` Ted Zlatanov
2013-12-23 1:32 ` Dmitry Gutov
2014-01-16 13:12 ` Dmitry Gutov
2014-01-16 16:06 ` Stefan Monnier
2014-01-16 17:39 ` Dmitry Gutov
2014-01-17 13:04 ` Stefan Monnier
2014-01-18 14:13 ` Dmitry Gutov
2014-01-19 2:37 ` Stefan Monnier
2014-01-19 16:44 ` Dmitry Gutov [this message]
2014-01-19 20:19 ` Stefan Monnier
2014-01-19 20:44 ` David Engster
2014-01-20 0:13 ` Dmitry Gutov
2014-01-20 2:14 ` Stephen J. Turnbull
2014-01-20 2:39 ` John Yates
2014-01-20 3:22 ` Stephen J. Turnbull
2014-01-20 7:10 ` David Kastrup
2014-01-20 14:22 ` John Yates
2014-01-20 14:55 ` David Kastrup
2014-01-20 15:09 ` clang vs free software (was: enabling company-capf support in cfengine.el) Stefan Monnier
2014-01-20 19:47 ` clang vs free software David Engster
2014-01-21 14:42 ` Richard Stallman
2014-01-21 15:02 ` David Kastrup
2014-01-21 15:20 ` Dmitry Gutov
2014-01-22 15:31 ` Richard Stallman
2014-01-22 17:24 ` Dmitry Gutov
2014-01-21 15:34 ` John Yates
2014-01-21 16:00 ` Rüdiger Sonderfeld
2014-01-21 16:25 ` joakim
2014-01-21 16:34 ` Rüdiger Sonderfeld
2014-01-21 16:38 ` joakim
2014-01-21 18:50 ` Rüdiger Sonderfeld
2014-01-21 18:00 ` Thien-Thi Nguyen
2014-01-21 18:44 ` Rüdiger Sonderfeld
2014-01-23 10:55 ` Richard Stallman
2014-01-23 11:01 ` David Kastrup
2014-01-23 14:26 ` Helmut Eller
2014-01-25 23:02 ` Richard Stallman
2014-01-25 23:28 ` Daniel Colascione
2014-01-26 1:35 ` Lennart Borgman
2014-01-26 6:45 ` David Kastrup
2014-01-26 12:13 ` Daniel Colascione
2014-01-26 12:35 ` Lennart Borgman
2014-01-26 14:45 ` David Kastrup
2014-01-26 20:06 ` Richard Stallman
2014-01-26 20:06 ` Richard Stallman
2014-01-26 10:22 ` Helmut Eller
2014-01-26 11:12 ` David Kastrup
2014-01-26 12:36 ` Helmut Eller
2014-01-26 14:54 ` David Kastrup
2014-01-26 20:06 ` Richard Stallman
2014-01-26 15:12 ` Stefan Monnier
2014-01-26 15:15 ` Lennart Borgman
2014-01-26 15:35 ` David Kastrup
2014-01-26 15:46 ` Lennart Borgman
2014-01-23 16:35 ` Rüdiger Sonderfeld
2014-01-23 18:04 ` David Engster
2014-01-22 2:06 ` unic0rn
2014-01-20 15:57 ` enabling company-capf support in cfengine.el Stephen J. Turnbull
2014-01-20 3:32 ` Óscar Fuentes
2014-01-20 13:59 ` John Yates
2014-01-20 14:30 ` David Kastrup
2014-01-20 17:01 ` John Yates
2014-01-20 2:17 ` Stefan Monnier
2014-01-19 16:54 ` Dmitry Gutov
2014-01-19 20:21 ` Stefan Monnier
2014-01-19 23:57 ` Dmitry Gutov
2014-01-20 2:20 ` Stefan Monnier
2014-01-20 2:33 ` Dmitry Gutov
2014-01-20 13:41 ` Stefan Monnier
2013-12-23 1:36 ` Emacs completion matches selection UI Stefan Monnier
2013-12-23 2:12 ` Dmitry Gutov
2013-12-23 13:33 ` Stefan Monnier
2013-12-20 1:19 ` Stephen J. Turnbull
2013-12-20 1:17 ` Stephen J. Turnbull
2013-12-20 14:32 ` Stefan Monnier
2013-12-20 15:54 ` Ted Zlatanov
2013-12-21 3:32 ` Stephen J. Turnbull
2013-12-21 4:58 ` Ted Zlatanov
2013-12-22 2:05 ` Stefan Monnier
2013-12-22 23:15 ` Ted Zlatanov
2013-12-23 1:59 ` Stefan Monnier
2013-12-23 12:28 ` Ted Zlatanov
2013-12-23 13:42 ` Stefan Monnier
2013-12-23 14:52 ` Ted Zlatanov
2013-12-30 20:47 ` Toby Cubitt
2013-12-31 0:20 ` Leo Liu
2013-12-31 7:48 ` joakim
2013-12-31 14:30 ` Dmitry Gutov
2013-12-31 15:52 ` Toby Cubitt
2013-12-31 17:45 ` joakim
2014-01-02 18:54 ` Dmitry Gutov
2014-01-02 18:10 ` Stefan Monnier
2014-01-03 17:49 ` Ted Zlatanov
2014-01-03 19:36 ` Stefan Monnier
2014-01-04 0:48 ` Toby Cubitt
2014-01-04 3:45 ` Stefan Monnier
2014-01-06 4:47 ` Toby Cubitt
2014-01-06 23:38 ` Ted Zlatanov
2014-01-07 3:57 ` Toby Cubitt
2014-01-04 9:21 ` João Távora
2014-01-06 23:21 ` Ted Zlatanov
2014-01-02 20:20 ` Dmitry Gutov
2014-01-02 22:58 ` Toby Cubitt
2014-01-03 2:40 ` Stefan Monnier
2014-01-03 14:30 ` Toby Cubitt
2014-01-03 16:23 ` Dmitry Gutov
2014-01-03 16:48 ` Toby Cubitt
2014-01-03 19:32 ` Stefan Monnier
2014-01-03 22:06 ` Toby Cubitt
2014-01-04 3:39 ` Stefan Monnier
2014-01-06 4:00 ` Toby Cubitt
2014-01-03 16:35 ` Toby Cubitt
2014-01-03 17:46 ` Thierry Volpiatto
2014-01-04 2:39 ` Dmitry Gutov
2014-01-04 3:54 ` Stefan Monnier
2014-01-05 4:08 ` Dmitry Gutov
2014-01-05 16:04 ` Stefan Monnier
2014-01-06 4:25 ` Dmitry Gutov
2014-01-06 5:25 ` Toby Cubitt
2014-01-06 2:39 ` Toby Cubitt
2014-01-06 4:03 ` Stefan Monnier
2014-01-06 5:35 ` Toby Cubitt
2014-01-06 5:55 ` Dmitry Gutov
2014-01-06 14:47 ` Stefan Monnier
2014-01-06 15:54 ` Toby Cubitt
2014-01-06 20:53 ` Stefan Monnier
2014-01-06 23:45 ` Ted Zlatanov
2014-01-06 7:36 ` Dmitry Gutov
2014-01-06 15:51 ` Toby Cubitt
2014-01-07 0:17 ` Dmitry Gutov
2014-01-07 3:32 ` Toby Cubitt
2014-01-07 23:23 ` Dmitry Gutov
2014-01-08 2:58 ` Toby Cubitt
2014-01-08 3:38 ` Bob Bobeck
2014-01-08 3:47 ` Toby Cubitt
2014-01-08 9:27 ` Richard Stallman
2014-01-08 15:37 ` Ted Zlatanov
2014-01-08 4:49 ` Stefan Monnier
2014-01-08 15:33 ` Ted Zlatanov
2014-01-08 16:11 ` Toby Cubitt
2014-01-09 7:12 ` Dmitry Gutov
2013-12-23 13:45 ` John Yates
2013-12-23 16:02 ` Stefan Monnier
2013-12-24 2:47 ` John Yates
2013-12-28 14:02 ` Stefan Monnier
2013-12-28 16:43 ` John Yates
2013-12-30 12:55 ` Stefan Monnier
2013-12-30 16:32 ` João Távora
2014-01-04 23:02 ` Stefan Monnier
2014-01-05 2:13 ` João Távora
2014-01-05 16:11 ` Stefan Monnier
2014-01-06 23:48 ` Ted Zlatanov
2014-01-07 3:15 ` Stefan Monnier
2014-01-07 16:13 ` Ted Zlatanov
2014-01-07 17:18 ` João Távora
2014-01-07 18:10 ` Josh
2014-01-07 19:42 ` David Kastrup
2014-01-08 3:54 ` Josh
2014-01-07 3:16 ` Stefan Monnier
2014-01-07 16:12 ` Ted Zlatanov
2013-12-28 15:59 ` João Távora
2013-12-28 17:00 ` John Yates
2013-12-28 17:40 ` Josh
2013-12-19 4:53 ` Stephen J. Turnbull
2013-12-19 5:45 ` chad
2013-12-19 7:03 ` Stephen J. Turnbull
2013-12-19 7:59 ` Aaron Ecay
2013-12-19 15:29 ` Stephen J. Turnbull
2013-12-19 17:41 ` Eli Zaretskii
2013-12-19 18:46 ` Ted Zlatanov
2013-12-20 0:53 ` Stephen J. Turnbull
2013-12-19 6:23 ` Stephen J. Turnbull
2013-11-19 16:24 ` Eli Zaretskii
2013-11-21 10:17 ` Dmitry Gutov
2013-11-21 16:30 ` Eli Zaretskii
2013-11-22 5:38 ` Stephen J. Turnbull
2013-11-22 15:19 ` Eli Zaretskii
2013-11-23 10:03 ` Stephen J. Turnbull
2013-11-19 13:48 ` Ted Zlatanov
2013-11-19 18:03 ` Stefan Monnier
2013-11-20 0:10 ` Gregor Zattler
2013-11-20 1:25 ` Ted Zlatanov
2013-11-20 17:59 ` John Yates
2013-11-19 0:47 ` Juri Linkov
2013-11-19 11:18 ` Tom
2013-11-19 14:00 ` Stefan Monnier
2013-11-20 0:45 ` Juri Linkov
2013-11-20 7:34 ` martin rudalics
2013-11-20 7:50 ` Tom
2013-11-21 0:45 ` Juri Linkov
2013-11-21 7:41 ` martin rudalics
2013-11-22 0:18 ` Juri Linkov
2013-11-22 10:26 ` martin rudalics
2013-11-19 19:44 ` Dmitry Gutov
2013-11-20 7:39 ` Eric Abrahamsen
2013-11-19 17:33 ` Sebastian Wiesner
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=52DC00E5.3020803@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.