From: Dmitry Gutov <dgutov@yandex.ru>
To: monnier@iro.umontreal.ca
Cc: emacs-devel@gnu.org
Subject: Re: /srv/bzr/emacs/elpa r395: * company.el (company-capf): Add support for `sorted' and `post-completion'.
Date: Sun, 05 May 2013 01:59:59 +0400 [thread overview]
Message-ID: <87vc6yz9r4.fsf@yandex.ru> (raw)
In-Reply-To: <E1UW5x9-0001hw-8W@vcs.savannah.gnu.org> (Stefan Monnier's message of "Sat, 27 Apr 2013 09:48:47 -0400")
Hi Stefan,
> ------------------------------------------------------------
> revno: 395
> committer: Stefan Monnier <monnier-CRDzTM1onBSWkKpYnGOUKg@public.gmane.org>
> branch nick: elpa
> timestamp: Sat 2013-04-27 09:48:47 -0400
> message:
> ;; (defun company-my-backend (command &optional arg &rest ignored)
> -;; (case command
> -;; (prefix (when (looking-back "foo\\>")
> +;; (pcase command
> +;; (`prefix (when (looking-back "foo\\>")
> ;; (match-string 0)))
> -;; (candidates (list "foobar" "foobaz" "foobarbaz"))
> -;; (meta (format "This value is named %s" arg))))
> +;; (`candidates (list "foobar" "foobaz" "foobarbaz"))
> +;; (`meta (format "This value is named %s" arg))))
Like the header in company.el says, we still try to support Emacs 22 and
23. `pcase' was only added in 23.3, I believe.
> +(defun company-capf (command &optional arg &rest _args)
...
> + (duplicates nil) ;Don't bother.
> + (no-cache t) ;FIXME: Improve!
> + (meta nil) ;FIXME: Return one-line docstring for `arg'.
> + (doc-buffer nil) ;FIXME: Return help buffer for `arg'.
> + (location nil) ;FIXME: Return (BUF . POS) or (FILE . LINENB) of
> `arg'.
> + (init nil) ;Don't bother: plenty of other ways to initialize
> the code.
a) There's no need to return nils explicitly, other backends don't.
b) Who are these FIXMEs for? I guess `meta' can be implemented by
calling `:annotation-function' (don't know if it's appropriate), but
`doc-buffer' and `location' don't have anything corresponding in
`completion-extra-properties'.
> + (require-match nil) ;This should be a property of the
> front-end!
Should it really? A smart back-end could determine if we're typing a
function call, or typing the name for a new function, and at least
override it to `never' in the latter case.
Returning `t' might indeed never be appropriate for a back-end, and some
front-ends could want to have a say in this, but I'd rather see them in
practice first.
> +(defvar company-backend)
> +
This variable is declared about ~30 lines below that. Is it appropriate
to have both declarations in the same file?
> Example:
> \(company-begin-with '\(\"foo\" \"foobar\" \"foobarbaz\"\)\)"
> + ;; FIXME: Shouldn't `company-begin-with-marker' be removed and replaced
> + ;; by a lexical variable?
It probably should, but, again, lexical-binding is not available in
Emacs < 24. ATM I'm only using it to improve some logic that uses
`boundp' in `company-elisp'.
next parent reply other threads:[~2013-05-04 21:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1UW5x9-0001hw-8W@vcs.savannah.gnu.org>
2013-05-04 21:59 ` Dmitry Gutov [this message]
2013-05-05 6:32 ` /srv/bzr/emacs/elpa r395: * company.el (company-capf): Add support for `sorted' and `post-completion' Stefan Monnier
2013-05-05 8:50 ` Dmitry Gutov
2013-05-05 10:05 ` Sebastian Wiesner
2013-05-05 10:13 ` Dmitry Gutov
2013-05-06 1:18 ` Stefan Monnier
2013-05-06 2:43 ` Dmitry Gutov
2013-05-06 3:22 ` Stefan Monnier
2013-05-09 20:35 ` 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
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=87vc6yz9r4.fsf@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).