Commit f9ba5750 authored by Illya Klymov's avatar Illya Klymov 🔴
Browse files

feat: add passing suggestions cache config flag

parent b28cb0fa
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -68,6 +68,9 @@ describe('LanguageClientWrapper', () => {
            featureFlags: {
              codeSuggestionsClientDirectToGateway: false,
            },
            suggestionsCache: {
              enabled: false,
            },
          },
        },
      );
+6 −1
Original line number Diff line number Diff line
@@ -11,11 +11,15 @@ import { BaseLanguageClient, DidChangeConfigurationNotification } from 'vscode-l
import { GitLabPlatformManager } from '../platform/gitlab_platform';
import { GitLabPlatformManagerForCodeSuggestions } from '../code_suggestions/gitlab_platform_manager_for_code_suggestions';
import { CodeSuggestionsStateManager } from '../code_suggestions/code_suggestions_state_manager';
import { getAiAssistedCodeSuggestionsConfiguration } from '../utils/extension_configuration';
import { log } from '../log';
import { FeatureFlag, isEnabled } from '../feature_flags';

// note: Temporary until new gitlab-lsp version bumps with IConfig updated
type LspConfig = IConfig | { featureFlags: Record<string, boolean> };
type LspConfig =
  | IConfig
  | { featureFlags: Record<string, boolean> }
  | { suggestionsCache?: { enabled?: boolean } };

export class LanguageClientWrapper {
  #client: BaseLanguageClient;
@@ -79,6 +83,7 @@ export class LanguageClientWrapper {
          FeatureFlag.CodeSuggestionsClientDirectToGateway,
        ),
      },
      suggestionsCache: getAiAssistedCodeSuggestionsConfiguration().suggestionsCache,
    };

    log.info(`Configuring Language Server - baseUrl: ${platform.account.instanceUrl}`);
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ export interface ExtensionConfiguration {
export interface AiAssistedCodeSuggestionsConfiguration {
  enabled: boolean;
  preferredAccount?: string;
  suggestionsCache?: { enabled?: boolean };
}

// VS Code returns a value or `null` but undefined is better for using default function arguments
@@ -43,6 +44,7 @@ export function getAiAssistedCodeSuggestionsConfiguration(): AiAssistedCodeSugge
  return {
    enabled: aiAssistedCodeSuggestionsConfig.enabled,
    preferredAccount: aiAssistedCodeSuggestionsConfig.preferredAccount,
    suggestionsCache: aiAssistedCodeSuggestionsConfig.suggestionsCache || { enabled: false },
  };
}