[isabelle-dev] NEWS: Improved completion based on context information

Makarius makarius at sketis.net
Wed Feb 26 17:50:56 CET 2014


On Fri, 21 Feb 2014, Makarius wrote:

> * Improved completion based

The next round of tuning and improvements is Isabelle/96ddf9bf12ac. Some 
general notes how this works:

   * In certain situations the prover produces semantic completion of a
     list of names (from the formal name space).  If this is available it
     takes precedence over anything else, but it requires a full round-trip
     through PIDE document processing to become available.  (I am still
     working on the fact name space problem.)

   * Otherwise, there is a language context provided by the outer parsers
     or other syntax layers.  This information is used for syntactic
     completion: keywords, symbols, antiquotations, depending on the
     language specification (see also ~~/src/Pure/PIDE/markup.ML
     language_XYZ).  Lack of language context markup means "outer syntax"
     as before.  ML files have their own outer language context, in
     contrast to inner syntax of ML comments and strings.

   * A blue frame is painted over an active completion range (popup
     visible), or a possible completion.  In the latter case, explicit
     completion via C+b (jEdit action via menu etc.) takes the available
     information to insert into the buffer, or produce a popup.

I've made two or three rounds of testing with the rather aggressive 
options:

    completion_delay = 0.0
    completion_immediate = true

The "feel" of it is quite good so far, but their might be snags and 
confusing effects remaining.  This is an interactive computer game, after 
all.

Unexpected completion (or lack thereof) might be a cause of the language 
context (or lack thereof).  The C-hover-mouse idiom reveals tooltip 
information of "language: NAME" and a grey region behind it.


Any further observations by other early adopters of this important 
mechanism?


 	Makarius



More information about the isabelle-dev mailing list