quintanar401 / autocomplete-kdb-q

Autocomplete/linter for KDB-Q
MIT License
13 stars 6 forks source link

Uncaught Error: Expected popped scope to be comment.block.simple.q, but it was undefined #5

Closed seizetheday closed 7 years ago

seizetheday commented 7 years ago

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 1.13.1 Electron Version: 1.3.13 System: Microsoft Windows 10 Pro Thrown From: autocomplete-kdb-q package, v0.5.5

Stack Trace

Uncaught Error: Expected popped scope to be comment.block.simple.q, but it was undefined

At C:\Users\Roy\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\first-mate\lib\grammar-registry.js:232

Error: Expected popped scope to be comment.block.simple.q, but it was undefined
    at GrammarRegistry.module.exports.GrammarRegistry.decodeTokens (C:\Users\Roy\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\first-mate\lib\grammar-registry.js:232:19)
    at TokenizeLineResult.get (C:\Users\Roy\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\first-mate\lib\grammar.js:357:30)
    at Parser.module.exports.Parser.parseFile (file:///C:/Users/Roy/.atom/packages/autocomplete-kdb-q/lib/parser.coffee:81:22)
    at file:///C:/Users/Roy/.atom/packages/autocomplete-kdb-q/lib/parser.coffee:38:18
    at Function.module.exports.Emitter.simpleDispatch (C:\Users\Roy\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\event-kit\lib\emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (C:\Users\Roy\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\event-kit\lib\emitter.js:129:28)
    at TokenBuffer.module.exports.TokenBuffer.updateNextChunk (C:\Users\Roy\.atom\packages\autocomplete-kdb-q\lib\tokenBuffer.coffee:62:16)
    at C:\Users\Roy\.atom\packages\autocomplete-kdb-q\lib\tokenBuffer.coffee:71:17
    at C:\Users\Roy\.atom\packages\autocomplete-kdb-q\node_modules\underscore\underscore.js:666:47

Commands

     -0:47.1.0 vim-mode-plus:activate-insert-mode (input.hidden-input)
  3x -0:46.4.0 core:backspace (input.hidden-input)
     -0:04.8.0 core:move-left (input.hidden-input)
  2x -0:04.0 core:backspace (input.hidden-input)

Config

{
  "core": {
    "disabledPackages": [
      "vim-mode"
    ],
    "packagesWithKeymapsDisabled": [],
    "telemetryConsent": "no"
  }
}

Installed Packages

# User
autocomplete-kdb-q, v0.5.5 (active)
language-kdb-q, v0.3.0 (active)
vim-mode, v0.65.2 (inactive)
vim-mode-plus, v0.82.0 (active)
atom-dark-syntax, v0.28.0 (inactive)
atom-dark-ui, v0.53.0 (inactive)
atom-light-syntax, v0.29.0 (inactive)
atom-light-ui, v0.46.0 (inactive)
base16-tomorrow-dark-theme, v1.4.0 (inactive)
base16-tomorrow-light-theme, v1.4.0 (inactive)
one-dark-ui, v1.8.2 (active)
one-light-ui, v1.8.2 (inactive)
one-dark-syntax, v1.6.0 (active)
one-light-syntax, v1.6.0 (inactive)
solarized-dark-syntax, v1.1.1 (inactive)
solarized-light-syntax, v1.1.1 (inactive)
about, v1.7.2 (active)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.14.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.33.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.29.0 (inactive)
autosave, v0.23.2 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.43.2 (active)
bracket-matcher, v0.85.1 (active)
command-palette, v0.39.1 (inactive)
deprecation-cop, v0.55.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.40.0 (active)
find-and-replace, v0.204.5 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.2.0 (active)
go-to-line, v0.31.2 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.1 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.159.3 (active)
metrics, v1.1.3 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.2 (inactive)
settings-view, v0.244.0 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.5 (active)
status-bar, v1.6.0 (active)
styleguide, v0.48.0 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.1 (active)
timecop, v0.33.2 (active)
tree-view, v0.211.1 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.39.0 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (active)
language-coffee-script, v0.48.1 (active)
language-csharp, v0.13.0 (active)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (active)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (active)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.37.0 (active)
language-php, v0.37.3 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (active)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (active)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)

# Dev
No dev packages
quintanar401 commented 7 years ago

Could you clarify the context of this error? Is it possible to reproduce it?

seizetheday commented 7 years ago

When I enter any word in a q file, it will trigger errors. Errors can be reproduced every time.

seizetheday commented 7 years ago

This package vim-mode-plus may be the reason. If I disable vim-mode-plus, no errors again.

quintanar401 commented 7 years ago

hmm, works in my atom

quintanar401 commented 7 years ago

Don't understand the reason. Please ensure that vim-plus and atom have the latest version. If you do nothing then enter a symbol and then do nothing again and error happens then there is something out of order because such an error would happen every time.

The only place where ruleStack can be wrong is at C:\Users\Roy.atom\packages\autocomplete-kdb-q\lib\tokenBuffer.coffee line 67

You may try to add an assert:

if n > 0 and @lines[n-1].data.ruleStack is null
   console.error "bad rule stack entry"
   _.defer => @updateNextChunk 0
   return
EdrinP commented 7 years ago

Hi @quintanar401 I'm also getting the same error. Steps to reproduce:

  1. Create new q file
  2. Type a multi-line comment. For example
    foo:1
    /
    abc
    \
    bar:2
  3. Restart Atom (this is required)
  4. Reopen Atom and type anything in the file. Shortly after, this exception will pop up, multiple times.

Atom version 1.14.3 x64. Windows 7. Latest versions of the 3 *kdb-q packages. I do not have the vim package of above poster.

quintanar401 commented 7 years ago

Yes, there was an issue with the atom grammar package - it doesn't cache tokens property and when it calculates it it breaks its own state so the second calc may cause an exception. Also I've noticed that reparse/retokenizing was not working correctly for big comments and fixed it too.