GUI and IDE setup
The V8 source code can be browsed online with Chromium Code Search.
This project’s Git repository may be accessed using many other client programs and plug-ins. See your client’s documentation for more information.
For instructions how to set up Eclipse for V8, see this document.
Visual Studio Code and cquery #
VSCode and cquery provide good code navigation capabilities. It offers “go to definition” as well as “find all references” for C++ symbols and works quite well. This section describes how to get a basic setup on a *nix system.
Install VSCode #
Install VSCode in your preferred way. The rest of this guide assumes that you can run VSCode from the command line via the command
Install cquery #
Clone cquery from cquery in a directory of your choice. We use
CQUERY_DIR="$HOME/cquery" in this guide.
git clone https://github.com/cquery-project/cquery "$CQUERY_DIR"
git submodule update --init
./waf configure build
If anything goes wrong, be sure to check out cquery’s getting started guide.
You can use
git pull && git submodule update to update cquery at a later time (don't forget to rebuild via
./waf configure build).
Install and configure cquery-plugin for VSCode #
Install the cquery extension from the marketplace in VSCode. Open VSCode in your V8 checkout:
Go to settings in VSCode, for example, via the shortcut Ctrl + ,.
Add the following to your workspace configuration, replacing
"cquery.completion.include.blacklist": [".*/.vscache/.*", "/tmp.*", "build/.*"],
compile_commands.json to cquery #
The last step is to generate a compile_commands.json to cquery. This file will contain the specific compiler command lines used to build V8 to cquery. Run the following command in the V8 checkout:
ninja -C out.gn/x64.release -t compdb cxx cc > compile_commands.json
This needs to be re-executed from time to time to teach cquery about new source files. In particular, you should always re-run the command after a
BUILD.gn was changed.
Other useful settings #
The auto-closing of parenthesis in Visual Studio Code does not work that well. It can be disabled with
in the user settings.
The following exclusion masks help avoid unwanted results when using search (Ctrl+Shift+F):
"**/.vscode": true, // this is a default value
"**/out*": true, // this is a default value
"**/build*": true // this is a default value