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

Symbols

Find and jump to symbols.

Nova’s Editor automatically identifies symbols found throughout the current document. The definition of a symbol varies depending on the current syntax mode, but generally includes elements, classes, functions, and variables. In addition to providing syntax highlighting for these symbols, Nova provides a number of useful features for finding and navigating to particular symbols both in the current document and throughout your projects.

Symbols Sidebar

The Symbols Sidebar icon Symbols Sidebar lists all the symbol definitions Nova has identified in your current document. This can provide you an at-a-glance view of the current structure of the document. Click any symbol listed to scroll the editor to that symbol.

The Symbols Sidebar defaults to a Tree view icon tree view, where child symbols are listed below their ancestor symbols. For instance, an HTML document might have a <body> element with a number of child <div> elements. Parent symbols can be collapsed and expanded to easily hide all of their descendants.

The Symbols Sidebar.

Along the top of the Symbols Sidebar, you can choose to switch to a List view icon list view, which flattens the hierarchy of the document into a single ordered list. In documents with deeply-nested symbols, a slider control will appear allowing you to collapse or expand all parent symbols at different levels of the hierarchy. Slide this control all the way to the right to expand all symbols, or to the left to collapse. You can also Sort symbols alphabetically icon sort the symbol list alphabetically. By default, the symbols list is sorted in the order the symbols appear in the document.

At the bottom of the Symbols Sidebar, you’ll find the Filter field. You can type part of the name of a symbol you’re trying to find, and the symbol list will be filtered to show only symbols matching your query.

Bookmarks

You can also manually create bookmarks within your documents that appear as listings in the Symbols Sidebar. To create a bookmark, simply create a comment in the document starting with !. For instance, inserting the following line in a JavaScript file…

// ! Example Bookmark

… will create a bookmark labeled “Example Bookmark” in the Symbols Sidebar. This is supported in any syntax mode that features comments, including Nova’s built-in syntaxes.

A bookmark in the Symbols Sidebar.

You can also create bookmarks that add separators to the Symbols Sidebar, useful for visually distinguishing sections of code. To create a separator, simply add a dash between the ! and the name of the bookmark, such as:

// ! - Example Separator
The Symbols Sidebar displaying both a standard bookmark, and one with a separator.
The Symbols Sidebar displaying both a standard bookmark, and one with a separator.

Jump to Definition

When reading code, you’ll often find a reference to a class or function whose purpose or behavior is unfamiliar to you. In these cases, you can use Jump to Definition to jump straight from a reference to the original definition of the symbol.

To use Jump to Definition, simply ⌘Command+Click on a symbol being referenced. You can also use Go > Jump to Definition, bound to ⌃⌘J (Control+Command+J) by default, to jump to the definition of the symbol located at the current cursor position. After jumping to a definition, you can use Go > Back or the navigation controls in the editor’s Path Bar to return your cursor to its previous position.

Using Jump to Definition and cursor navigation.

Language Server Commands

When a compatible language server for the current syntax mode is installed, you may also find additional “Jump to” commands accessible from the Go menu:

Jump to Declaration
Jump to where the symbol was initially declared as existing, which may be separate from where it was defined (where a value is set).
Jump to Type Definition
Jump to where the type of the symbol, such as its class, was originally defined.
Jump to Implementations
Some programming languages may have concepts such as interfaces or protocols that are then implemented by other classes. You can use this command from such a symbol to jump to its implementations.
Jump to References
Jump to other locations where this symbol is called or referenced.

Go To Symbol

You can use the Go To Symbol… command palette found in the Go menu to quickly jump to any symbols or bookmarks in the current document. This command is not bound to a key combination by default, but one can be set manually in Settings > Key Bindings.

The Go To Symbol interface.
The Go To Symbol interface.

Go To Symbol can only locate symbols within the currently focused file. To search for a symbol located elsewhere in your project, you can use Open Quickly instead.