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: Sat, 18 Jan 2014 16:13:43 +0200 [thread overview]
Message-ID: <52DA8C17.4080707@yandex.ru> (raw)
In-Reply-To: <jwvlhyfmm12.fsf-monnier+emacs@gnu.org>
On 17.01.2014 15:04, Stefan Monnier wrote:
> Whenever you bump into such problems, do report them. I'll take a look
> at the above two.
Thank you. Another one that I've noticed is `message-completion-function'.
>>> BTW, the next step would be to supplant other company backends, like
>>> we've done with company-elisp: company-css, company-nxml, and
>>> company-semantic look like prime candidates.
>> Indeed. Although I'm not sure what would be an appropriate counterpart in
>> CAPF for `company-semantic--pre-prefix-length'.
>
> You mean, what should be the counterpart to:
>
> cannot \(e.g. if it is in the middle of a string\). Instead of a string,
> the back-end may return a cons where car is the prefix and cdr is used in
> `company-minimum-prefix-length' test. It's either number or t, in which
> case the test automatically succeeds.
>
> A straightforward option might be to have CAPF return
> a new :company-prefix-length-offset property which is then added to the
> prefix length by company-capf.
Note the option of returning `t', it doesn't fit the proposed name
(-prefix-length).
And actually, I'm not aware of any users of `company-semantic' (though
there probably are some), whereas `company-clang' uses that `t' return
value after a user request, which I think makes more sense. Maybe we
should deprecate the numeric cdr altogether.
And when the choice is between returning `t' or nothing, the choice of
whether idle completion is appropriate at point is made only by the
backend. For example, in C-based languages, if the current word goes
after "." or "->", it's quite likely the choice of completions is known
and limited, and many users, used to the popular IDE behavior, even like
when the idle completion popup is displayed right after typing "." or
"->" (and waiting a certain fraction of a second).
So yes, a new property might be appropriate, but with different semantics.
> From a more CAPF-centric point of view, in the case of Semantic, another
> option is to return as prefix not "ch" but "fr->ch", and then specify
> a boundary between "fr->" and "ch".
Maybe. But the notion of completion boundaries is unrelated to idle
completion, and the latter is the sole purpose of that return value.
>> With Semantic, we also have the question of alternatives. At the moment,
>> company-semantic' goes before `company-clang', so that if semantic-mode is
>> enabled, the former is used, and otherwise, the latter.
>
> 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? Would that hook addition be global, forcing
clang-completion-function to include a major-mode check (hitherto unseen
behavior in CAPF functions, AFAIK), or would it iterate over applicable
major mode hooks?
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.
Guess a simpler solution would be to keep company-clang as-is, but move
it behind company-capf.
next prev parent reply other threads:[~2014-01-18 14:13 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 [this message]
2014-01-19 2:37 ` Stefan Monnier
2014-01-19 16:44 ` Dmitry Gutov
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
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=52DA8C17.4080707@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 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).