jasongilman / proto-repl

A Clojure Development Environment package for the Atom editor
https://atom.io/packages/proto-repl
MIT License
565 stars 50 forks source link

Uncaught TypeError: Cannot read property 'makeInlineHandler' of null #245

Open AlJohri opened 7 years ago

AlJohri commented 7 years ago

[Enter steps to reproduce:]

  1. ...
  2. ...

Atom: 1.16.0 x64 Electron: 1.3.13 OS: Mac OS X 10.12.4 Thrown From: proto-repl package 1.4.20

Stack Trace

Uncaught TypeError: Cannot read property 'makeInlineHandler' of null

At /Users/johria/.atom/packages/proto-repl/lib/proto-repl.coffee:610

TypeError: Cannot read property 'makeInlineHandler' of null
    at Object.printVarDocumentation (/packages/proto-repl/lib/proto-repl.coffee:610:32)
    at /packages/proto-repl/lib/proto-repl.coffee:130:49)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/app.asar/src/command-registry.js:259:29)
    at CommandRegistry.handleCommandEvent (/app.asar/src/command-registry.js:3:59)
    at CommandRegistry.module.exports.CommandRegistry.dispatch (/app.asar/src/command-registry.js:160:19)
    at AtomEnvironment.module.exports.AtomEnvironment.dispatchContextMenuCommand (/app.asar/src/atom-environment.js:1185:28)
    at EventEmitter.outerCallback (/app.asar/src/application-delegate.js:325:25)
    at emitThree (events.js:116:13)
    at EventEmitter.emit (events.js:194:7)

Commands

     -3:09.4.0 core:backspace (input.hidden-input)
     -3:07.5.0 core:paste (input.hidden-input)
  2x -3:04.2.0 core:save (input.hidden-input)
  2x -1:54.3.0 core:backspace (input.hidden-input)
     -1:38.6.0 core:save (input.hidden-input)
     -1:26.6.0 find-and-replace:show (input.hidden-input)
     -1:25.8.0 core:confirm (input.hidden-input)
     -1:25.2.0 editor:consolidate-selections (input.hidden-input)
     -1:25.2.0 core:cancel (input.hidden-input)
     -1:25.1.0 core:move-left (input.hidden-input)
     -1:24.8.0 core:paste (input.hidden-input)
     -1:23.9.0 core:save (input.hidden-input)
     -0:20.5.0 proto-repl:print-var-code (span.syntax--entity.syntax--name.syntax--function.syntax--clojure)
     -0:15.9.0 symbols-view:go-to-declaration (span.syntax--entity.syntax--name.syntax--function.syntax--clojure)
     -0:12.6.0 proto-repl:open-file-containing-var (span.syntax--entity.syntax--name.syntax--function.syntax--clojure)
     -0:03.2.0 proto-repl:print-var-documentation (span.syntax--entity.syntax--name.syntax--function.syntax--clojure)

Non-Core Packages

highlight-selected 0.13.1 
Hydrogen 1.12.0 
ink 0.6.5 
lisp-paredit 0.5.5 
Parinfer 1.17.0 
platformio-ide-terminal 2.5.0 
pretty-json 1.6.3 
proto-repl 1.4.20 
proto-repl-charts 0.4.1 
Sublime-Style-Column-Selection 1.7.4 
swackets 0.26.0 
tool-bar 1.1.0 
pvande commented 7 years ago

Worked around this locally by changing lib/proyo-repl.coffee as follows:

            range = editor.getSelectedBufferRange()
            range.end.column = Infinity
-           inlineHandler = @repl.makeInlineHandler(editor, range, (value)=>
-             [varName, {}, [parser(value)]])
            @executeCodeInNs code,
                            displayInRepl: false
-                           resultHandler: inlineHandler
+                           resultHandler: (result, options) =>
+                             handler = @repl.makeInlineHandler editor, range, (value) =>
+                               [varName, {}, [parser(value)]]
+                             handler(result, options)

It's a hack, but deferring the lookup of @repl seems to work a charm.