|
| 1 | +const extensionId = "daimor.vscode-objectscript"; |
| 2 | + |
1 | 3 | import vscode = require("vscode"); |
| 4 | + |
2 | 5 | import { AtelierJob } from "./atelier"; |
3 | 6 | const { workspace, window } = vscode; |
4 | 7 | export const OBJECTSCRIPT_FILE_SCHEMA = "objectscript"; |
@@ -52,6 +55,12 @@ export let documentContentProvider: DocumentContentProvider; |
52 | 55 | export let workspaceState: vscode.Memento; |
53 | 56 | export let extensionContext: vscode.ExtensionContext; |
54 | 57 |
|
| 58 | +import TelemetryReporter from "vscode-extension-telemetry"; |
| 59 | + |
| 60 | +const packageJson = vscode.extensions.getExtension(extensionId).packageJSON; |
| 61 | +const extensionVersion = packageJson.version; |
| 62 | +const aiKey = packageJson.aiKey; |
| 63 | + |
55 | 64 | export const config = (setting?: string, workspaceFolderName?: string): any => { |
56 | 65 | workspaceFolderName = workspaceFolderName || currentWorkspaceFolder(); |
57 | 66 |
|
@@ -80,9 +89,12 @@ export function getXmlUri(uri: vscode.Uri): vscode.Uri { |
80 | 89 | scheme: OBJECTSCRIPTXML_FILE_SCHEMA, |
81 | 90 | }); |
82 | 91 | } |
| 92 | +let reporter; |
83 | 93 |
|
84 | 94 | export async function activate(context: vscode.ExtensionContext): Promise<void> { |
85 | | - const languages = require(context.asAbsolutePath("./package.json")).contributes.languages.map(lang => lang.id); |
| 95 | + reporter = new TelemetryReporter(extensionId, extensionVersion, aiKey); |
| 96 | + |
| 97 | + const languages = packageJson.contributes.languages.map(lang => lang.id); |
86 | 98 | workspaceState = context.workspaceState; |
87 | 99 | extensionContext = context; |
88 | 100 | workspaceState.update("workspaceFolder", ""); |
@@ -163,6 +175,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void> |
163 | 175 | } |
164 | 176 |
|
165 | 177 | context.subscriptions.push( |
| 178 | + reporter, |
166 | 179 | workspace.onDidChangeTextDocument(event => { |
167 | 180 | diagnosticProvider.updateDiagnostics(event.document); |
168 | 181 | }), |
@@ -327,4 +340,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<void> |
327 | 340 | vscode.workspace.registerFileSearchProvider(FILESYSTEM_SCHEMA, new FileSearchProvider()), |
328 | 341 | vscode.workspace.registerTextSearchProvider(FILESYSTEM_SCHEMA, new TextSearchProvider()) |
329 | 342 | ); |
| 343 | + reporter.sendTelemetryEvent("extensionActivated"); |
| 344 | +} |
| 345 | + |
| 346 | +export function deactivate() { |
| 347 | + // This will ensure all pending events get flushed |
| 348 | + reporter.dispose(); |
330 | 349 | } |
0 commit comments