File tree 2 files changed +13
-16
lines changed
2 files changed +13
-16
lines changed Original file line number Diff line number Diff line change 18
18
{
19
19
"command" : " documentsearch:end" ,
20
20
"keys" : [" Escape" ],
21
- "selector" : " .jp-mod-searchable .jp-FileEditor .cm-vimMode "
21
+ "selector" : " .jp-mod-searchable .jp-FileEditor [data-jp-vim-mode-name='normal'] "
22
22
},
23
23
{
24
24
"command" : " documentsearch:end" ,
25
25
"keys" : [" Escape" ],
26
- "selector" : " .jp-mod-searchable .jp-Notebook .cm-vimMode"
27
- },
28
- {
29
- "command" : " documentsearch:end" ,
30
- "keys" : [" Escape" ],
31
- "selector" : " .jp-mod-search-active .jp-FileEditor .cm-vimMode"
32
- },
33
- {
34
- "command" : " documentsearch:end" ,
35
- "keys" : [" Escape" ],
36
- "selector" : " .jp-mod-search-active .jp-Notebook .cm-vimMode"
26
+ "selector" : " .jp-mod-search-active .jp-FileEditor [data-jp-vim-mode-name='normal']"
37
27
},
38
28
{
39
29
"selector" : " .jp-NotebookPanel[data-jp-vim-mode='true'] .jp-Notebook.jp-mod-editMode" ,
Original file line number Diff line number Diff line change @@ -67,13 +67,17 @@ export class VimEditorManager {
67
67
this . modifyEditor ( this . _lastActiveEditor ) ;
68
68
}
69
69
70
+ /**
71
+ * Hook up vim mode into given editor.
72
+ * Returns true if vim mode was enabled.
73
+ */
70
74
modifyEditor ( editor : CodeEditor . IEditor | null ) : boolean {
71
- // JupyterLab 4.0 only supports CodeMirror editors
72
- const mirrorEditor = editor as CodeMirrorEditor | null ;
73
-
74
- if ( ! mirrorEditor ) {
75
+ if ( ! editor ) {
75
76
throw Error ( 'Editor not available' ) ;
76
77
}
78
+ // JupyterLab 4.0 only supports CodeMirror editors
79
+ const mirrorEditor = editor as CodeMirrorEditor ;
80
+
77
81
this . _lastActiveEditor = mirrorEditor ;
78
82
79
83
const view = mirrorEditor . editor ;
@@ -89,6 +93,9 @@ export class VimEditorManager {
89
93
// as blurred because it exists outside of the CodeMirror6 state; here
90
94
// we override `hasFocus` handler to ensure it is taken into account.
91
95
const cm = getCM ( view ) ! ;
96
+ cm . on ( 'vim-mode-change' , ( ) => {
97
+ editor . host . dataset . jpVimModeName = cm . state . vim . mode ;
98
+ } ) ;
92
99
mirrorEditor . hasFocus = ( ) => {
93
100
if (
94
101
cm . state . dialog &&
You can’t perform that action at this time.
0 commit comments