author | wenzelm |
Wed, 02 Mar 2022 22:33:49 +0100 | |
changeset 75191 | fbff7bfd5802 |
parent 75189 | f304a2a5080f |
child 75201 | 8f6b8a46f54c |
permissions | -rw-r--r-- |
64605 | 1 |
'use strict'; |
2 |
||
75172 | 3 |
import * as platform from './platform' |
65968 | 4 |
import * as library from './library' |
75191 | 5 |
import * as file from './file' |
75181 | 6 |
import * as vscode_lib from './vscode_lib' |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
7 |
import * as decorations from './decorations' |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
8 |
import * as preview_panel from './preview_panel' |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
9 |
import * as protocol from './protocol' |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
10 |
import * as state_panel from './state_panel' |
66216 | 11 |
import { Uri, TextEditor, ViewColumn, Selection, Position, ExtensionContext, workspace, window, |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
12 |
commands, ProgressLocation } from 'vscode' |
75134
c04ccea8bdd2
update VSCode plugin dependencies;
Fabian Huch <huch@in.tum.de>
parents:
75129
diff
changeset
|
13 |
import { LanguageClient, LanguageClientOptions, ServerOptions } from 'vscode-languageclient/node' |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
14 |
import { Isabelle_Workspace } from './isabelle_filesystem/isabelle_workspace' |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
15 |
import { Output_View_Provider } from './output_view' |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
16 |
import { register_script_decorations } from './script_decorations' |
64605 | 17 |
|
18 |
||
65201 | 19 |
let last_caret_update: protocol.Caret_Update = {} |
65180 | 20 |
|
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
21 |
export async function activate(context: ExtensionContext) |
64605 | 22 |
{ |
65182 | 23 |
/* server */ |
24 |
||
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
25 |
try { |
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
26 |
const isabelle_home = library.getenv_strict("ISABELLE_HOME") |
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
27 |
|
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
28 |
const workspace_dir = await Isabelle_Workspace.register(context) |
75127
1fed80019bff
more robust startup wrt. VSCode workspace (by Fabian Huch);
wenzelm
parents:
75126
diff
changeset
|
29 |
const roots = workspace.workspaceFile === undefined ? await workspace.findFiles("{ROOT,ROOTS}") : [] |
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
30 |
|
65168 | 31 |
const isabelle_tool = isabelle_home + "/bin/isabelle" |
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
32 |
const isabelle_args = |
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
33 |
["-o", "vscode_unicode_symbols", "-o", "vscode_pide_extensions"] |
75181 | 34 |
.concat(vscode_lib.get_configuration<Array<string>>("args")) |
75191 | 35 |
.concat(roots.length > 0 && workspace_dir ? ["-D", file.standard_path(workspace_dir)] : []) |
65167 | 36 |
|
65168 | 37 |
const server_options: ServerOptions = |
75172 | 38 |
platform.is_windows() ? |
75191 | 39 |
{ command: file.cygwin_bash(), |
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
40 |
args: ["-l", isabelle_tool, "vscode_server"].concat(isabelle_args) } : |
64755 | 41 |
{ command: isabelle_tool, |
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
42 |
args: ["vscode_server"].concat(isabelle_args) } |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
43 |
|
65983 | 44 |
const language_client_options: LanguageClientOptions = { |
69322
ce6d43af5bcb
more robust (see https://code.visualstudio.com/docs/extensionAPI/document-selectors);
wenzelm
parents:
66395
diff
changeset
|
45 |
documentSelector: [ |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
46 |
{ language: "isabelle", scheme: Isabelle_Workspace.scheme }, |
69322
ce6d43af5bcb
more robust (see https://code.visualstudio.com/docs/extensionAPI/document-selectors);
wenzelm
parents:
66395
diff
changeset
|
47 |
{ language: "isabelle-ml", scheme: "file" }, |
ce6d43af5bcb
more robust (see https://code.visualstudio.com/docs/extensionAPI/document-selectors);
wenzelm
parents:
66395
diff
changeset
|
48 |
{ language: "bibtex", scheme: "file" } |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
49 |
], |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
50 |
uriConverters: { |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
51 |
code2Protocol: uri => Isabelle_Workspace.get_file(uri).toString(), |
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
52 |
protocol2Code: value => Isabelle_Workspace.get_isabelle(Uri.parse(value)) |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
53 |
} |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
54 |
} |
64605 | 55 |
|
65983 | 56 |
const language_client = |
57 |
new LanguageClient("Isabelle", server_options, language_client_options, false) |
|
65094 | 58 |
|
65182 | 59 |
|
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
60 |
window.withProgress({location: ProgressLocation.Notification, cancellable: false}, |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
61 |
async (progress) => |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
62 |
{ |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
63 |
progress.report({ |
75182 | 64 |
message: "Waiting for Isabelle language server..." |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
65 |
}) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
66 |
await language_client.onReady() |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
67 |
}) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
68 |
|
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
69 |
|
65201 | 70 |
/* decorations */ |
71 |
||
66097 | 72 |
decorations.setup(context) |
65975 | 73 |
context.subscriptions.push( |
66097 | 74 |
workspace.onDidChangeConfiguration(() => decorations.setup(context)), |
65975 | 75 |
workspace.onDidChangeTextDocument(event => decorations.touch_document(event.document)), |
76 |
window.onDidChangeActiveTextEditor(decorations.update_editor), |
|
77 |
workspace.onDidCloseTextDocument(decorations.close_document)) |
|
65201 | 78 |
|
65983 | 79 |
language_client.onReady().then(() => |
80 |
language_client.onNotification(protocol.decoration_type, decorations.apply_decoration)) |
|
65201 | 81 |
|
82 |
||
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
83 |
/* super-/subscript decorations */ |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
84 |
|
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
85 |
register_script_decorations(context) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
86 |
|
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
87 |
|
65978 | 88 |
/* caret handling */ |
65191
4c9c83311cad
dynamic output, depending on caret focus (see also Tools/jEdit/src/output_dockable.scala);
wenzelm
parents:
65189
diff
changeset
|
89 |
|
65189 | 90 |
function update_caret() |
91 |
{ |
|
65969 | 92 |
const editor = window.activeTextEditor |
65201 | 93 |
let caret_update: protocol.Caret_Update = {} |
65189 | 94 |
if (editor) { |
95 |
const uri = editor.document.uri |
|
96 |
const cursor = editor.selection.active |
|
75181 | 97 |
if (vscode_lib.is_file(uri) && cursor) |
65189 | 98 |
caret_update = { uri: uri.toString(), line: cursor.line, character: cursor.character } |
99 |
} |
|
100 |
if (last_caret_update !== caret_update) { |
|
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
101 |
if (caret_update.uri) { |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
102 |
caret_update.uri = Isabelle_Workspace.get_file(Uri.parse(caret_update.uri)).toString() |
65983 | 103 |
language_client.sendNotification(protocol.caret_update_type, caret_update) |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
104 |
} |
65189 | 105 |
last_caret_update = caret_update |
106 |
} |
|
107 |
} |
|
108 |
||
66215
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
109 |
function goto_file(caret_update: protocol.Caret_Update) |
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
110 |
{ |
66216 | 111 |
function move_cursor(editor: TextEditor) |
112 |
{ |
|
113 |
const pos = new Position(caret_update.line || 0, caret_update.character || 0) |
|
114 |
editor.selections = [new Selection(pos, pos)] |
|
115 |
} |
|
116 |
||
66215
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
117 |
if (caret_update.uri) { |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
118 |
caret_update.uri = Isabelle_Workspace.get_isabelle(Uri.parse(caret_update.uri)).toString() |
66215
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
119 |
workspace.openTextDocument(Uri.parse(caret_update.uri)).then(document => |
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
120 |
{ |
75181 | 121 |
const editor = vscode_lib.find_file_editor(document.uri) |
66216 | 122 |
const column = editor ? editor.viewColumn : ViewColumn.One |
123 |
window.showTextDocument(document, column, !caret_update.focus).then(move_cursor) |
|
66215
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
124 |
}) |
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
125 |
} |
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
126 |
} |
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
127 |
|
65983 | 128 |
language_client.onReady().then(() => |
65189 | 129 |
{ |
65975 | 130 |
context.subscriptions.push( |
131 |
window.onDidChangeActiveTextEditor(_ => update_caret()), |
|
132 |
window.onDidChangeTextEditorSelection(_ => update_caret())) |
|
65189 | 133 |
update_caret() |
66215
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
134 |
|
9a8b6b86350c
proper hyperlink_command, notably for locate_query;
wenzelm
parents:
66211
diff
changeset
|
135 |
language_client.onNotification(protocol.caret_update_type, goto_file) |
65189 | 136 |
}) |
137 |
||
138 |
||
65978 | 139 |
/* dynamic output */ |
140 |
||
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
141 |
const provider = new Output_View_Provider(context.extensionUri) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
142 |
context.subscriptions.push( |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
143 |
window.registerWebviewViewProvider(Output_View_Provider.view_type, provider)) |
65978 | 144 |
|
65983 | 145 |
language_client.onReady().then(() => |
65978 | 146 |
{ |
65983 | 147 |
language_client.onNotification(protocol.dynamic_output_type, |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
148 |
params => provider.update_content(params.content)) |
65978 | 149 |
}) |
150 |
||
151 |
||
66098 | 152 |
/* state panel */ |
66096 | 153 |
|
154 |
context.subscriptions.push( |
|
71476
ecefde4f9103
proper message passing -- discontinued obsolete auxiliary commands;
wenzelm
parents:
71475
diff
changeset
|
155 |
commands.registerCommand("isabelle.state", uri => state_panel.init(uri))) |
66096 | 156 |
|
66098 | 157 |
language_client.onReady().then(() => state_panel.setup(context, language_client)) |
66096 | 158 |
|
159 |
||
66098 | 160 |
/* preview panel */ |
65958 | 161 |
|
65984
8e6a833da7db
register commands earlier, before prover startup;
wenzelm
parents:
65983
diff
changeset
|
162 |
context.subscriptions.push( |
66098 | 163 |
commands.registerCommand("isabelle.preview", uri => preview_panel.request(uri, false)), |
71479
6aa2dc263912
less ambitious preview: discontinued preview-update / preview-source which did not work on the spot via WebviewPanel;
wenzelm
parents:
71476
diff
changeset
|
164 |
commands.registerCommand("isabelle.preview-split", uri => preview_panel.request(uri, true))) |
65984
8e6a833da7db
register commands earlier, before prover startup;
wenzelm
parents:
65983
diff
changeset
|
165 |
|
66098 | 166 |
language_client.onReady().then(() => preview_panel.setup(context, language_client)) |
65958 | 167 |
|
168 |
||
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
169 |
/* Isabelle symbols and abbreviations */ |
66052
39eb61b1fa51
provide information about Isabelle symbols within VSCode;
wenzelm
parents:
65987
diff
changeset
|
170 |
|
39eb61b1fa51
provide information about Isabelle symbols within VSCode;
wenzelm
parents:
65987
diff
changeset
|
171 |
language_client.onReady().then(() => |
39eb61b1fa51
provide information about Isabelle symbols within VSCode;
wenzelm
parents:
65987
diff
changeset
|
172 |
{ |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
173 |
language_client.onNotification(protocol.session_theories_type, |
75136 | 174 |
async ({entries}) => await Isabelle_Workspace.update_sessions(entries)) |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
175 |
|
66052
39eb61b1fa51
provide information about Isabelle symbols within VSCode;
wenzelm
parents:
65987
diff
changeset
|
176 |
language_client.onNotification(protocol.symbols_type, |
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
177 |
params => |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
178 |
{ |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
179 |
//register_abbreviations(params.entries, context) |
75135
8dd7f0130266
tuned vscode extension: split isabelle fsp into workspace and mapping;
Fabian Huch <huch@in.tum.de>
parents:
75134
diff
changeset
|
180 |
Isabelle_Workspace.update_symbol_encoder(params.entries) |
66052
39eb61b1fa51
provide information about Isabelle symbols within VSCode;
wenzelm
parents:
65987
diff
changeset
|
181 |
|
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
182 |
// request theories to load in isabelle file system |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
183 |
// after a valid symbol encoder is loaded |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
184 |
language_client.sendNotification(protocol.session_theories_request_type) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
185 |
}) |
66060
b2bfbefd354f
symbol completion that bypasses the LS protocol, and thus observes the range properly;
wenzelm
parents:
66052
diff
changeset
|
186 |
|
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
187 |
language_client.sendNotification(protocol.symbols_request_type) |
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
188 |
|
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
189 |
}) |
66060
b2bfbefd354f
symbol completion that bypasses the LS protocol, and thus observes the range properly;
wenzelm
parents:
66052
diff
changeset
|
190 |
|
66138 | 191 |
|
192 |
/* spell checker */ |
|
193 |
||
194 |
language_client.onReady().then(() => |
|
195 |
{ |
|
196 |
context.subscriptions.push( |
|
197 |
commands.registerCommand("isabelle.include-word", uri => |
|
198 |
language_client.sendNotification(protocol.include_word_type)), |
|
199 |
commands.registerCommand("isabelle.include-word-permanently", uri => |
|
200 |
language_client.sendNotification(protocol.include_word_permanently_type)), |
|
201 |
commands.registerCommand("isabelle.exclude-word", uri => |
|
202 |
language_client.sendNotification(protocol.exclude_word_type)), |
|
203 |
commands.registerCommand("isabelle.exclude-word-permanently", uri => |
|
204 |
language_client.sendNotification(protocol.exclude_word_permanently_type)), |
|
205 |
commands.registerCommand("isabelle.reset-words", uri => |
|
206 |
language_client.sendNotification(protocol.reset_words_type))) |
|
207 |
}) |
|
208 |
||
209 |
||
65182 | 210 |
/* start server */ |
211 |
||
65986 | 212 |
context.subscriptions.push(language_client.start()) |
65094 | 213 |
} |
75129
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
214 |
catch (exn) { |
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
215 |
window.showErrorMessage(exn) |
49f9fa8f9601
refer to Isabelle settings via environment, which is provided via "isabelle vscode";
wenzelm
parents:
75127
diff
changeset
|
216 |
} |
64605 | 217 |
} |
218 |
||
75126
da1108a6d249
various improvements to Isabelle/VSCode (by Denis Paluca and Fabian Huch);
wenzelm
parents:
71479
diff
changeset
|
219 |
|
64605 | 220 |
export function deactivate() { } |