src/Doc/JEdit/JEdit.thy
changeset 57332 da630c4fd92b
parent 57331 1a3daaaa25c2
child 57333 d58b7f7d81db
--- a/src/Doc/JEdit/JEdit.thy	Mon Jun 16 13:06:31 2014 +0200
+++ b/src/Doc/JEdit/JEdit.thy	Mon Jun 16 14:04:48 2014 +0200
@@ -1238,24 +1238,25 @@
 subsection {* Input events \label{sec:completion-input} *}
 
 text {*
-  FIXME
+  Completion is triggered by certain events produced by the user, with
+  optional delay after keyboard input according to @{system_option
+  jedit_completion_delay}.
 
-  \paragraph{Explicit completion} is triggered by the keyboard
-  shortcut @{verbatim "C+b"} (action @{action "isabelle.complete"}).
-  This overrides the original jEdit binding for action @{verbatim
-  "complete-word"}, but the latter is used as fall-back for
-  non-Isabelle edit modes.  It is also possible to restore the
+  \begin{description}
+
+  \item[Explicit completion] via action @{action_ref "isabelle.complete"}
+  with keyboard shortcut @{verbatim "C+b"}. This overrides the shortcut for
+  @{verbatim "complete-word"} in jEdit. It is also possible to restore the
   original jEdit keyboard mapping of @{verbatim "complete-word"} via
-  \emph{Global Options / Shortcuts}.
-
-  Replacement text is inserted immediately into the buffer, unless
-  ambiguous results demand an explicit popup.
+  \emph{Global Options / Shortcuts}, and invent a different one for @{action
+  "isabelle.complete"}.
 
-  \paragraph{Implicit completion} is triggered by regular keyboard input
-  events during of the editing process in the main jEdit text area (and a few
-  additional text fields like the ones of the the \emph{Query} panel, see
-  \secref{sec:query}). Implicit completion depends on on further
-  side-conditions:
+  \item[Explicit spell-checker completion] via @{action_ref
+  "isabelle.complete-word"}, which is exposed in the jEdit context menu, if
+  the mouse points to a word that the spell-checker can complete.
+
+  \item[Implicit completion] via regular keyboard input of the editor. This
+  depends on further side-conditions:
 
   \begin{enumerate}
 
@@ -1266,28 +1267,23 @@
   characters in the text.
 
   \item The system option @{system_option_ref jedit_completion_delay}
-  determines an additional delay (0.5 by default), before opening a
-  completion popup.
+  determines an additional delay (0.5 by default), before opening a completion
+  popup.  The delay gives the prover a chance to provide semantic completion
+  information, notably the context (\secref{sec:completion-context}).
 
   \item The system option @{system_option_ref jedit_completion_immediate}
-  (disabled by default) controls whether replacement text should be
-  inserted immediately without popup.  This is restricted to Isabelle
-  symbols and their abbreviations (\secref{sec:symbols}) --- plain
-  keywords always demand a popup for clarity.
+  (disabled by default) controls whether replacement text should be inserted
+  immediately without popup, regardless of @{system_option
+  jedit_completion_delay}. This aggressive mode of completion is restricted to
+  Isabelle symbols and their abbreviations (\secref{sec:symbols}).
 
   \item Completion of symbol abbreviations with only one relevant
   character in the text always enforces an explicit popup,
-  independently of @{system_option_ref jedit_completion_immediate}.
+  regardless of @{system_option_ref jedit_completion_immediate}.
 
   \end{enumerate}
 
-  In contrast, more aggressive completion works via @{system_option
-  jedit_completion_delay}~@{verbatim "= 0.0"} and @{system_option
-  jedit_completion_immediate}~@{verbatim "= true"}.  Thus the editing
-  process becomes dependent on the system guessing correctly what the
-  user had in mind.  It requires some practice (and study of the
-  symbol abbreviation tables) to become productive in this advanced
-  mode.
+  \end{description}
 *}
 
 
@@ -1339,9 +1335,37 @@
 
 text {*
   This is a summary of Isabelle/Scala system options that are relevant for
-  completion.
+  completion. They may be configured in \emph{Plugin Options / Isabelle /
+  General} as usual.
+
+  \begin{itemize}
+
+  \item @{system_option_def completion_limit} specifies the limit of
+  name-space entries exposed in semantic completion by the prover.
+
+  \item @{system_option_def jedit_completion} guards implicit completion via
+  regular jEdit keyboard input events (\secref{sec:completion-input}).
 
-  FIXME
+  \item @{system_option_def jedit_completion_context} specifies whether the
+  language context provided by the prover should be used. Disabling that
+  option makes completion less ``semantic''. Note that incomplete or broken
+  input may cause some disagreement of the prover and the user about the
+  intended language context.
+
+  \item @{system_option_def jedit_completion_delay} FIXME
+
+  \item @{system_option_def jedit_completion_immediate} specifies whether
+
+  \item @{system_option_def jedit_completion_path_ignore} specifies ``glob''
+  patterns to ignore in file-system path completion (separated by colons).
+
+  \item @{system_option_def spell_checker} FIXME
+
+  \item @{system_option_def spell_checker_dictionary} FIXME
+
+  \item @{system_option_def spell_checker_elements} FIXME
+
+  \end{itemize}
 *}