提交 b985edc9 编写于 作者: K kieferrm

introduce activation telemetry

上级 b9b2a6d8
......@@ -4,6 +4,7 @@
"description": "Markdown for VS Code",
"version": "0.2.0",
"publisher": "Microsoft",
"aiKey":"AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
"engines": {
"vscode": "^1.0.0"
},
......@@ -111,6 +112,7 @@
"dependencies": {
"highlight.js": "^9.3.0",
"markdown-it": "^6.0.1",
"markdown-it-named-headers": "0.0.4"
"markdown-it-named-headers": "0.0.4",
"vscode-extension-telemetry": "^0.0.5"
}
}
\ No newline at end of file
......@@ -8,9 +8,22 @@
import * as vscode from 'vscode';
import * as path from 'path';
import { ExtensionContext, TextDocumentContentProvider, EventEmitter, Event, Uri, ViewColumn } from 'vscode';
import TelemetryReporter from 'vscode-extension-telemetry';
interface IPackageInfo {
name: string;
version: string;
aiKey: string;
}
var telemetryReporter: TelemetryReporter;
export function activate(context: ExtensionContext) {
let packageInfo = getPackageInfo(context);
telemetryReporter = packageInfo && new TelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey);
let provider = new MDDocumentContentProvider(context);
let registration = vscode.workspace.registerTextDocumentContentProvider('markdown', provider);
......@@ -53,8 +66,9 @@ function getMarkdownUri(uri: Uri) {
return uri.with({ scheme: 'markdown', path: uri.path + '.rendered', query: uri.toString() });
}
function showPreview(resource?: Uri, sideBySide: boolean = false) {
function showPreview(uri?: Uri, sideBySide: boolean = false) {
let resource = uri;
if (!(resource instanceof Uri)) {
if (vscode.window.activeTextEditor) {
// we are relaxed and don't check for markdown files
......@@ -71,10 +85,17 @@ function showPreview(resource?: Uri, sideBySide: boolean = false) {
return;
}
return vscode.commands.executeCommand('vscode.previewHtml',
let thenable = vscode.commands.executeCommand('vscode.previewHtml',
getMarkdownUri(resource),
getViewColumn(sideBySide),
`Preview '${path.basename(resource.fsPath)}'`);
telemetryReporter.sendTelemetryEvent('openPreview', {
where : sideBySide ? 'sideBySide' : 'inPlace',
how : (uri instanceof Uri) ? 'action' : 'pallete'
});
return thenable;
}
function getViewColumn(sideBySide): ViewColumn {
......@@ -115,6 +136,18 @@ function showSource(mdUri: Uri) {
});
}
function getPackageInfo(context: ExtensionContext): IPackageInfo {
let extensionPackage = require(context.asAbsolutePath('./package.json'));
if (extensionPackage) {
return {
name: extensionPackage.name,
version: extensionPackage.version,
aiKey: extensionPackage.aiKey
};
}
return null;
}
interface IRenderer {
render(text: string) : string;
......
declare module 'vscode-extension-telemetry' {
export default class TelemetryReporter {
constructor(extensionId: string,extensionVersion: string, key: string);
sendTelemetryEvent(eventName: string, properties?: { [key: string]: string }, measures?: { [key: string]: number }): void;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册