Search code examples
hhvmhacklangwatchmannuclide-editor

Nuclide IDE & Remote Server Setup with Watchman


Facebook recently announced Nuclide, that supports Remote Development and Hack.

I have followed all the installation instructions, but autocomplete/inline error report/click-to-definition features do not work, whereas nuclide-language-hack, nuclide-file-tree/nuclide-remote-projects work as expected (and nuclide-server from the server part / .hhconfig file is included on project root ).

I have installed them all except flow by filtering the results of nuclide-.

Are these features unsupported in remote access, or i have made something wrong in installation (which is pretty straightforward i think) ?

Moreover, i do not understand how watchman is configured to work properly . I have installed it using the following commands (server runs Linux, i have also installed inotify-tools)

$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

and i used the following to watch my project

$ watchman watch /my/project/root

and watcher seems to be established fine.

However Nuclide reports:

Watcher failed to start - watcher features disabled!

Details: socket hang up

I am sorry that i ask installation advices here, but i do not think the above should be asked on Github either.

Thanks!


Solution: As MostafaEweda suggested, i tried to compile from source. apm or package installation through atom settings, did not work for me. nuclide-installer did not install anything at all, and installing by hand nuclide-* packages did not work either.

For Windows Users : Python3.4 throws some runtime errors (although documentation says Python 2.6 or later is supported). I used Python2.7 and these errors seem to go away.

Tip : When you install nuclide, you have to wait some minutes and atom will become unresponsive. Be patient!


Solution

  • It seems that Nuclide's WatchmanClient can't connect to your installed watchman for some reason.

    Note that the tests for WatchmanClient is currently disabled, but maybe it will show some useful error when you remove the x from line 20 of WatchmanClient-spec.js and run: npm test in the watchman-helpers directory or add some logging or stack trace in the _command function.

    However, all of these are unrelated to the Hack features not working for you.

    I recommend trying to build Nuclide from source by:

    git clone [email protected]:facebook/nuclide.git ~/nuclide && cd ~/nuclide && ./scripts/dev/setup

    Then, use /home/$USER/pkg/nuclide/server/nuclide-start-server as the remote server command.

    Finally, the contents of log files: ~/nuclide.nohup.out and /tmp/nuclide-logs/nuclide.log on your client and server could help you understand what's going on.