src/Tools/VSCode/extension/README.md
changeset 66240 1a04946c41d6
parent 66237 93eac3bdf3f9
child 66390 21514c6e5e43
equal deleted inserted replaced
66239:b565a39627bb 66240:1a04946c41d6
    14   * <https://github.com/Microsoft/language-server-protocol>
    14   * <https://github.com/Microsoft/language-server-protocol>
    15 
    15 
    16 
    16 
    17 ## Screenshot
    17 ## Screenshot
    18 
    18 
    19 ![[Isabelle/VSCode]](http://isabelle.in.tum.de/repos/isabelle/raw-file/9fe05edaa351/src/Tools/VSCode/extension/isabelle_vscode.png)
    19 ![[Isabelle/VSCode]](http://isabelle.in.tum.de/repos/isabelle/raw-file/b565a39627bb/src/Tools/VSCode/extension/isabelle_vscode.png)
    20 
    20 
    21 
    21 
    22 ## Notable Features
    22 ## Notable Features
    23 
    23 
    24   * Static syntax tables for Isabelle `.thy` and `.ML` files.
    24   * Static syntax tables for Isabelle `.thy` and `.ML` files.
    26   * Implicit dependency management of sources, subject to changes of theory
    26   * Implicit dependency management of sources, subject to changes of theory
    27   files within the editor, as well as external file-system events.
    27   files within the editor, as well as external file-system events.
    28 
    28 
    29   * Implicit formal checking of theory files, using the *cursor position* of the
    29   * Implicit formal checking of theory files, using the *cursor position* of the
    30   active editor panel as indication for relevant spots.
    30   active editor panel as indication for relevant spots.
       
    31 
       
    32   * Text overview lane with formal status of prover commands (unprocessed,
       
    33   running, error, warning).
    31 
    34 
    32   * Prover messages within the source text (errors/warnings and information
    35   * Prover messages within the source text (errors/warnings and information
    33   messages).
    36   messages).
    34 
    37 
    35   * Semantic text decorations: colors for free/bound variables, inferred types
    38   * Semantic text decorations: colors for free/bound variables, inferred types
    53   regular completion dialog.
    56   regular completion dialog.
    54 
    57 
    55 
    58 
    56 ## Requirements
    59 ## Requirements
    57 
    60 
    58 ### Isabelle Installation
    61 ### Isabelle/VSCode Installation
    59 
    62 
    60   * Download a recent Isabelle development snapshot from
    63   * Download a recent Isabelle development snapshot from
    61   <http://isabelle.in.tum.de/devel/release_snapshot> or the particular version
    64   <http://isabelle.in.tum.de/devel/release_snapshot> or the particular version
    62   <http://www4.in.tum.de/~wenzelm/Isabelle_01-Jul-2017>
    65   <http://www4.in.tum.de/~wenzelm/Isabelle_01-Jul-2017>
    63 
    66 
    66 
    69 
    67   * Download and install VSCode from <https://code.visualstudio.com>
    70   * Download and install VSCode from <https://code.visualstudio.com>
    68 
    71 
    69   * Open the VSCode *Extensions* view and install the following:
    72   * Open the VSCode *Extensions* view and install the following:
    70 
    73 
    71       + *Isabelle* (e.g. version 0.20).
    74       + *Isabelle* (e.g. version 0.22).
    72 
    75 
    73       + *Prettify Symbols Mode* (important for display of Isabelle symbols).
    76       + *Prettify Symbols Mode* (important for display of Isabelle symbols).
    74 
    77 
    75       + *bibtexLanguage* (optional): it gives `.bib` a formal status, thus
    78       + *bibtexLanguage* (optional): it gives `.bib` a formal status, thus
    76         `@{cite}` antiquotations become active for completion and hyperlinks.
    79         `@{cite}` antiquotations become active for completion and hyperlinks.
   104 
   107 
   105   * Restart the VSCode application to ensure that all extensions are properly
   108   * Restart the VSCode application to ensure that all extensions are properly
   106   initialized and user settings are updated. Afterwards VSCode should know about
   109   initialized and user settings are updated. Afterwards VSCode should know about
   107   `.thy` files (Isabelle theories) and `.ML` files (Isabelle/ML modules).
   110   `.thy` files (Isabelle theories) and `.ML` files (Isabelle/ML modules).
   108 
   111 
   109   The Isabelle extension is initialized when the first Isabelle is opened. It
   112   The Isabelle extension is initialized when the first Isabelle file is opened.
   110   requires a few seconds to start up: a small popup window says *Welcome to
   113   It requires a few seconds to start up: a small popup window eventually says
   111   Isabelle*. If that fails, there might be something wrong with `isabelle.home`
   114   *"Welcome to Isabelle ..."*. If that fails, there might be something wrong
   112   from above, or the Isabelle distribution does not fit to the version of the
   115   with `isabelle.home` from above, or the Isabelle distribution does not fit to
   113   VSCode extension from the Marketplace.
   116   the version of the VSCode extension from the Marketplace.
   114 
   117 
   115 
   118 
   116 ### Support for Isabelle symbols
   119 ### Support for Isabelle symbols
   117 
   120 
   118 Isabelle symbols like `\<forall>` are rendered using the extension *Prettify
   121 Isabelle symbols like `\<forall>` are rendered using the extension *Prettify
   181 
   184 
   182   * Lack of pretty-printing (logical line breaks) according to window and font
   185   * Lack of pretty-printing (logical line breaks) according to window and font
   183   dimensions.
   186   dimensions.
   184 
   187 
   185   * Lack of GUI panels for Sledgehammer, Query operations etc.
   188   * Lack of GUI panels for Sledgehammer, Query operations etc.
       
   189 
       
   190   * Big theory files may cause problems to the VSCode rendering engine, since
       
   191   messages and text decorations are applied to the text as a whole (cf. the
       
   192   minimap view).