Follow either the Compilation Database (recommended) or CMake instructions below to create the appropriate project description file in the fuchsia root directory.
Then in CLion choose Import Project from Sources and select the fuchsia root directory.
To improve performance you can try some or all of the following. They are only suggestions, we recommend checking with directly with JetBrains at https://intellij-support.jetbrains.com/hc to be sure what works best for your environment.
To speed up indexing time you can exclude directories you are not working with. You can do that in the Project View by right-clicking each directory and choosing Mark directory as->Excluded. Note the affected configuration is stored in <project>/.idea/misc.xml
See Control Source, Library, and Exclude Directories - Help | CLion for more information.
The fuchsia source tree has a fair number of git repositories. Scanning them can use CPU cycles for CLion. You can unregister the git repositories you are not working on under File -> Settings -> Version Control. They will still be listed there so you can add them back later if needed.
See Tuning CLion - Help | CLion for general tips on tweaking CLion JVM Options and Platform Properties. As that link suggests, contact CLion support for instructions regarding the options and values that might help you with whatever issue you are trying to solve.
See Helpful Vim tools for Fuchsia development.
There are multiple vscode setups known to work to different degrees. The sections below describe the different setups (pick one).
Install vscode-clangd. Disable the default C/C++ extension if you have it installed.
In settings, add:
"clangd.path": "<absolute path to fuchsia root directory>/buildtools/linux-x64/clang/bin/clangd",
Finally, follow the Compilation Database instructions below to generate the compile_commands.json
in the fuchsia root directory. Then reload vscode to enjoy the results.
Install the default C/C++ extension suggested by vscode.
You can use tasks to configure a compilation step.
There are two ways of describing a project's source files that can be used with fuchsia - CMake or Compilation Database. They are described below.
Note these approaches are only intended to help the IDE find and parse the source files. Building should still be done with fx build
.
The fuchsia.cmake file located in this directory can be used with IDEs that support CMake to include most of the fuchsia source files.
To use, create a CMakeLists.txt file in the fuchsia root directory with the following contents. Then use it normally with your IDE.
cmake_minimum_required(VERSION 3.9) include(${PROJECT_SOURCE_DIR}/docs/development/languages/c-cpp/fuchsia.cmake)
A Compilation Database file can be generated using fx compdb
. This will create/update the file compile_commands.json
in the fuchsia root directory. When you add, delete, or rename source files the command needs to be rerun to update the compile_commands.json
file.
NOTE: If using goma (currently only Googlers), you should run the following instead of fx compdb. It will remove the gomacc entries that confuse CLion. See https://youtrack.jetbrains.com/issue/CPP-15475 for background.
fx compdb && perl -pi -e 's|/[/\w]+/gomacc ||' compile_commands.json
NOTE: There is an ongoing issue where CLion shows compiler errors for a few hundred files in the Fuchsia source code. Other files should work fine in CLion.