Commit 1193cc15 authored by Tomas Vik (OOO back on 2026-08-31)'s avatar Tomas Vik (OOO back on 2026-08-31) 🌴
Browse files

feat: send client context to LS

parent 34fc48d8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -222,6 +222,8 @@ export class CodeSuggestionsTelemetryManager {
    }

    const extension = vscode.extensions.getExtension('Gitlab.gitlab-workflow');
    // this logic is duplicated in common/language_server/get_client_context.ts
    // the idea is that we'll delete this whole file once we switch to LS
    const ideVersionContext = {
      schema: 'iglu:com.gitlab/ide_extension_version/jsonschema/1-0-0',
      data: {
+17 −0
Original line number Diff line number Diff line
import * as vscode from 'vscode';
import { IClientContext } from '@gitlab-org/gitlab-lsp/out/common/tracking/snowplow_tracker';

export const getClientContext = (): IClientContext => {
  const extension = vscode.extensions.getExtension('Gitlab.gitlab-workflow');
  return {
    ide: {
      name: 'Visual Studio Code',
      vendor: 'Microsoft Corporation',
      version: vscode.version,
    },
    extension: {
      name: 'GitLab Workflow LS',
      version: extension?.packageJSON?.version,
    },
  };
};
+5 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ import {
} from '../code_suggestions/code_suggestions_status_bar_item';
import { IAccountService } from '../accounts';
import { LanguageClientFactory } from './client_factory';
import { getClientContext } from './get_client_context';

export const LANGUAGE_CLIENT_OPTIONS: LanguageClientOptions = {
  documentSelector: AI_ASSISTED_CODE_SUGGESTIONS_LANGUAGES.map(language => ({ language })),
@@ -31,7 +32,10 @@ export function registerLanguageServer(
  // https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1054
  accounts?: IAccountService,
) {
  const client = clientFactory.createLanguageClient(context, LANGUAGE_CLIENT_OPTIONS);
  const client = clientFactory.createLanguageClient(context, {
    ...LANGUAGE_CLIENT_OPTIONS,
    initializationOptions: getClientContext(),
  });
  client.registerProposedFeatures();
  const codeSuggestionStatusBarItem = createCodeSuggestionStatusBarItem();
  context.subscriptions.push(codeSuggestionStatusBarItem);