halohalospecial / atom-elmjutsu

A bag of tricks for developing with Elm. (Atom package)
https://atom.io/packages/elmjutsu
MIT License
192 stars 24 forks source link

Uncaught Error: Trying to send an unexpected type of value through port `fileContentsChangedSub`:... #39

Closed pauldijou closed 7 years ago

pauldijou commented 7 years ago

[Enter steps to reproduce below:]

  1. Enable elmjutsu
  2. Open an Elm file

Atom Version: 1.13.0 Electron Version: 1.3.13 System: Ubuntu 16.04.1 Thrown From: elmjutsu package, v2.18.0

Stack Trace

Uncaught Error: Trying to send an unexpected type of value through port fileContentsChangedSub: Expecting an object with a field named name at _[2].values.values[3] but instead got: {"args":["url"]}

At /home/paul/.atom/packages/elmjutsu/elm/indexer.js:3528

Error: Trying to send an unexpected type of value through port `fileContentsChangedSub`:
Expecting an object with a field named `name` at _[2].values.values[3] but instead got: {"args":["url"]}
    at postInitSend (/home/paul/.atom/packages/elmjutsu/elm/indexer.js:3528:10)
    at Object.send (/home/paul/.atom/packages/elmjutsu/elm/indexer.js:3542:3)
    at /home/paul/.atom/packages/elmjutsu/lib/indexing.js:98:48

Commands

     -1:42.7.0 command-palette:toggle (atom-pane.pane.active)
     -1:41.1.0 core:confirm (input.hidden-input)
     -1:41.1.0 settings-view:open (atom-pane.pane.active)

Config

{
  "core": {
    "disabledPackages": [
      "activate-power-mode"
    ]
  },
  "elmjutsu": {
    "cacheDirectory": "/tmp/elmjutsu21570BgtwbKN9XIHA"
  }
}

Installed Packages

# User
activate-power-mode, v1.0.2 (inactive)
atom-typescript, v10.1.12 (active)
elmjutsu, v2.18.0 (active)
emmet, v2.4.3 (active)
hyperclick, v0.0.39 (active)
keyboard-localization, v1.4.18 (active)
language-elm, v1.5.0 (active)
language-scala, v1.1.6 (active)
linter, v1.11.18 (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 (active)
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.1 (active)
metrics, v1.1.2 (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
gothy commented 7 years ago

I'm experiencing the very same issue. Just cloned this boilerplate https://github.com/gkubisa/elm-app-boilerplate

gothy commented 7 years ago

So, I've narrowed the issue to AppRoute.elm in the boilerplate. Experiments brought me to this https://github.com/gkubisa/elm-app-boilerplate/blob/master/elm/App/AppRoute.elm#L50

Renaming the toString function to toStr seems to "fix" the "error". I'm not sure if it's this ticket is a good place to discuss this, but I found it interesting since it relates to the very special toString function...

halohalospecial commented 7 years ago

Hi, thanks a lot for taking the time to debug this! Looks like the problem is that the current regex is not robust enough to handle code not following elm-format rules (for type annotations and function definitions). In the case of AppRoute.elm, there's no space between toString and the succeeding colon. For now, try to format the files first using elm-format (e.g. elm-format src/) before opening them. Will include a fix in the next release. Thanks again!