|
| 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