facebookarchive / nuclide

An open IDE for web and native mobile development, built on top of Atom
https://nuclide.io
Other
7.79k stars 682 forks source link

Autocomplete and Snippets stopped working with version 0.273.0 #1428

Open brybrophy opened 6 years ago

brybrophy commented 6 years ago

Issue and Steps to Reproduce

After updating to the latest version of Nuclide, my autocomplete/snippet suggestions dropdown stopped showing up.

Expected Behavior

When typing, the autocomplete/snippets dropdown displays and suggestions are able to be selected.

Actual Behavior

No suggestions are given and the dropdown is not rendered.

Versions

Additional Details

szeller commented 6 years ago

I've been experiencing the same thing. I had hoped that updating to the latest atom and nuclide today would fix it but it's still showing up. 0.271.0 is the last version where autocomplete works for me.

Versions

Atom: 1.23.3 Nuclide: 0.275.0 Client OS: 10.13.2

Additional Details

MagicPython@1.0.12 atom-material-syntax@1.0.8 atom-material-syntax-dark@1.0.0 atom-material-syntax-light@0.4.6 atom-material-ui@2.1.1 busy-signal@1.4.3 color-picker@2.2.5 file-icons@2.1.15 git-blame@1.4.0 git-log@0.4.1 git-plus@7.10.0 gruvbox-plus-syntax@1.3.1 haskell-grammar@0.4.0 hey-pane@1.1.0 highlight-selected@0.13.1 incremental-search@5.2.2 intentions@1.1.5 isotope-light-ui@2.3.0 isotope-ui@2.8.5 language-babel@2.81.1 language-csv@1.1.2 language-graphql@0.9.0 language-haskell@1.17.3 language-ini@1.19.0 language-lua@0.9.11 language-markdown@0.25.1 language-ocaml@1.9.5 language-rust@0.4.12 language-scala@1.1.9 language-swift@0.5.0 language-thrift@1.0.2 linter@2.2.0 linter-eslint@8.4.0 linter-stylelint@4.2.0 linter-ui-default@1.6.10 merge-conflicts@1.4.5 minimap@4.29.7 minimap-highlight-selected@4.6.1 monokai@0.24.0 nord-atom-syntax@0.9.1 nord-atom-ui@0.11.0 northem-dark-atom-syntax@2.1.0 northem-dark-atom-ui@2.1.0 nuclide@0.275.0 nuclide-format-js@0.0.43 one-dark-vivid-syntax@1.8.0 package-sync@1.1.0 php-debug@0.2.6 pretty-json@1.6.4 pure-syntax@0.3.0 raml@0.2.0 rest-client@1.3.1 set-syntax@0.4.0 sort-lines@0.18.0 split-diff@1.5.2 tag@0.5.0 teletype@0.5.0 tool-bar@1.1.4 vivid@1.6.0 xml-formatter@0.11.0

ericbiewener commented 6 years ago

I'm experiencing the same, and can confirm that both autocomplete and snippets work on version 0.271.0.

ericbiewener commented 6 years ago

Looks like turning off the setting "Use RPC for local services" on version 0.275.0 gets things working again, BUT extremely slowly. I have to wait seconds for either snippets or autocomplete to show up with this approach.

It looks like having this setting on for version 0.271.0 throws errors, and 0.273.0 sought to fix it:

https://github.com/facebook/nuclide/issues/1412 https://github.com/facebook/nuclide/issues/1418

Perhaps that fix somehow broke the autocomplete/snippet functionality.

szeller commented 6 years ago

@hansonw any thoughts?

hansonw commented 6 years ago

Any error messages in the Atom devtools (cmd-opt-i)? You can also check $TMPDIR/nuclide-$USER-logs/nuclide.log for additional logging; I'd check for any errors there as well. (A paste would be super helpful if you don't mind sharing that!)

hansonw commented 6 years ago

I just noticed that nuclide-js-imports-client was enabled for the first time in v0.273.0 as well. If you open the Atom devtools console, you can type atom.config.set('nuclide.use.nuclide-js-imports-client', false) to see if disabling that has any effect.

hansonw commented 6 years ago

It'd also be helpful to mention what project(s) you're working on so I can try to repro; are these JavaScript projects or some other language?

szeller commented 6 years ago

Cool. I'll try some of those. I'm just using it for a standard react + babel + flow project

szeller commented 6 years ago

@hansonw I didn't notice anything crazy in the logs but I haven't had the chance to go through them in detail. I did try atom.config.set('nuclide.use.nuclide-js-imports-client', false) and that fixed the problem for me.

ericbiewener commented 6 years ago

@hansonw That config setting doesn't appear to have any effect for me, even after reloading the window. But I am getting numerous errors in my console, the last of which seems to be trying to get the autocomplete suggestions:

[2018-01-15T16:41:34.666Z] [ERROR] installErrorReporter - Caught unhandled rejection Timeout after 60000 for id: 26, Calling remote method getDiagnostics..
RpcTimeoutError: Timeout after 60000 for id: 26, Calling remote method getDiagnostics..
    at Call._timeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:181:20)
    at Call._timerId.setTimeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:144:14)

[2018-01-15T16:41:34.877Z] [ERROR] code-highlight - Error getting code highlights Timeout after 60000 for id: 27, Calling remote method highlight..
RpcTimeoutError: Timeout after 60000 for id: 27, Calling remote method highlight..
    at Call._timeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:181:20)
    at Call._timerId.setTimeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:144:14)

[2018-01-15T16:41:34.920Z] [ERROR] ActiveEditorRegistry - Error from provider for source.js.jsx Timeout after 60000 for id: 28, Calling remote method getCoverage..
RpcTimeoutError: Timeout after 60000 for id: 28, Calling remote method getCoverage..
    at Call._timeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:181:20)
    at Call._timerId.setTimeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:144:14)

[2018-01-15T16:41:35.809Z] [ERROR] code-highlight - Error getting code highlights Timeout after 60000 for id: 29, Calling remote method highlight..
RpcTimeoutError: Timeout after 60000 for id: 29, Calling remote method highlight..
    at Call._timeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:181:20)
    at Call._timerId.setTimeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:144:14)

[2018-01-15T16:41:42.153Z] [ERROR] installErrorReporter - Caught unhandled rejection Timeout after 60000 for id: 34, Calling remote method getAutocompleteSuggestions..
RpcTimeoutError: Timeout after 60000 for id: 34, Calling remote method getAutocompleteSuggestions..
    at Call._timeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:181:20)
    at Call._timerId.setTimeout (/Users/ericbiewener/Google Drive/Dev/Projects/Dotfiles/atom/packages/nuclide/pkg/nuclide-rpc/lib/RpcConnection.js:144:14)

I'm also using a pretty standard react+babel+flow project.

szeller commented 6 years ago

I tried something different. I cleaned out my atom install and moved my .atom directory to another location to start from scratch

  1. install atom via brew cask - brew cask install atom
  2. install nuclide - apm install nuclide@0.271.0
  3. start atom and configure to use project specific flow binary and restart

I found a simple project example to try out and it worked fine both with 0.271 and 0.275.0 https://github.com/frantic/redux-flow-example I was hoping that the simpler project would have the same problem 😞

Using my app from work, I tried it out again with both versions and had the same problem as originally. I've attached a log file that has both the nuclide-js-imports-server.log and nuclide.log from the project with issues

szeller commented 6 years ago

nuclide_logs.txt