@@ -23,11 +23,14 @@ import {
23
23
IKeybinding
24
24
} from './codemirrorCommands' ;
25
25
import { addNotebookCommands } from './labCommands' ;
26
+ import { PartialJSONObject } from '@lumino/coreutils' ;
26
27
27
28
const PLUGIN_NAME = '@axlair/jupyterlab_vim' ;
28
29
const TOGGLE_ID = 'jupyterlab-vim:toggle' ;
29
30
let enabled = false ;
30
31
let enabledInEditors = true ;
32
+ let escToCmdMode = true ;
33
+ let shiftEscOverrideBrowser = true ;
31
34
32
35
/**
33
36
* Initialization data for the jupyterlab_vim extension.
@@ -170,6 +173,18 @@ async function activateCellVim(
170
173
171
174
enabled = settings . get ( 'enabled' ) . composite === true ;
172
175
enabledInEditors = settings . get ( 'enabledInEditors' ) . composite === true ;
176
+
177
+ const cmdModeKeys = settings . get ( 'cmdModeKeys' )
178
+ . composite as PartialJSONObject ;
179
+ if ( ! cmdModeKeys ) {
180
+ // no-op
181
+ } else {
182
+ escToCmdMode = cmdModeKeys [ 'escToCmdMode' ] as boolean ;
183
+ shiftEscOverrideBrowser = cmdModeKeys [
184
+ 'shiftEscOverrideBrowser'
185
+ ] as boolean ;
186
+ }
187
+
173
188
app . commands . notifyCommandChanged ( TOGGLE_ID ) ;
174
189
175
190
cellManager . enabled = enabled ;
@@ -194,6 +209,8 @@ async function activateCellVim(
194
209
195
210
notebookTracker . forEach ( notebook => {
196
211
notebook . node . dataset . jpVimMode = `${ enabled } ` ;
212
+ notebook . node . dataset . jpVimEscToCmdMode = `${ escToCmdMode } ` ;
213
+ notebook . node . dataset . jpVimShiftEscOverrideBrowser = `${ shiftEscOverrideBrowser } ` ;
197
214
} ) ;
198
215
editorTracker . forEach ( document => {
199
216
document . node . dataset . jpVimMode = `${ enabled && enabledInEditors } ` ;
@@ -204,6 +221,8 @@ async function activateCellVim(
204
221
// make sure our css selector is added to new notebooks
205
222
notebookTracker . widgetAdded . connect ( ( sender , notebook ) => {
206
223
notebook . node . dataset . jpVimMode = `${ enabled } ` ;
224
+ notebook . node . dataset . jpVimEscToCmdMode = `${ escToCmdMode } ` ;
225
+ notebook . node . dataset . jpVimShiftEscOverrideBrowser = `${ shiftEscOverrideBrowser } ` ;
207
226
} ) ;
208
227
editorTracker . widgetAdded . connect ( ( sender , document ) => {
209
228
document . node . dataset . jpVimMode = `${ enabled && enabledInEditors } ` ;
0 commit comments