Expand All
Welcome to Nova!
Projects
Editor
Terminals
Previews
Git
Tasks
Debugging
Remote Files
Extensions
Appendix: Settings
FAQs
Support

Debug Tasks

Set up your project for debugging.

Nova supports a range of debugging features, such as the ability to set breakpoints in your code, run your application for debugging, inspect variable values while running, and view console output from your applications.

To debug your code within Nova, you’ll first need to configure a Debug Task. This is a special type of Task that connects Nova to external tools for debugging using the Debug Adapter Protocol (github.io). Nova includes a number of Debug Tasks out of the box, but Extensions can also add their own to support additional languages or tools.

Adding a Debug Task in Project Settings.

Included Tasks

Nova supports the following Debug Tasks out of the box:

Google Chrome icon Chrome
Debug web applications running in Google Chrome, or other compatible Chromium-based browsers.
Deno icon Deno
Debug web applications using the Deno runtime.
Node.js icon Node.js
Debug web applications using the Node.js runtime.
PHP icon PHP
Debug PHP applications running on an existing server.
PHP icon PHP Local Web Server
Start a local PHP server and run an application for debugging.
Python icon Python
Debug a Python application running locally.
Python icon Python Remote
Debug a Python application running on a remote server.

Additional Debug Tasks can be added to Nova via Extensions.

Prerequisites

In order to use these Tasks, you’ll first need to make sure you have certain dependencies installed on your Mac.

Chrome

Requires Google Chrome to be installed on your Mac, or another browser compatible with the Chrome DevTools Protocol (github.io).

Deno and Node.js

Requires their respective frameworks to be installed on your Mac and available in your shell’s $PATH environment variable.

PHP

  1. Ensure PHP is installed on your Mac. You can use Homebrew (brew.sh) to install PHP by running brew install php.
  2. Ensure Xdebug is installed in your PHP enviroment. You can install Xdebug with PECL (php.net) by running pecl install xdebug.
  3. Ensure that your php.ini file has been set up to enable Xdebug. Generally, this is done automatically by the Xdebug install process. You can manually add the following to your php.ini file if needed:
[xdebug]
xdebug.mode = "debug"

Read More

Python

  1. Ensure Python 3.x is installed on your Mac, either globally or in an environment for your project.
  2. Ensure your Python environment has debugpy installed. You can install debugpy (pypi.org) with pip install debugpy.

NOTE: It is technically possible to use Python 2.x with debugpy, but this is not officially supported by Nova.

Configuring Tasks

Like other kinds of Tasks, you can add a Debug Task to a project from Project Settings > Tasks. Once added, you can configure the Task from Project Settings. The available settings will vary depending on the Debug Task used.

The available settings for a Chrome Debug Task.
The available settings for a Chrome Debug Task.

Some common settings found in multiple Tasks include:

Launch Type
Choose whether to launch an instance of your site or application for debugging, or attach to an existing running instance.
Script Path
When debugging applications written in scripting languages like Python, choose the entry script to launch.
Source Root and Local Root
Much like with Publishing, these settings are used to map your server’s file paths to your corresponding local file paths.

For settings specific to particular Debug Tasks, documentation for the setting should appear below the setting itself.

Running Debug Tasks

Debug Tasks provide a Run Action for starting your site or application for debugging. You can invoke the Run action using the Run icon Run icon in the toolbar, or from Project > Run (⌘Command+R).