littlebee / git-time-machine

Atom package that allows you to travel back in commit history
MIT License
1.12k stars 36 forks source link

Uncaught TypeError: Cannot read property 'handleCursorChange' of null #123

Open serenaleung opened 7 years ago

serenaleung commented 7 years ago

[Enter steps to reproduce:]

  1. ...
  2. ...

Atom: 1.18.0 x64 Electron: 1.3.15 OS: Mac OS X 10.12.5 Thrown From: git-time-machine package 1.5.9

Stack Trace

Uncaught TypeError: Cannot read property 'handleCursorChange' of null

At /Users/serena/.atom/packages/git-time-machine/node_modules/split-diff/lib/split-diff.coffee:166

TypeError: Cannot read property 'handleCursorChange' of null
  at /packages/git-time-machine/node_modules/split-diff/lib/split-diff.coffee:166:18
  at Function.module.exports.Emitter.simpleDispatch (<embedded>:63093:20)
  at Emitter.module.exports.Emitter.emit (<embedded>:63209:34)
  at TextEditor.module.exports.TextEditor.cursorMoved (<embedded>:4364:33)
  at Selection.module.exports.Selection.markerDidChange (<embedded>:32873:27)
  at <embedded>:31993:30
  at Function.module.exports.Emitter.simpleDispatch (<embedded>:63093:20)
  at Emitter.module.exports.Emitter.emit (<embedded>:63209:34)
  at DisplayMarker.module.exports.DisplayMarker.notifyObservers (<embedded>:204729:33)
  at <embedded>:204534:32
  at Function.module.exports.Emitter.simpleDispatch (<embedded>:63093:20)
  at Emitter.module.exports.Emitter.emit (<embedded>:63209:34)
  at Marker.module.exports.Marker.emitChangeEvent (<embedded>:119510:26)
  at Marker.module.exports.Marker.update (<embedded>:119451:18)
  at Marker.module.exports.Marker.setHeadPosition (<embedded>:119233:25)
  at DisplayMarker.module.exports.DisplayMarker.setHeadBufferPosition (<embedded>:204627:38)
  at DisplayMarker.module.exports.DisplayMarker.setHeadScreenPosition (<embedded>:204635:25)
  at <embedded>:31280:37
  at Cursor.module.exports.Cursor.changePosition (<embedded>:31892:13)
  at Cursor.module.exports.Cursor.setScreenPosition (<embedded>:31278:25)
  at <embedded>:32166:32
  at Selection.module.exports.Selection.modifySelection (<embedded>:32924:13)
  at Selection.module.exports.Selection.selectToScreenPosition (<embedded>:32153:25)
  at TextEditor.module.exports.TextEditor.selectToScreenPosition (<embedded>:4544:27)
  at <embedded>:6647:37
  at <embedded>:6789:21
  at <embedded>:6238:17

Commands

     -2:05.5.0 git-time-machine:toggle (atom-workspace.workspace.scrollbars-visible-when-scrolling.theme-iceberg-syntax.theme-one-dark-ui.find-visible)
     -1:14.7.0 core:backspace (input.hidden-input)
     -1:14.2.0 core:undo (input.hidden-input)
 14x -0:20.7.0 core:backspace (input.hidden-input)

Non-Core Packages

atom-bootstrap3 1.2.12 
atom-bootstrap4 1.4.0 
atom-typescript 11.0.6 
busy-signal 1.4.3 
color-picker 2.2.5 
erb-helper 1.1.0 
git-time-machine 1.5.9 
iceberg-syntax 0.2.3 
indent-guide-improved 1.4.12 
intentions 1.1.2 
kimi-syntax 0.3.2 
language-babel 2.66.0 
language-ejs 0.4.0 
language-javascript-jsx 0.3.7 
language-slim 0.5.0 
linter 2.2.0 
linter-bootlint 1.0.4 
linter-eslint 8.2.1 
linter-jshint 3.1.2 
linter-markdown 4.0.1 
linter-rubocop 2.1.1 
linter-ui-default 1.6.2 
nuclide 0.232.0 
pure-syntax 0.2.1 
ArtKoshlatiy commented 7 years ago

Sorry. Don-t work this Atom.io plugin

[Enter steps to reproduce:]

  1. ...
  2. ...

Atom: 1.18.0 x64 Electron: 1.3.15 OS: Linux Mint Thrown From: git-time-machine package 1.5.9

Stack Trace

Uncaught TypeError: Cannot read property 'handleCursorChange' of null

At /home/artk/.atom/packages/git-time-machine/node_modules/split-diff/lib/split-diff.coffee:166

