MCPcopy Create free account
hub / github.com/driangle/taskmd / activate

Function activate

apps/vscode/src/extension.ts:12–54  ·  view source on GitHub ↗
(context: vscode.ExtensionContext)

Source from the content-addressed store, hash-verified

10let diagnosticCollection: vscode.DiagnosticCollection;
11
12export function activate(context: vscode.ExtensionContext): void {
13 diagnosticCollection = vscode.languages.createDiagnosticCollection(DIAGNOSTIC_SOURCE);
14 context.subscriptions.push(diagnosticCollection);
15
16 // Validate on open
17 context.subscriptions.push(
18 vscode.workspace.onDidOpenTextDocument((doc) => validateDocument(doc))
19 );
20
21 // Validate on change
22 context.subscriptions.push(
23 vscode.workspace.onDidChangeTextDocument((e) => validateDocument(e.document))
24 );
25
26 // Clear on close
27 context.subscriptions.push(
28 vscode.workspace.onDidCloseTextDocument((doc) => {
29 diagnosticCollection.delete(doc.uri);
30 })
31 );
32
33 // Register completion provider
34 const completionProvider = new TaskmdCompletionProvider();
35 context.subscriptions.push(
36 vscode.languages.registerCompletionItemProvider(
37 { language: "markdown", scheme: "file" },
38 completionProvider,
39 ":", "-", "[", '"'
40 )
41 );
42
43 // Watch for task file changes to invalidate the task ID cache
44 const watcher = vscode.workspace.createFileSystemWatcher("**/*.md");
45 watcher.onDidCreate(() => completionProvider.invalidateTaskCache());
46 watcher.onDidDelete(() => completionProvider.invalidateTaskCache());
47 watcher.onDidChange(() => completionProvider.invalidateTaskCache());
48 context.subscriptions.push(watcher);
49
50 // Validate already-open documents
51 for (const doc of vscode.workspace.textDocuments) {
52 validateDocument(doc);
53 }
54}
55
56export function deactivate(): void {
57 diagnosticCollection?.dispose();

Callers

nothing calls this directly

Calls 2

invalidateTaskCacheMethod · 0.95
validateDocumentFunction · 0.85

Tested by

no test coverage detected