Skip to content

Commit 81f2b25

Browse files
committed
added telemetry
1 parent e16ea98 commit 81f2b25

File tree

3 files changed

+109
-3
lines changed

3 files changed

+109
-3
lines changed

package-lock.json

Lines changed: 87 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"description": "InterSystems ObjectScript language support for Visual Studio Code",
55
"version": "0.7.14-SNAPSHOT",
66
"icon": "images/logo.png",
7+
"aiKey": "62520d06-0454-4694-ad43-0ff4bd613c04",
78
"categories": [
89
"Programming Languages",
910
"Other",
@@ -713,6 +714,7 @@
713714
"vscode-cache": "^0.3.0",
714715
"vscode-debugadapter": "^1.37.1",
715716
"vscode-debugprotocol": "^1.37.0",
717+
"vscode-extension-telemetry": "^0.1.2",
716718
"ws": "^7.1.2",
717719
"xmldom": "^0.1.27"
718720
}

src/extension.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
const extensionId = "daimor.vscode-objectscript";
2+
13
import vscode = require("vscode");
4+
25
import { AtelierJob } from "./atelier";
36
const { workspace, window } = vscode;
47
export const OBJECTSCRIPT_FILE_SCHEMA = "objectscript";
@@ -52,6 +55,12 @@ export let documentContentProvider: DocumentContentProvider;
5255
export let workspaceState: vscode.Memento;
5356
export let extensionContext: vscode.ExtensionContext;
5457

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+
5564
export const config = (setting?: string, workspaceFolderName?: string): any => {
5665
workspaceFolderName = workspaceFolderName || currentWorkspaceFolder();
5766

@@ -80,9 +89,12 @@ export function getXmlUri(uri: vscode.Uri): vscode.Uri {
8089
scheme: OBJECTSCRIPTXML_FILE_SCHEMA,
8190
});
8291
}
92+
let reporter;
8393

8494
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);
8698
workspaceState = context.workspaceState;
8799
extensionContext = context;
88100
workspaceState.update("workspaceFolder", "");
@@ -163,6 +175,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
163175
}
164176

165177
context.subscriptions.push(
178+
reporter,
166179
workspace.onDidChangeTextDocument(event => {
167180
diagnosticProvider.updateDiagnostics(event.document);
168181
}),
@@ -327,4 +340,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
327340
vscode.workspace.registerFileSearchProvider(FILESYSTEM_SCHEMA, new FileSearchProvider()),
328341
vscode.workspace.registerTextSearchProvider(FILESYSTEM_SCHEMA, new TextSearchProvider())
329342
);
343+
reporter.sendTelemetryEvent("extensionActivated");
344+
}
345+
346+
export function deactivate() {
347+
// This will ensure all pending events get flushed
348+
reporter.dispose();
330349
}

0 commit comments

Comments
 (0)