Subject: Re: bug#18265: 24.3.92; lisp-completion-at-point should return nil in comments, unless after `

From: Dmitry Gutov <[email-masked]>
Date: Sat, 16 Aug 2014 05:02:21 +0400

On 08/15/2014 04:33 PM, Stefan Monnier wrote:

> As it currently stands, there's no question that your original request
> is right (the one stated in the "Subject:"), so feel free to fix it.

Ok thanks, I will. I've been holding off on committing to trunk until I 
start using it again, but maybe it's time.

> I'm just thinking of how we could also satisfy those who might want to
> complete code-like things in comments, without having to resort
> to customization.

I've suggested one approach (in addition to seeing if there's a 
backquote before the current prefix): look if the current text is 
specially indented and separated with empty lines (though this is a very 
imprecise heurystic).

And for the cases when it's not, we can add a new completion function at 
the end of the default c-a-p-f value, which would work like 
`company-dabbrev' does. Or like `company-dabbrev-code', in `prog-mode' 
descendants. `company-capf' would ignore it, for the time being, like it 
does with `tags-completion-at-point-function' currently.

You've called ":exclusive no" a hack yourself before, and 
:merge-with-rest looks not much different to me, going counter to the 
c-a-p-f interface.

It raises questions, like if `lisp-completion-at-point' would like to be 
merged with the rest, will it be merged with all of them? Won't the 
other completion functions get a choice in the matter? What if one of 
them is smart enough to provide all completions for the current context, 
by itself?

And anyway, it doesn't seem to help with the distinction between manual 
and idle completion, unless you'd prefer to only activate the 
:merge-with-rest logic in the case of manual invocation. Which seems 
orthogonal to the property's purpose.