[isabelle-dev] Sidekick completion in Isabelle/jEdit

Makarius makarius at sketis.net
Fri Apr 20 14:29:57 CEST 2012


On Wed, 18 Apr 2012, Christian Sternagel wrote:

> Concerning convenience of input and automatic replacement:
>
> I would not use automatic replacement at all, since it is at least as 
> often a problem as it is of help (e.g., ML code inside theories "=>" in 
> case statements, the mentioned "~~/" for imports, and I am sure that 
> there are many other examples [LaTeX inside @text blocks]).

I am also a member of the club "explicit is better than implicit". It is a 
matter of fine tuning what that means exactly here.


> Still it is very convenient if one can just type and does not have to 
> click (or browse with the keyboard) any popups.
>
> In jEdit you can do the following (see also 
> https://lists.cam.ac.uk/mailman/htdig/cl-isabelle-users/2011-November/msg00089.html

I have made some experiments based on these explanations, see 
Isabelle/8bdfacbc2fa2

The relevant properties are:

sidekick.auto-complete-popup-get-focus=true
sidekick.complete-instant.toggle=false
sidekick.complete-popup.accept-characters=\\n\\t
sidekick.complete-popup.insert-characters=

This already makes quite some improvement over the naive earlier defaults, 
i.e. it requires 0 or 1 extra keystrokes to get the intended result in 
most situations.

What is interesting is that the GUI focus for the popup does not prevent 
from typing regular characters in the text, so even with the convenient 
default of true here, it is quite non-intrusive.  What I still did not get 
is the purpose of \t, since the popup seems to absorb that key without any 
effect.

Likewise, some other important key sequences are absorbed without any 
immediate effect, notably control sequences such as C-d or A-d to delete 
things in the text.  Maybe that is not intended, and needs some refinement 
of Sidekick itself.  OO was invented for such patching of existing 
implementations, so one could try without patching the Sidekick sources. 
I won't start anything like that before the release, though.


 	Makarius



More information about the isabelle-dev mailing list