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

Not working on cmake project #409

Closed janosimas closed 8 years ago

janosimas commented 8 years ago

Issue and Steps to Reproduce

I'm trying Nuclide in a big project: https://github.com/TerraMA2/terrama2

nothing seams to work, autocomplete, debugger, Code Diagnostics...

Expected Behavior

I disabled every installed package while running nuclide.

├── an-old-hope-syntax@0.5.0 ├── atom-debugger@0.1.6 ├── build@0.56.0 ├── build-cmake@0.3.1 ├── build-make@0.7.0 ├── file-type-icons@0.7.4 ├── git-plus@5.13.0 ├── haskell-grammar@0.4.0 ├── highlight-selected@0.11.2 ├── language-babel@2.15.8 ├── language-cmake@0.1.4 ├── language-cpp14@0.6.0 ├── language-ini@1.14.0 ├── language-ocaml@1.1.2 ├── language-qtpro@0.6.0 ├── language-thrift@1.0.2 ├── linter@1.11.3 ├── linter-clang@3.4.4 ├── nuclide@0.124.0 ├── open-recent@5.0.0 ├── selection-highlight@0.1.4 ├── sort-lines@0.14.0 ├── switch-header-source@0.20.0 ├── terminal-plus@0.14.5 ├── todo-show@1.4.0 ├── tool-bar@0.3.0 └── you-complete-me@0.7.1

mostafaeweda commented 8 years ago

I'm pretty sure we only support buck projects for C++ features. /cc @hansonw

hansonw commented 8 years ago

Have you created a compile_commands.json file at the root of your project yet? You can follow the steps here: http://clang.llvm.org/docs/JSONCompilationDatabase.html

janosimas commented 8 years ago

Yes and "no", yes -> I'm using CMake to generate a compile_commands.json, other atom plugins use it, so it's ok. "no" -> I created a symbolic link in my project folder, the original is in the build folder.

hansonw commented 8 years ago

Oh, I just noticed you're on Ubuntu. v0.125 (just released) contains 2895c7a26dc06da3b99120bb8589289d6d4412da, which is necessary to get C++ support to work on Linux. Could you give it another try with the updated version? Also, make sure libclang is installed and in your library path.

If it still doesn't work, could you open the Atom console and paste any relevant logs?

fcrisciani commented 8 years ago

Client:

Steps: 1) Opened the remote project 2) Did a sim link of the compile_commands.json into the root directory of the project.

Issue: The ide does not recognize that is a git repo No C++ features are working.

In the dev console the only thing that I see is: Window load time: 4194ms /Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-component.js:982 /deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details. /Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-component.js:982 ::shadow pseudo-element is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details. consoleAppender.js:39 [2016-03-21T18:21:49.686Z] [INFO] nuclide - WebSocket connected consoleAppender.js:39 [2016-03-21T18:21:50.614Z] [INFO] nuclide - Watcher Features Initialized for project: nuclide://phy:9090/home/flavioc/work EXISTING consoleAppender.js:39 [2016-03-21T18:21:50.615Z] [INFO] nuclide - Watcher Features Ended for project: nuclide://phy:9090/home/flavioc/work consoleAppender.js:39 [2016-03-21T18:24:32.407Z] [ERROR] nuclide - Unknown Error: [object Object] /Users/flavioc/.atom/packages/nuclide/pkg/nuclide-datatip/lib/DatatipManager.js:17 Uncaught (in promise) Unknown Error: [object Object]step @ /Users/flavioc/.atom/packages/nuclide/pkg/nuclide-datatip/lib/DatatipManager.js:17

janosimas commented 8 years ago

The update didn't solve my problem. I pasted the log here: http://paste.ofcode.org/R6bnJnHeUj6bMQ3T8wafis

fcrisciani commented 8 years ago

@janosimas from your logs seems that you are missing the libstdc++ installed. try: sudo apt-get install libstdc++6

janosimas commented 8 years ago

It's installed, I don't know why of that error.

hansonw commented 8 years ago

@janosimas I see this line in the logs:

clang.cindex.LibclangError: libclang.so: cannot open shared object file: No such file or directory. To provide a path to libclang use Config.set_library_path() or Config.set_library_file().

This means we can't find libclang, which is required for C++ support.

1) Do you have libclang installed? 2) If so, libclang.so must be in your LD_LIBRARY_PATH (or the default one; this tends to be /usr/lib64 or /usr/lib).

hansonw commented 8 years ago

@fcrisciani could you try "Clang: clean and rebuild" (accessible from the command palette; Cmd+Shift+P)? Does anything appear in the dev console after doing that?

fcrisciani commented 8 years ago

@hansonw I see the very same error message, is there a way to retrieve for you more logs than the developer console?

fcrisciani commented 8 years ago

@hansonw I put a breakpoint in that line and I printed the error object, this is what I came out: Uncaught SyntaxError: Unexpected identifier(…) InjectedScript._evaluateOn @ VM1301:904InjectedScript._evaluateAndWrap @ VM1301:837InjectedScript.evaluateOnCallFrame @ VM1301:963step @ /Users/flavioc/.atom/packages/nuclide/pkg/nuclide-datatip/lib/DatatipManager.js:formatted:53

janosimas commented 8 years ago

I had to create a sym link to libclang.so in /usr/lib It was in /usr/lib/llvm-3.6/lib/

fcrisciani commented 8 years ago

@hansonw do you want to open a new ticket for my issue? Mine seems more like an issue with remote and cmake.

hansonw commented 8 years ago

@fcrisciani Well we have no CMake support actually :P but yeah yours seems like a different issue altogether. Certainly we shouldn't have any uncaught syntax errors lying around - that "(...)" is typically clickable to expand the stack trace. Could you get the expanded error and create a new issue? Thanks!