diff options
| author | Shreya Keshive <[email protected]> | 2025-07-15 10:19:59 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-15 14:19:59 +0000 |
| commit | b09bc6656080d4d12e1d06734aae2ec33af5c1ed (patch) | |
| tree | 5140eabe1f10fb6084d9ded3d4d59282cfbc0bc7 /packages/cli/src/ui/components/Footer.tsx | |
| parent | 97cc1e641805beefe3abe3bd7bd57b630b22ecd2 (diff) | |
Adds the user's active file in the IDE to the footer (#4154)
Diffstat (limited to 'packages/cli/src/ui/components/Footer.tsx')
| -rw-r--r-- | packages/cli/src/ui/components/Footer.tsx | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/packages/cli/src/ui/components/Footer.tsx b/packages/cli/src/ui/components/Footer.tsx index 95904cd9..5524114b 100644 --- a/packages/cli/src/ui/components/Footer.tsx +++ b/packages/cli/src/ui/components/Footer.tsx @@ -4,10 +4,16 @@ * SPDX-License-Identifier: Apache-2.0 */ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import { Box, Text } from 'ink'; import { Colors } from '../colors.js'; -import { shortenPath, tildeifyPath, tokenLimit } from '@google/gemini-cli-core'; +import { + shortenPath, + tildeifyPath, + tokenLimit, + ideContext, + ActiveFile, +} from '@google/gemini-cli-core'; import { ConsoleSummaryDisplay } from './ConsoleSummaryDisplay.js'; import process from 'node:process'; import Gradient from 'ink-gradient'; @@ -43,6 +49,24 @@ export const Footer: React.FC<FooterProps> = ({ const limit = tokenLimit(model); const percentage = promptTokenCount / limit; + const [activeFile, setActiveFile] = useState<ActiveFile | undefined>( + undefined, + ); + + useEffect(() => { + const updateActiveFile = () => { + const currentActiveFile = ideContext.getActiveFileContext(); + setActiveFile(currentActiveFile); + }; + + updateActiveFile(); + + const unsubscribe = ideContext.subscribeToActiveFile(setActiveFile); + return () => { + unsubscribe(); + }; + }, []); + return ( <Box marginTop={1} justifyContent="space-between" width="100%"> <Box> @@ -59,6 +83,19 @@ export const Footer: React.FC<FooterProps> = ({ {branchName && <Text color={Colors.Gray}> ({branchName}*)</Text>} </Text> )} + {activeFile && activeFile.filePath && ( + <Text> + <Text color={Colors.Gray}> | </Text> + <Text color={Colors.LightBlue}> + {shortenPath(tildeifyPath(activeFile.filePath), 70)} + </Text> + {activeFile.cursor && ( + <Text color={Colors.Gray}> + :{activeFile.cursor.line}:{activeFile.cursor.character} + </Text> + )} + </Text> + )} {debugMode && ( <Text color={Colors.AccentRed}> {' ' + (debugMessage || '--debug')} |
