help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: company-mode help


From: Alan Mackenzie
Subject: Re: company-mode help
Date: Mon, 20 Apr 2009 21:38:26 +0000
User-agent: Mutt/1.5.9i

'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).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]