@@ -46,7 +46,7 @@ const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0
4646
4747const ChatView = ( { isHidden, showAnnouncement, hideAnnouncement, showHistoryView } : ChatViewProps ) => {
4848 const { t } = useAppTranslation ( )
49- const modeShortcutText = `${ isMac ? "⌘" : "Ctrl" } + . ${ t ( "chat:forNextMode" ) } `
49+ const modeShortcutText = `${ isMac ? "⌘" : "Ctrl" } + . next or / prev mode` // Updated shortcut hint format
5050 const {
5151 version,
5252 clineMessages : messages ,
@@ -1130,16 +1130,39 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
11301130 } )
11311131 } , [ mode , setMode , customModes ] )
11321132
1133+ // Function to switch to the previous mode
1134+ const switchToPreviousMode = useCallback ( ( ) => {
1135+ const allModes = getAllModes ( customModes )
1136+ const currentModeIndex = allModes . findIndex ( ( m ) => m . slug === mode )
1137+ if ( currentModeIndex === - 1 ) return // Should not happen
1138+
1139+ // Calculate previous index with wrap-around
1140+ const previousModeIndex = ( currentModeIndex - 1 + allModes . length ) % allModes . length
1141+ const previousMode = allModes [ previousModeIndex ]
1142+
1143+ // Update local state and notify extension to sync mode change
1144+ setMode ( previousMode . slug )
1145+ vscode . postMessage ( {
1146+ type : "mode" ,
1147+ text : previousMode . slug ,
1148+ } )
1149+ // Consider adding playSound("progress_loop") here if desired for consistency
1150+ } , [ mode , setMode , customModes ] )
1151+
11331152 // Add keyboard event handler
11341153 const handleKeyDown = useCallback (
11351154 ( event : KeyboardEvent ) => {
1136- // Check for Command + . (period)
1155+ // Check for Command + . (period) for next mode
11371156 if ( ( event . metaKey || event . ctrlKey ) && event . key === "." ) {
11381157 event . preventDefault ( ) // Prevent default browser behavior
11391158 switchToNextMode ( )
1159+ // Check for Command + / (slash) for previous mode
1160+ } else if ( ( event . metaKey || event . ctrlKey ) && event . key === "/" ) {
1161+ event . preventDefault ( ) // Prevent default browser behavior
1162+ switchToPreviousMode ( )
11401163 }
11411164 } ,
1142- [ switchToNextMode ] ,
1165+ [ switchToNextMode , switchToPreviousMode ] , // Added switchToPreviousMode dependency
11431166 )
11441167
11451168 // Add event listener
0 commit comments