summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/ContextSummaryDisplay.tsx
diff options
context:
space:
mode:
authorShreya Keshive <[email protected]>2025-07-18 18:14:46 -0400
committerGitHub <[email protected]>2025-07-18 22:14:46 +0000
commit73745ecd0323882fc951e387250fe2efef374e81 (patch)
treeab899051fb0d900d34a71c974410b466ff652bb8 /packages/cli/src/ui/components/ContextSummaryDisplay.tsx
parent4915050ad47236a6d8349ed87b68cd202f96efbe (diff)
Display open IDE file in context section above input box rather than in the footer (#4470)
Diffstat (limited to 'packages/cli/src/ui/components/ContextSummaryDisplay.tsx')
-rw-r--r--packages/cli/src/ui/components/ContextSummaryDisplay.tsx54
1 files changed, 34 insertions, 20 deletions
diff --git a/packages/cli/src/ui/components/ContextSummaryDisplay.tsx b/packages/cli/src/ui/components/ContextSummaryDisplay.tsx
index 314e8ebd..d1ef8135 100644
--- a/packages/cli/src/ui/components/ContextSummaryDisplay.tsx
+++ b/packages/cli/src/ui/components/ContextSummaryDisplay.tsx
@@ -7,7 +7,8 @@
import React from 'react';
import { Text } from 'ink';
import { Colors } from '../colors.js';
-import { type MCPServerConfig } from '@google/gemini-cli-core';
+import { type ActiveFile, type MCPServerConfig } from '@google/gemini-cli-core';
+import path from 'path';
interface ContextSummaryDisplayProps {
geminiMdFileCount: number;
@@ -15,6 +16,7 @@ interface ContextSummaryDisplayProps {
mcpServers?: Record<string, MCPServerConfig>;
blockedMcpServers?: Array<{ name: string; extensionName: string }>;
showToolDescriptions?: boolean;
+ activeFile?: ActiveFile;
}
export const ContextSummaryDisplay: React.FC<ContextSummaryDisplayProps> = ({
@@ -23,6 +25,7 @@ export const ContextSummaryDisplay: React.FC<ContextSummaryDisplayProps> = ({
mcpServers,
blockedMcpServers,
showToolDescriptions,
+ activeFile,
}) => {
const mcpServerCount = Object.keys(mcpServers || {}).length;
const blockedMcpServerCount = blockedMcpServers?.length || 0;
@@ -30,18 +33,26 @@ export const ContextSummaryDisplay: React.FC<ContextSummaryDisplayProps> = ({
if (
geminiMdFileCount === 0 &&
mcpServerCount === 0 &&
- blockedMcpServerCount === 0
+ blockedMcpServerCount === 0 &&
+ !activeFile?.filePath
) {
return <Text> </Text>; // Render an empty space to reserve height
}
+ const activeFileText = (() => {
+ if (!activeFile?.filePath) {
+ return '';
+ }
+ return `Open File (${path.basename(activeFile.filePath)})`;
+ })();
+
const geminiMdText = (() => {
if (geminiMdFileCount === 0) {
return '';
}
const allNamesTheSame = new Set(contextFileNames).size < 2;
- const name = allNamesTheSame ? contextFileNames[0] : 'context';
- return `${geminiMdFileCount} ${name} file${
+ const name = allNamesTheSame ? contextFileNames[0] : 'Context';
+ return `${geminiMdFileCount} ${name} File${
geminiMdFileCount > 1 ? 's' : ''
}`;
})();
@@ -54,36 +65,39 @@ export const ContextSummaryDisplay: React.FC<ContextSummaryDisplayProps> = ({
const parts = [];
if (mcpServerCount > 0) {
parts.push(
- `${mcpServerCount} MCP server${mcpServerCount > 1 ? 's' : ''}`,
+ `${mcpServerCount} MCP Server${mcpServerCount > 1 ? 's' : ''}`,
);
}
if (blockedMcpServerCount > 0) {
- let blockedText = `${blockedMcpServerCount} blocked`;
+ let blockedText = `${blockedMcpServerCount} Blocked`;
if (mcpServerCount === 0) {
- blockedText += ` MCP server${blockedMcpServerCount > 1 ? 's' : ''}`;
+ blockedText += ` MCP Server${blockedMcpServerCount > 1 ? 's' : ''}`;
}
parts.push(blockedText);
}
return parts.join(', ');
})();
- let summaryText = 'Using ';
- if (geminiMdText) {
- summaryText += geminiMdText;
+ let summaryText = 'Using: ';
+ const summaryParts = [];
+ if (activeFileText) {
+ summaryParts.push(activeFileText);
}
- if (geminiMdText && mcpText) {
- summaryText += ' and ';
+ if (geminiMdText) {
+ summaryParts.push(geminiMdText);
}
if (mcpText) {
- summaryText += mcpText;
- // Add ctrl+t hint when MCP servers are available
- if (mcpServers && Object.keys(mcpServers).length > 0) {
- if (showToolDescriptions) {
- summaryText += ' (ctrl+t to toggle)';
- } else {
- summaryText += ' (ctrl+t to view)';
- }
+ summaryParts.push(mcpText);
+ }
+ summaryText += summaryParts.join(' | ');
+
+ // Add ctrl+t hint when MCP servers are available
+ if (mcpServers && Object.keys(mcpServers).length > 0) {
+ if (showToolDescriptions) {
+ summaryText += ' (ctrl+t to toggle)';
+ } else {
+ summaryText += ' (ctrl+t to view)';
}
}