Commit 31345978 authored by Andrew Newdigate's avatar Andrew Newdigate Committed by Tomas Vik (OOO back on 2026-08-31)
Browse files

feat: Add Code Suggestion Telemetry

parent d65f37d4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -108,8 +108,9 @@ module.exports = {
  InlineCompletionTriggerKind: {
    Automatic: true,
  },
  InlineCompletionItem: function InlineCompletionItem(insertText, range) {
  InlineCompletionItem: function InlineCompletionItem(insertText, range, command) {
    this.insertText = insertText;
    this.range = range;
    this.command = command;
  },
};
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ export const USER_COMMANDS = {
export const PROGRAMMATIC_COMMANDS = {
  SHOW_RICH_CONTENT: 'gl.showRichContent',
  NO_IMAGE_REVIEW: 'gl.noImageReview',
  CODE_SUGGESTION_ACCEPTED: 'gl.codeSuggestionAccepted',
};

export const VS_COMMANDS = {
+10 −0
Original line number Diff line number Diff line
import { codeSuggestionAccepted } from './code_suggestion_accepted';
import { codeCompletionTelemetry } from '../completion/code_completion_telemetry';

describe('code suggestion accepted command', () => {
  it('updates codeCompletionTelemetry with the correct value', async () => {
    await codeSuggestionAccepted();

    expect(codeCompletionTelemetry.acceptCount).toBe(1);
  });
});
+6 −0
Original line number Diff line number Diff line
import { codeCompletionTelemetry } from '../completion/code_completion_telemetry';

// Used for telemetry
export const codeSuggestionAccepted = async () => {
  codeCompletionTelemetry.incAcceptCount();
};
+27 −0
Original line number Diff line number Diff line
export class CodeCompletionTelemetry {
  requestCount = 0;

  errorCount = 0;

  acceptCount = 0;

  incRequestCount() {
    this.requestCount += 1;
  }

  incErrorCount() {
    this.errorCount += 1;
  }

  incAcceptCount() {
    this.acceptCount += 1;
  }

  resetCounts() {
    this.requestCount = 0;
    this.errorCount = 0;
    this.acceptCount = 0;
  }
}

export const codeCompletionTelemetry = new CodeCompletionTelemetry();
Loading