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

Languages

Manage language servers and syntax-specific preferences.
New! in Nova 14
Nova's Languages Settings pane.
Nova's Languages Settings pane.

In the Languages settings, you can override various editor settings for specific syntax modes. For instance, you can set custom indentation settings for a particular language like Python, which override the settings specified in Editor Settings.

Additionally, you can also connect Nova to language servers that provide additional functionality for particular languages. Language servers can provide more intelligent context-sensitive completions for your project, automate common actions, check your code for issues and warnings, and more. Nova will automatically detect many popular language servers that you may already have installed on your Mac. You can also have Nova install and manage language servers for you.

From the sidebar on the left, you can select a particular language to configure. By default, languages will be grouped by the purpose of the language. For instance, markup languages will be grouped together, as will stylesheet languages, scripting languages, and so on. You can uncheck Group languages by type in the lower-left corner of the window to list all languages together alphabetically.

Viewing available language servers for HTML.

Languages which have language servers enabled will display a Lightning bolt icon lightning bolt symbol in the sidebar, while languages that have per-syntax settings overrides will have an Modified icon icon.

Language Servers

Viewing available language servers for HTML.
Viewing available language servers for HTML.

Here, you’ll see a list of language servers configured for the currently selected language. Nova automatically learns about compatible language servers from registries configured in Settings > Tools. By default, Nova checks the official Nova Registry (github.com).

If a language server has been installed by Nova, it will display as Managed, and display the currently active version of the language server. Servers installed via other means, such as Homebrew or manual installations, will display the path to the installation Nova is using. Servers that Nova cannot find on your Mac will display as “Not Found”. Click the Refresh icon Refresh icon to have Nova recheck for any existing installations of the language server on your Mac.

You can enable or disable a particular language server using the toggle to the left of each server listed. If a server supports multiple languages, you will be asked which languages to enable the server for.

When enabling the CSS Language Server, you can choose whether to enable the server for Less and SCSS as well.
When enabling the CSS Language Server, you can choose whether to enable the server for Less and SCSS as well.

Custom Language Servers

Don’t see the language server you want to use? Click the ⋯ button beneath the list of language servers and you’ll find an option to Add a Custom Language Server…

When adding a custom language server, you’ll need to provide a command used to initialize the server, using the Server settings detailed below.

Server Details

Click the Info icon icon to the right of a language server to view more details about that server, as well as configure some additional settings.

Server

Viewing more details for the TypeScript Language Server.
Name
The display name for the server. Automatically configured for language servers found in registries. Can only be modified for custom language servers.
Command
The shell command used to invoke the language server. You can customize this to pass different arguments to the server.
Location
If the language server is installed and managed by Nova, will display Managed. For servers installed manually, this field displays the path to the language server’s executable on your Mac, if found. Otherwise, displays Not Found. Click the Refresh icon Refresh icon to have Nova recheck for any existing installations of the language server on your Mac.

Click the More icon icon to the right of the language server to view a context menu with additional options:

The context menu for a managed language server.
Copy URL
Copy a link to the language server’s official website or download page.

Install Version
Install a specific version of the language server, useful if you’re using a previous version of a language or need a specific version for compatibility.
You can also pin your installation to this version to prevent Nova from automatically updating to newer versions.

The interface for installing a specific version of a language server.
Show Install Log
Display the log window shown during installation. Useful for reviewing any errors that may have occurred.
Show in Finder
Open the installation directory for the language server in Finder. Nova installs managed language servers in ~/Library/Application Support/Nova/Tools/packages.
Uninstall
Remove the managed installation of the language server from your Mac.

Managed Install

If you don’t already have a copy of a language server on your Mac, or you want to use a specific version of a language server separate from your existing installation, you can have Nova install and manage the language server. Simply click the Install button, and Nova will install the language server and automatically configure it for use.

The installation log shown when installing a managed language server.

While the language server is installed, Nova will display a log window displaying the progress of the installation. If an error occurs during installation, Nova will display it here. If the installation is successful, simply click OK to close the log. You can also export the log to a file if you need to contact Nova Support for help with an error during installation.

The TypeScript Language Server has been successfully installed by Nova.
The TypeScript Language Server has been successfully installed by Nova.

Prefer over other copies on this Mac
If enabled, Nova will always use the managed copy of the language server, even if another installation is found on your Mac.

Settings

The Settings tab for a language server.

In the Settings tab, you can pass configuration options to the language server. The exact options you can configure will vary from server to server. Consult the documentation for the server you want to configure to see what options are supported.

To add a configuration value in Nova, click the + icon in the top-right corner.

A blank configuration value has been added for a language server.

Configuration options for language servers are provided as key-value pairs. You’ll also need to specify what type of value the server is expecting for the given option, such as an array, boolean, null, number, object, or string.

Features

The Features tab for a language server.

Here, you can configure which Nova features should integrate with the chosen language server. Supported features include:

Not all language servers may support all features.

Advanced

The Advanced tab for a language server.
LSP Language ID
The identifiers of the languages this server should be used for, as defined in the Language Server Protocol specification. (microsoft.github.io)
Verbose logging
Enable additional logging for this language server. Language server logging can be found in the Extension Console.

Per-Syntax Overrides

Below the list of language servers, you’ll find some additional options for the chosen language.

Viewing more details for the TypeScript Language Server.

Here, you can override the default Editor settings for particular languages. For instance, you may want different indentation behavior for Python than for PHP, or perhaps you want only Markdown files to soft-wrap.

For more details on each setting, you can read the documentation for the global settings that they override.

Display

Overrides settings in Editor > Display > Show.

Indentation

Overrides settings in Editor > Indentation.

Line Wrapping

Overrides settings in Editor > Display.

When Saving

Overrides settings in Editor > Editing > Saving.

Customizations

Reset Customized Settings
Click this button to remove any overrides for the currently selected language and follow the global settings.