@@ -22,7 +22,7 @@ import KernelPicker from "./kernel-picker";
22
22
import WSKernelPicker from "./ws-kernel-picker" ;
23
23
import ExistingKernelPicker from "./existing-kernel-picker" ;
24
24
import HydrogenProvider from "./plugin-api/hydrogen-provider" ;
25
- import store from "./store" ;
25
+ import store , { Store , StoreLike } from "./store" ;
26
26
import kernelManager from "./kernel-manager" ;
27
27
import services from "./services" ;
28
28
import * as commands from "./commands" ;
@@ -85,67 +85,72 @@ export function activate() {
85
85
} )
86
86
) ;
87
87
store . subscriptions . add (
88
- atom . commands . add ( "atom-text-editor:not([mini])" , {
89
- "hydrogen:run" : ( ) => run ( ) ,
90
- "hydrogen:run-all" : ( ) => runAll ( ) ,
91
- "hydrogen:run-all-above" : ( ) => runAllAbove ( ) ,
92
- "hydrogen:run-and-move-down" : ( ) => run ( true ) ,
93
- "hydrogen:run-cell" : ( ) => runCell ( ) ,
94
- "hydrogen:run-cell-and-move-down" : ( ) => runCell ( true ) ,
95
- "hydrogen:toggle-watches" : ( ) => atom . workspace . toggle ( WATCHES_URI ) ,
96
- "hydrogen:toggle-output-area" : ( ) => commands . toggleOutputMode ( ) ,
97
- "hydrogen:toggle-kernel-monitor" : async ( ) => {
98
- const lastItem = atom . workspace . getActivePaneItem ( ) ;
99
- const lastPane = atom . workspace . paneForItem ( lastItem ) ;
100
- await atom . workspace . toggle ( KERNEL_MONITOR_URI ) ;
101
- if ( lastPane ) {
102
- lastPane . activate ( ) ;
103
- }
104
- } ,
105
- "hydrogen:start-local-kernel" : ( ) => startZMQKernel ( ) ,
106
- "hydrogen:connect-to-remote-kernel" : ( ) => connectToWSKernel ( ) ,
107
- "hydrogen:connect-to-existing-kernel" : ( ) => connectToExistingKernel ( ) ,
108
- "hydrogen:add-watch" : ( ) => {
109
- if ( store . kernel ) {
110
- store . kernel . watchesStore . addWatchFromEditor ( store . editor ) ;
111
- openOrShowDock ( WATCHES_URI ) ;
112
- }
113
- } ,
114
- "hydrogen:remove-watch" : ( ) => {
115
- if ( store . kernel ) {
116
- store . kernel . watchesStore . removeWatch ( ) ;
117
- openOrShowDock ( WATCHES_URI ) ;
118
- }
119
- } ,
120
- "hydrogen:update-kernels" : ( ) => kernelManager . updateKernelSpecs ( ) ,
121
- "hydrogen:toggle-inspector" : ( ) => commands . toggleInspector ( store ) ,
122
- "hydrogen:interrupt-kernel" : ( ) =>
123
- handleKernelCommand (
124
- {
125
- command : "interrupt-kernel" ,
126
- } ,
127
- store
128
- ) ,
129
- "hydrogen:restart-kernel" : ( ) =>
130
- handleKernelCommand (
131
- {
132
- command : "restart-kernel" ,
133
- } ,
134
- store
135
- ) ,
136
- "hydrogen:shutdown-kernel" : ( ) =>
137
- handleKernelCommand (
138
- {
139
- command : "shutdown-kernel" ,
140
- } ,
141
- store
142
- ) ,
143
- "hydrogen:clear-result" : ( ) => result . clearResult ( store ) ,
144
- "hydrogen:export-notebook" : ( ) => exportNotebook ( ) ,
145
- "hydrogen:fold-current-cell" : ( ) => foldCurrentCell ( ) ,
146
- "hydrogen:fold-all-but-current-cell" : ( ) => foldAllButCurrentCell ( ) ,
147
- "hydrogen:clear-results" : ( ) => result . clearResults ( store ) ,
148
- } )
88
+ atom . commands . add < "atom-text-editor:not([mini])" > (
89
+ "atom-text-editor:not([mini])" ,
90
+ {
91
+ "hydrogen:run" : ( ) => run ( ) ,
92
+ "hydrogen:run-all" : ( ) => runAll ( ) ,
93
+ "hydrogen:run-all-above" : ( ) => runAllAbove ( ) ,
94
+ "hydrogen:run-and-move-down" : ( ) => run ( true ) ,
95
+ "hydrogen:run-cell" : ( ) => runCell ( ) ,
96
+ "hydrogen:run-cell-and-move-down" : ( ) => runCell ( true ) ,
97
+ "hydrogen:toggle-watches" : ( ) => atom . workspace . toggle ( WATCHES_URI ) ,
98
+ "hydrogen:toggle-output-area" : ( ) => commands . toggleOutputMode ( ) ,
99
+ "hydrogen:toggle-kernel-monitor" : async ( ) => {
100
+ const lastItem = atom . workspace . getActivePaneItem ( ) ;
101
+ const lastPane = atom . workspace . paneForItem ( lastItem ) ;
102
+ await atom . workspace . toggle ( KERNEL_MONITOR_URI ) ;
103
+ if ( lastPane ) {
104
+ lastPane . activate ( ) ;
105
+ }
106
+ } ,
107
+ "hydrogen:start-local-kernel" : ( ) => startZMQKernel ( ) ,
108
+ "hydrogen:connect-to-remote-kernel" : ( ) => connectToWSKernel ( ) ,
109
+ "hydrogen:connect-to-existing-kernel" : ( ) => connectToExistingKernel ( ) ,
110
+ "hydrogen:add-watch" : ( ) => {
111
+ if ( store . kernel ) {
112
+ store . kernel . watchesStore . addWatchFromEditor ( store . editor ) ;
113
+ openOrShowDock ( WATCHES_URI ) ;
114
+ }
115
+ } ,
116
+ "hydrogen:remove-watch" : ( ) => {
117
+ if ( store . kernel ) {
118
+ store . kernel . watchesStore . removeWatch ( ) ;
119
+ openOrShowDock ( WATCHES_URI ) ;
120
+ }
121
+ } ,
122
+ "hydrogen:update-kernels" : async ( ) => {
123
+ await kernelManager . updateKernelSpecs ( ) ;
124
+ } ,
125
+ "hydrogen:toggle-inspector" : ( ) => commands . toggleInspector ( store ) ,
126
+ "hydrogen:interrupt-kernel" : ( ) =>
127
+ handleKernelCommand (
128
+ {
129
+ command : "interrupt-kernel" ,
130
+ } ,
131
+ store
132
+ ) ,
133
+ "hydrogen:restart-kernel" : ( ) =>
134
+ handleKernelCommand (
135
+ {
136
+ command : "restart-kernel" ,
137
+ } ,
138
+ store
139
+ ) ,
140
+ "hydrogen:shutdown-kernel" : ( ) =>
141
+ handleKernelCommand (
142
+ {
143
+ command : "shutdown-kernel" ,
144
+ } ,
145
+ store
146
+ ) ,
147
+ "hydrogen:clear-result" : ( ) => result . clearResult ( store ) ,
148
+ "hydrogen:export-notebook" : ( ) => exportNotebook ( ) ,
149
+ "hydrogen:fold-current-cell" : ( ) => foldCurrentCell ( ) ,
150
+ "hydrogen:fold-all-but-current-cell" : ( ) => foldAllButCurrentCell ( ) ,
151
+ "hydrogen:clear-results" : ( ) => result . clearResults ( store ) ,
152
+ }
153
+ )
149
154
) ;
150
155
store . subscriptions . add (
151
156
atom . commands . add ( "atom-workspace" , {
@@ -211,6 +216,9 @@ export function activate() {
211
216
212
217
case KERNEL_MONITOR_URI :
213
218
return new KernelMonitorPane ( store ) ;
219
+ default : {
220
+ return ;
221
+ }
214
222
}
215
223
} )
216
224
) ;
@@ -278,23 +286,19 @@ function connectToExistingKernel() {
278
286
existingKernelPicker . toggle ( ) ;
279
287
}
280
288
289
+ interface KernelCommand {
290
+ command : string ;
291
+ payload ?: KernelspecMetadata | null | undefined ;
292
+ }
293
+
281
294
function handleKernelCommand (
282
- {
283
- command,
284
- payload,
285
- } : {
286
- command : string ;
287
- payload : KernelspecMetadata | null | undefined ;
288
- } ,
289
- {
290
- kernel,
291
- markers,
292
- } : {
293
- kernel : Kernel | null | undefined ;
294
- markers : MarkerStore | null | undefined ;
295
- }
295
+ { command, payload } : KernelCommand , // TODO payload is not used!
296
+ { kernel, markers } : Store | StoreLike
296
297
) {
297
- log ( "handleKernelCommand:" , arguments ) ;
298
+ log ( "handleKernelCommand:" , [
299
+ { command, payload } ,
300
+ { kernel, markers } ,
301
+ ] ) ;
298
302
299
303
if ( ! kernel ) {
300
304
const message = "No running kernel for grammar or editor found" ;
@@ -403,7 +407,7 @@ function _runAll(
403
407
const row = codeManager . escapeBlankRows (
404
408
editor ,
405
409
start . row ,
406
- end . row == editor . getLastBufferRow ( ) ? end . row : end . row - 1
410
+ codeManager . getEscapeBlankRowsEndRow ( editor , end )
407
411
) ;
408
412
const cellType = codeManager . getMetadataForRow ( editor , start ) ;
409
413
const code =
@@ -457,7 +461,7 @@ function _runAllAbove(editor: TextEditor, kernel: Kernel) {
457
461
const row = codeManager . escapeBlankRows (
458
462
editor ,
459
463
start . row ,
460
- end . row == editor . getLastBufferRow ( ) ? end . row : end . row - 1
464
+ codeManager . getEscapeBlankRowsEndRow ( editor , end )
461
465
) ;
462
466
const cellType = codeManager . getMetadataForRow ( editor , start ) ;
463
467
@@ -496,7 +500,7 @@ function runCell(moveDown: boolean = false) {
496
500
const row = codeManager . escapeBlankRows (
497
501
editor ,
498
502
start . row ,
499
- end . row == editor . getLastBufferRow ( ) ? end . row : end . row - 1
503
+ codeManager . getEscapeBlankRowsEndRow ( editor , end )
500
504
) ;
501
505
const cellType = codeManager . getMetadataForRow ( editor , start ) ;
502
506
const code =
0 commit comments