75338
|
1 |
# Isabelle/VSCode Prover IDE
|
|
2 |
|
|
3 |
## General notes
|
64757
|
4 |
|
75338
|
5 |
This is the Isabelle/VSCode extension to connect VSCodium to
|
|
6 |
Isabelle/PIDE. The application is invoked via `isabelle vscode` on the
|
|
7 |
command-line. It takes care about configuring the extension and user
|
|
8 |
settings.
|
66236
|
9 |
|
75338
|
10 |
The implementation is centered around the VSCode Language Server
|
|
11 |
Protocol (LSP), but there are many add-ons that are specific to
|
|
12 |
Isabelle/PIDE. Moreover, there are important patches to the VSCodium
|
75347
|
13 |
code-base itself, e.g. to support the UTF-8-Isabelle encoding for
|
75338
|
14 |
mathematical symbols and to incorporate the corresponding Isabelle
|
|
15 |
fonts. It is unlikely that this extension will with regular VSCode nor
|
|
16 |
with any other LSP-based editor.
|
64757
|
17 |
|
75338
|
18 |
Isabelle/VSCode works best when opening an Isabelle project directory
|
|
19 |
as a "workspace", with explorer access to the sources. Afterwards it
|
|
20 |
is possible to edit `.thy` and `.ML` files with semantic checking by
|
|
21 |
the prover in the background, similar to Isabelle/jEdit. There is also
|
|
22 |
support for other file formats, e.g. `bib` for bibliographic
|
|
23 |
databases, which may be combined with a regular VSCode extension for
|
|
24 |
LaTeX/BibTeX.
|
66227
|
25 |
|
64605
|
26 |
|
75338
|
27 |
## Known limitations of Isabelle/VSCode
|
66236
|
28 |
|
66237
|
29 |
* Lack of formal editor perspective in VSCode: only the cursor position is
|
|
30 |
used (with some surrounding lines of text).
|
66236
|
31 |
|
66237
|
32 |
* Lack of pretty-printing (logical line breaks) according to window and font
|
66236
|
33 |
dimensions.
|
|
34 |
|
66240
|
35 |
* Big theory files may cause problems to the VSCode rendering engine, since
|
|
36 |
messages and text decorations are applied to the text as a whole (cf. the
|
|
37 |
minimap view).
|
75338
|
38 |
|
|
39 |
* Overall lack of features and refinements compared to Isabelle/jEdit.
|