TypeError: Cannot read property 'handleCursorChange' of null
    at /packages/git-time-machine/node_modules/split-diff/lib/split-diff.coffee:166:18
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:25:20)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:141:34)
    at TextEditor.module.exports.TextEditor.cursorMoved (/usr/share/atom/resources/app/src/text-editor.js:2136:33)
    at Selection.module.exports.Selection.markerDidChange (/usr/share/atom/resources/app/src/selection.js:921:27)
    at /usr/share/atom/resources/app/src/selection.js:41:30
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:25:20)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:141:34)
    at DisplayMarker.module.exports.DisplayMarker.notifyObservers (/usr/share/atom/resources/app/node_modules/text-buffer/lib/display-marker.js:248:33)
    at DisplayMarkerLayer.module.exports.DisplayMarkerLayer.notifyObserversIfMarkerScreenPositionsChanged (/usr/share/atom/resources/app/node_modules/text-buffer/lib/display-marker-layer.js:179:22)
    at displayMarkerLayersById.forEach (/usr/share/atom/resources/app/node_modules/text-buffer/lib/display-layer.js:769:19)
    at Map.forEach (native)
    at DisplayLayer.notifyObserversIfMarkerScreenPositionsChanged (/usr/share/atom/resources/app/node_modules/text-buffer/lib/display-layer.js:768:40)
    at DisplayLayer.reset (/usr/share/atom/resources/app/node_modules/text-buffer/lib/display-layer.js:87:18)
    at TextEditor.module.exports.TextEditor.update (/usr/share/atom/resources/app/src/text-editor.js:473:31)
    at TextEditor.module.exports.TextEditor.setWidth (/usr/share/atom/resources/app/src/text-editor.js:3470:20)
    at TextEditorPresenter.module.exports.TextEditorPresenter.updateClientWidth (/usr/share/atom/resources/app/src/text-editor-presenter.js:926:26)
    at TextEditorPresenter.module.exports.TextEditorPresenter.updateScrollbarDimensions (/usr/share/atom/resources/app/src/text-editor-presenter.js:1001:27)
    at TextEditorPresenter.module.exports.TextEditorPresenter.updateHorizontalDimensions (/usr/share/atom/resources/app/src/text-editor-presenter.js:895:20)
    at TextEditorPresenter.module.exports.TextEditorPresenter.getPostMeasurementState (/usr/share/atom/resources/app/src/text-editor-presenter.js:136:18)
    at TextEditorComponent.module.exports.TextEditorComponent.updateSync (/usr/share/atom/resources/app/src/text-editor-component.js:204:44)
    at TextEditorComponent.module.exports.TextEditorComponent.becameVisible (/usr/share/atom/resources/app/src/text-editor-component.js:305:27)
    at TextEditorComponent.module.exports.TextEditorComponent.checkForVisibilityChange (/usr/share/atom/resources/app/src/text-editor-component.js:995:22)
    at atom-text-editor.TextEditorElement.attachedCallback (/usr/share/atom/resources/app/src/text-editor-element.js:87:22)
    at atom-pane-container.module.exports.PaneContainerElement.rootChanged (/usr/share/atom/resources/app/src/pane-container-element.js:42:14)
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:25:20)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:141:34)
    at PaneContainer.setRoot (/usr/share/atom/resources/app/src/pane-container.js:135:24)
    at PaneContainer.replaceChild (/usr/share/atom/resources/app/src/pane-container.js:143:16)
    at PaneAxis.module.exports.PaneAxis.reparentLastChild (/usr/share/atom/resources/app/src/pane-axis.js:232:25)
    at PaneAxis.module.exports.PaneAxis.removeChild (/usr/share/atom/resources/app/src/pane-axis.js:197:27)
    at /usr/share/atom/resources/app/src/pane-axis.js:240:30
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:25:20)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app/node_modules/event-kit/lib/emitter.js:141:34)
    at Pane.module.exports.Pane.destroy (/usr/share/atom/resources/app/src/pane.js:895:28)
    at Pane.module.exports.Pane.removeItem (/usr/share/atom/resources/app/src/pane.js:629:27)
    at Pane.module.exports.Pane.destroyItem (/usr/share/atom/resources/app/src/pane.js:685:22)
    at TabBarView.module.exports.TabBarView.closeTab (/usr/share/atom/resources/app/node_modules/tabs/lib/tab-bar-view.js:340:32)
    at HTMLDivElement.TabView.didClickCloseIcon (/usr/share/atom/resources/app/node_modules/tabs/lib/tab-bar-view.js:228:25)

Commands

     -6:37.5.0 timecop:view (input.hidden-input)
     -5:14.1.0 spell-check:correct-misspelling (div.)
  2x -5:03.9.0 git-time-machine:toggle (div.lines)

Non-Core Packages

ask-stack 2.2.0 
atom-clock 0.1.13 
atom-html-preview 0.1.22 
atom-html-templates 0.1.3 
atom-html-templates-extended 0.3.0 
atom-i18n 0.11.0 
atom-material-ui 2.0.4 
atom-python-run 0.7.3 
atom-translator 0.2.1 
autocomplete-java 1.2.7 
autocomplete-json 5.5.0 
autocomplete-python 1.9.1 
autocomplete-R 0.6.0 
autocomplete-xml 0.9.4 
django-templates 0.5.0 
file-icons 2.1.9 
flex-tool-bar 0.12.0 
git-plus 7.9.3 
git-time-machine 1.5.9 
highlight-selected 0.13.1 
language-markdown 0.25.1 
language-powershell 4.0.0 
markdown-pdf 1.5.4 
markdown-preview-plus 2.4.10 
markdown-themeable-pdf 1.2.0 
markdown-writer 2.6.5 
minimap 4.29.3 
monokai-seti 0.9.0 
pdf-view 0.59.0 
pdfify 0.2.0 
pigments 0.39.1 
pure-syntax 0.3.0 
python-tools 0.6.9 
rails-i18n-autocomplete 0.4.0 
seti-ui 1.9.0 
tool-bar 1.1.0 
tool-bar-markdown-writer 0.3.0 
update-changelogs 0.1.0 
cristianbalan-mf commented 6 years ago

+1

filipre commented 6 years ago

I think soft wrap is causing this. If I enable/disable soft wrap in the settings I get this issue.

Hazzard13 commented 6 years ago

Just received this issue after closing a diff, doing some other work in the other panel, and then returning to the panel I had diffed originally. Closing time machine changed nothing, and I continued to get this error every time I tried to click elsewhere in the document. Closing the tab and reopening the file resolved the issue.

darron1217 commented 6 years ago

Any update on this?

darron1217 commented 6 years ago

The only workaround that I found is...

When you want to close the split-diff pane, close the time-machine pane first. If then, you can avoid this annoying bug