Refactor IdeContextStore (#8278)

This commit is contained in:
Tommaso Sciortino
2025-09-11 11:22:20 -07:00
committed by GitHub
parent 538e6cd19a
commit d892cde0b0
10 changed files with 92 additions and 114 deletions

View File

@@ -29,7 +29,7 @@ import {
type UserTierId,
DEFAULT_GEMINI_FLASH_MODEL,
IdeClient,
ideContext,
ideContextStore,
getErrorMessage,
getAllGeminiMdFilenames,
AuthType,
@@ -707,8 +707,8 @@ Logging in with Google... Please restart Gemini CLI to continue.
}, [terminalWidth, refreshStatic]);
useEffect(() => {
const unsubscribe = ideContext.subscribeToIdeContext(setIdeContextState);
setIdeContextState(ideContext.getIdeContext());
const unsubscribe = ideContextStore.subscribe(setIdeContextState);
setIdeContextState(ideContextStore.get());
return unsubscribe;
}, []);

View File

@@ -15,7 +15,7 @@ import {
import {
getIdeInstaller,
IDEConnectionStatus,
ideContext,
ideContextStore,
GEMINI_CLI_COMPANION_EXTENSION_NAME,
} from '@google/gemini-cli-core';
import path from 'node:path';
@@ -90,7 +90,7 @@ async function getIdeStatusMessageWithFiles(ideClient: IdeClient): Promise<{
switch (connection.status) {
case IDEConnectionStatus.Connected: {
let content = `🟢 Connected to ${ideClient.getDetectedIdeDisplayName()}`;
const context = ideContext.getIdeContext();
const context = ideContextStore.get();
const openFiles = context?.workspaceState?.openFiles;
if (openFiles && openFiles.length > 0) {
content += formatFileList(openFiles);

View File

@@ -5,7 +5,7 @@
*/
import { useCallback, useEffect, useState, useSyncExternalStore } from 'react';
import { IdeClient, ideContext } from '@google/gemini-cli-core';
import { IdeClient, ideContextStore } from '@google/gemini-cli-core';
/**
* This hook listens for trust status updates from the IDE companion extension.
@@ -26,8 +26,7 @@ export function useIdeTrustListener() {
};
}, []);
const getSnapshot = () =>
ideContext.getIdeContext()?.workspaceState?.isTrusted;
const getSnapshot = () => ideContextStore.get()?.workspaceState?.isTrusted;
const isIdeTrusted = useSyncExternalStore(subscribe, getSnapshot);