Add telemetry for WYSIWYG (#19908)

* add telemetry for wysiwyg

* add view mode

* add back WYSIWYGKeyboardAction

* nit extra line

* update action property to transformAction
This commit is contained in:
Lucy Zhang
2022-07-06 09:39:02 -07:00
committed by GitHub
parent 1c4269b2ac
commit 2e2fcbe5fc
3 changed files with 12 additions and 1 deletions

View File

@@ -123,7 +123,9 @@ export const enum NbTelemetryAction {
RedoCell = 'RedoCell',
MoveCell = 'MoveCell',
MIMETypeRendererNotFound = 'MIMETypeRendererNotFound',
CellExecutionFailed = 'CellExecutionFailed'
CellExecutionFailed = 'CellExecutionFailed',
TextCellToolbarAction = 'TextCellToolbarAction',
WYSIWYGKeyboardAction = 'WYSIWYGKeyboardAction'
}
export const enum TelemetryPropertyName {

View File

@@ -31,6 +31,7 @@ import { HTMLMarkdownConverter } from 'sql/workbench/contrib/notebook/browser/ht
import { highlightSelectedText } from 'sql/workbench/contrib/notebook/browser/utils';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { KeyCode } from 'vs/base/common/keyCodes';
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
export const TEXT_SELECTOR: string = 'text-cell-component';
const USER_SELECT_CLASS = 'actionselect';
@@ -80,19 +81,24 @@ export class TextCellComponent extends CellView implements OnInit, OnChanges {
} else if ((keyEvent.ctrlKey || keyEvent.metaKey) && keyEvent.keyCode === KeyCode.KEY_B) {
// Bold text
preventDefaultAndExecCommand(e, 'bold');
this.cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.WYSIWYGKeyboardAction, { transformAction: 'BOLD' });
} else if ((keyEvent.ctrlKey || keyEvent.metaKey) && keyEvent.keyCode === KeyCode.KEY_I) {
// Italicize text
preventDefaultAndExecCommand(e, 'italic');
this.cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.WYSIWYGKeyboardAction, { transformAction: 'ITALIC' });
} else if ((keyEvent.ctrlKey || keyEvent.metaKey) && keyEvent.keyCode === KeyCode.KEY_U) {
// Underline text
preventDefaultAndExecCommand(e, 'underline');
this.cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.WYSIWYGKeyboardAction, { transformAction: 'UNDERLINE' });
} else if ((keyEvent.ctrlKey || keyEvent.metaKey) && keyEvent.shiftKey && keyEvent.keyCode === KeyCode.KEY_K) {
// Code Block
preventDefaultAndExecCommand(e, 'formatBlock', false, 'pre');
this.cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.WYSIWYGKeyboardAction, { transformAction: 'CODE' });
} else if ((keyEvent.ctrlKey || keyEvent.metaKey) && keyEvent.shiftKey && keyEvent.keyCode === KeyCode.KEY_H) {
// Highlight Text
DOM.EventHelper.stop(e, true);
highlightSelectedText();
this.cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.WYSIWYGKeyboardAction, { transformAction: 'HIGHLIGHT' });
}
}
}

View File

@@ -17,6 +17,7 @@ import { Position } from 'vs/editor/common/core/position';
import { MarkdownToolbarComponent } from 'sql/workbench/contrib/notebook/browser/cellViews/markdownToolbar.component';
import { IEditor } from 'vs/editor/common/editorCommon';
import { highlightSelectedText } from 'sql/workbench/contrib/notebook/browser/utils';
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
export class TransformMarkdownAction extends Action {
@@ -35,9 +36,11 @@ export class TransformMarkdownAction extends Action {
public override async run(context: any): Promise<void> {
if (!context?.cellModel?.showMarkdown && context?.cellModel?.showPreview) {
this.transformDocumentCommand();
this._cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.TextCellToolbarAction, { transformAction: this._type, mode: 'RichTextView' });
} else {
let markdownTextTransformer = new MarkdownTextTransformer(this._notebookService, this._cellModel);
await markdownTextTransformer.transformText(this._type);
this._cellModel.notebookModel.sendNotebookTelemetryActionEvent(TelemetryKeys.NbTelemetryAction.TextCellToolbarAction, { transformAction: this._type, mode: context.cellModel.showPreview ? 'Splitview' : 'MarkdownView' });
}
}