11import { observer } from 'mobx-react-lite' ;
22import React , { useRef , useEffect , useState , useCallback } from 'react' ;
33
4- import { useInjectable } from '@opensumi/ide-core-browser' ;
4+ import { KeybindingRegistry , useInjectable } from '@opensumi/ide-core-browser' ;
55import { Scroll } from '@opensumi/ide-core-browser/lib/components/scroll' ;
66import { IThemeService , ThemeType } from '@opensumi/ide-theme' ;
77
@@ -16,6 +16,7 @@ export default observer(() => {
1616 const provider = useInjectable < ITerminalRenderProvider > ( ITerminalRenderProvider ) ;
1717 const menuService = useInjectable < TerminalContextMenuService > ( TerminalContextMenuService ) ;
1818 const themeService = useInjectable < IThemeService > ( IThemeService ) ;
19+ const keybindingService = useInjectable < KeybindingRegistry > ( KeybindingRegistry ) ;
1920 const tabContainer = useRef < HTMLDivElement | null > ( ) ;
2021 const [ theme , setTheme ] = useState < ThemeType > ( 'dark' ) ;
2122
@@ -70,6 +71,13 @@ export default observer(() => {
7071 view . createWidget ( group ) ;
7172 view . selectGroup ( index ) ;
7273 } }
74+ getKeybinding = { ( id ) => {
75+ const bindings = keybindingService . getKeybindingsForCommand ( id ) ;
76+ if ( Array . isArray ( bindings ) && bindings [ 0 ] ) {
77+ return keybindingService . acceleratorFor ( bindings [ 0 ] , '' ) [ 0 ] || '' ;
78+ }
79+ return '' ;
80+ } }
7381 onDropdown = { ( event ) => menuService . onDropDownContextMenu ( event ) }
7482 provider = { provider }
7583 theme = { theme }
0 commit comments