[isabelle-dev] NEWS: improved syntactic and semantic completion mechanism

Lars Noschinski noschinl at in.tum.de
Tue Apr 15 13:20:46 CEST 2014

On 31.03.2014 22:04, Makarius wrote:

I played a bit around with your new completion setup.
>   - Support for semantic completion based on failed name space lookup.
>     The error produced by the prover contains information about
>     alternative names that are accessible in a particular position.
>     This may be used with explicit completion (C+b) or implicit
>     completion after some delay.
Where C+b is bound to "Complete Isabelle text", I assume (following the
repository versions, it was still "Complete Word" for me).

>   - Semantic completions may get extended by appending a suffix of
>     underscores to an already recognized name, e.g. "foo_" to complete
>     "foo" or "foobar" if these are known in the context.  The special
>     identifier "__" serves as a wild-card in this respect: it
>     completes to the full collection of names from the name space
>     (truncated according to the system option "completion_limit"
I would expect an _explicit_ completion after "foo" to offer both "foo"
and "foobar". After all, I am apparently not satisfied with the current
completion. I also noticed that "__" is marked as completable, but you
need to request explicit completion -- is this intended?
>   - Syntax completion of the editor and semantic completion of the
>     prover are merged.  Since the latter requires a full round-trip of
>     document update to arrive, the default for option
>     jedit_completion_delay has been changed to 0.5s to improve the
>     user experience.
With immediate completion, this seems somewhat usable for me (but I
still need test it more -- for most of my current work I am bound to the
release version). Without immediate completion, I always have to insert
artificial pauses for symbol completion, which is very annoying.

What are the drawbacks of a 0s delay? The one I could observe is that I
need to requeste fact completion explicitly, which is okay-ish for me --
I often need to think about the right facts anyway. An alternative would
be an incremental filling of the completion popup. I think Eclipse does

Personally, I like C+SPACE better than C+b as an explicit completion key

I encountered some behaviour which I found confusing (5b171d4e1d6e):

theory Scratch imports Main begin

notepad begin

If I now enter an "s" after the from, a popup listing possible facts
appears (which is expected). Close this popup (for example, by pressing
"Esc"). Now press C+b to open it again. The first suggestions is now
"sledgehammer (keyword)", which was absent before.

 -- Lars

More information about the isabelle-dev mailing list