t9md / atom-vim-mode-plus-ex-mode

Experiment to implement ex-mode for vim-mode-plus
https://atom.io/packages/vim-mode-plus-ex-mode
MIT License
30 stars 11 forks source link

Uncaught TypeError: Cannot read property 'w' of undefined #16

Open lukebarton opened 7 years ago

lukebarton commented 7 years ago

[Enter steps to reproduce below:] Happens when typing :qw<backspace><backspace>w<return>

Atom Version: 1.10.2 Electron Version: 0.37.8 System: Mac OS X 10.11.4 Thrown From: vim-mode-plus-ex-mode package, v0.5.0

Stack Trace

Uncaught TypeError: Cannot read property 'w' of undefined

At /Users/lukebarton/.atom/packages/vim-mode-plus-ex-mode/lib/view.coffee:56

TypeError: Cannot read property 'w' of undefined
    at View.module.exports.View.executeCommand (/Users/lukebarton/.atom/packages/vim-mode-plus-ex-mode/lib/view.coffee:56:30)
    at View.module.exports.View.confirmed (/Users/lukebarton/.atom/packages/vim-mode-plus-ex-mode/lib/view.coffee:132:6)
    at View.module.exports.SelectListView.confirmSelection (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:338:21)
    at space-pen-div.atom.commands.add.core:confirm (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:109:19)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:98:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)

Commands

     -0:11 vim-mode-plus:activate-normal-mode (atom-text-editor.editor.vim-mode-plus.is-focused.insert-mode)
     -0:10.9.0 vim-mode-plus:move-up (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:10.7.0 vim-mode-plus:insert-after (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:10.1.0 snippets:next-tab-stop (atom-text-editor.editor.vim-mode-plus.is-focused.insert-mode)
     -0:10 snippets:expand (atom-text-editor.editor.vim-mode-plus.is-focused.insert-mode)
     -0:10 editor:indent (atom-text-editor.editor.vim-mode-plus.is-focused.insert-mode)
     -0:04.3.0 editor:newline (atom-text-editor.editor.vim-mode-plus.insert-mode.is-focused)
     -0:03.7.0 core:move-down (atom-text-editor.editor.vim-mode-plus.insert-mode.is-focused)
     -0:03.2.0 vim-mode-plus:activate-normal-mode (atom-text-editor.editor.vim-mode-plus.insert-mode.is-focused)
  2x -0:02.9.0 vim-mode-plus:join (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:02.2.0 vim-mode-plus:reset-normal-mode (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:01.9.0 vim-mode-plus:delete-right (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:01.5.0 vim-mode-plus:reset-normal-mode (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
     -0:01.4.0 vim-mode-plus-ex-mode:open (atom-text-editor.editor.vim-mode-plus.is-focused.normal-mode)
  2x -0:00.3.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:00.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {
    "disabledPackages": [
      "git-plus"
    ],
    "themes": [
      "one-dark-ui",
      "monokai-galaxy-syntax-for-one-dark"
    ]
  }
}

Installed Packages

# User
.bin, vundefined (inactive)
atom-beautify, v0.29.11 (active)
atom-material-ui, v1.3.6 (inactive)
autocomplete-paths, v1.0.2 (active)
chester-atom-syntax, v0.1.1 (inactive)
color-picker, v2.2.2 (active)
editorconfig, v1.4.1 (active)
emmet, v2.4.3 (active)
file-icons, v1.7.19 (active)
git-diff-details, v1.3.0 (active)
git-plus, v5.17.0 (inactive)
highlight-selected, v0.11.2 (active)
hyperclick, v0.0.37 (active)
ide-purescript, v0.14.7 (inactive)
javascript-snippets, v1.2.1 (active)
js-hyperclick, v1.5.0 (active)
jumpy, v3.1.1 (inactive)
language-purescript, v0.8.1 (active)
lines, v0.13.1 (inactive)
linter, v1.11.16 (active)
linter-eslint, v7.3.0 (active)
merge-conflicts, v1.4.4 (active)
minimap, v4.25.0 (active)
minimap-cursorline, v0.2.0 (active)
minimap-git-diff, v4.3.1 (active)
monokai, v0.18.0 (inactive)
monokai-galaxy-syntax-for-one-dark, v0.7.0 (active)
native-ui, v0.18.3 (inactive)
pigments, v0.34.0 (active)
platformio-ide-terminal, v2.2.0 (active)
react, v0.16.0 (active)
react-snippets, v0.4.2 (active)
split-diff, v1.0.4 (inactive)
sync-settings, v0.7.2 (active)
tree-view-git-modified, v0.7.1 (active)
vim-mode-plus, v0.56.0 (active)
vim-mode-plus-ex-mode, v0.5.0 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.5.0 (active)
one-light-ui, v1.5.0 (inactive)
one-dark-syntax, v1.3.0 (inactive)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.5.3 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.39.0 (active)
find-and-replace, v0.201.0 (active)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.2 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.65.0 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.242.2 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.100.2 (active)
timecop, v0.33.2 (active)
tree-view, v0.208.2 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages
aldaty commented 7 years ago

Although the case specified in the issue seems to be fixed in v0.60.1, you can still reliably get this error:

  1. press ':'
  2. press a letter, which is not part of eny ex-mode command, for example 'j'
  3. press backspace, then 'w', then Enter

Happens all the time when I try to do a quick ':w' and type some other letter by accident. Really annoying, because then I have to reach for the mouse to close the exception thrown by the editor :(