From: Alan Mackenzie <acm@muc.de>
To: Nikolaj Schumacher <me@nschum.de>
Cc: help-gnu-emacs@gnu.org, Richard Riley <rileyrgdev@googlemail.com>
Subject: Re: company-mode help
Date: Mon, 20 Apr 2009 21:38:26 +0000 [thread overview]
Message-ID: <20090420213825.GA3965@muc.de> (raw)
In-Reply-To: <m2skk4alue.fsf@nschum.de>
'ten Abend, Nikolaj!
On Sun, Apr 19, 2009 at 02:07:05PM +0200, Nikolaj Schumacher wrote:
> Richard Riley <rileyrgdev@googlemail.com> wrote:
> > Could someone help me with company-mode please. I cant find much
> > documentation on how to use it and am not sure if "(company-mode)"
> > is sufficient. I understand I can call "company-mode" at any time,
> > but is there no "global-company-mode" type thing or utility function
> > to turn it on for common programme language types?
> I've added a global-company-mode in 0.4.1.
> > too), but do I have to do something special for it to complete
> > structure members in C/C++?
> The reason for this is that the structure member (after the -> or .)
> is considered a new symbol by Emacs, making it shorter than
> `company-minimum-prefix-length'.
> For 0.4.1, a workaround could be an electric command:
Please note, WORKAROUND!!!
> (defun company-electric-dot ()
> "Insert a dot and start completion, unless in a string or comment."
> (interactive)
> (insert-char ?. 1)
> (unless (company-in-string-or-comment)
> (company-auto-begin)))
> (defun company-electric-greater-than ()
> "Insert a dot and start completion, unless in a string or comment."
> (interactive)
> (insert-char ?> 1)
> (and (eq (char-before (1- (point))) ?-)
> (not (company-in-string-or-comment))
> (company-auto-begin)))
> (define-key c-mode-base-map "." 'company-electric-dot)
> (define-key c-mode-base-map ">" 'company-electric-greater-than)
> (define-key c++-mode-map ">" 'company-electric-greater-than)
Please don't put this last into C or (especially) C++ mode. > is bound
to `c-electric-lt-gt', and as well as triggering electric indentation,
does essential things wrt C++ templates. It would probably cause
screw-ups, particularly as < would still be bound to `c-electric-lt-gt'.
OK, I know it's only meant as a temporary thing. But couldn't you do it
as a defadvice around `c-electric-lt-gt'?
>
> I'll figure out a more universal solution.
;-)
> regards,
> Nikolaj Schumacher
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2009-04-20 21:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-19 0:52 company-mode help Richard Riley
2009-04-19 2:15 ` Andy Stewart
[not found] ` <mailman.5664.1240110508.31690.help-gnu-emacs@gnu.org>
2009-04-19 9:18 ` Richard Riley
2009-04-19 12:07 ` Nikolaj Schumacher
2009-04-20 21:38 ` Alan Mackenzie [this message]
[not found] ` <mailman.5677.1240142832.31690.help-gnu-emacs@gnu.org>
2009-04-19 13:09 ` Richard Riley
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=20090420213825.GA3965@muc.de \
--to=acm@muc.de \
--cc=help-gnu-emacs@gnu.org \
--cc=me@nschum.de \
--cc=rileyrgdev@googlemail.com \
/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.
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).