Extension Details

- OmniSharp - C#
- by Abattoir Software
- 39 Recent Installs | 366 Total Installs
- Uses OmniSharp Roslyn LSP for C# in Nova
- Repository
- Bug Reports
-
Read & Write Files
-
Launch Subprocesses
-
Send Network Requests
-
This extension is allowed to:
Readme
OmniSharp - C# for Nova
This extension provides language support for C# (and helpful options for using with Unity) using OmniSharp Roslyn with the V1.39.14 release to try an do this LSP magic.
It provides for C#:
- Syntax highlighting
- Symbols
If you have a Nova project, which contains the *.sln or *.csproj file, this extension will also provide:
- Language intelligence
- Issues
- Completions. (Requires Nova 11.3+. Nova 11.4+ formats it better)
In order for the language intelligence part, you need that *.sln or *.csproj file. This is part of the design of Omnisharp.
It is highly recommended to use the Unity package below, especially with Unity 202x version since it will allow you to generate proper *.csproj.
Notes
I am primarily focused on using it for work with Unity projects, so for right now it's using some options that will only work for Unity project and some basic .NET project may not work as expected. It also seems after Unity 2019, the Visual Studio Code updates changed the .csproj and they don't really work well.
Syntaxes were converted with Nova Mate from the grammar csharp in Microsoft's VSCode C# Extension and I basically added some <symbol> to get the outlining features to work.
Larger Unity projects, with a lot of packages or assets, may take a long time (several minutes) for Omnisharp to process before code completion starts to work. Please be patient!
Ominsharp release modification
While you can change setting to use a different omnisharp release, for this extension I modify the run file of the package omnisharp-osx to help handle spacing in the name of the path. I add :q to the variables for base_dir,omnisharp_dir and to creating the omnisharp_cmd.
Known Issues
- Does not honor all the OmniSharp options properly.
Requirements
-
The complete install of Mono (including MSBuild) in order to provide the language services.
-
A version of .NET SDK
-
Nova Command Line Tools
-
Go to Nova -> Settings... and click on the Tools item
-
If Command Line Tool says "Install", click on it to install it.
-
A Unity/Nova connection - See below about com.unity.ide.nova Unity Package or "Unity Nova"
Usage
OmniSharp for Nova should runs any time you open a file with ".cs" files, or if there is a "*.csproj" file in the workspace.
Configuration
While configuration options are there, not all are "hooked up" or work as expected. Still working on that.
Unity/Nova Connections
One of these will be required to get Unity to open file properly. Both can be installed, but for Unity 2020+, using the Package is recommended:
com.unity.ide.nova Package
This is recommended for Unity 2020+. Add in this package to Unity will be able to open files in Unity. And also regenerate *.sln and *.csproj so that you will start to get code completion.
-
In your Unity project go to Windows -> Package Manager
-
Then click the "+" and select Add package from git URL

-
Enter the git URL:
https://gitlab.com/AmigaAbattoir/com.unity.ide.nova.git -
Then go into Unity -> Settings and select the External Tools option

This should detect Nova, as long as the Nova Command Line Tools are installed! If you forgot, click the Recheck Nova Installation. It is recommended to Regenerate project files, especially if you (or someone on your team) were using VSCode.
"Unity Nova"
This is recommended for Unity 2019 and below. To use Nova and this extension with a Unity project, you need to add a project to Nova with either in the root of the Unity project's folder or the parent folder.
To setup Unity to use Nova as your editor, you'll need to use the UnityNova executable to launch Nova with the right parameters.
Unity will send a line or column of zero, depending where it's called from.
Nova isn't happy with that so this program will handle passing parameters to Nova that it will know either to just open a file, go to a particular line, or to go to a line and column of a file.
NOTE: Still working on making the extension install it. Right now, it will show a notification with a command to copy and paste in Terminal.
You could probably go through Finder and Show Package Content to get to the same location:
~/Library/Application Support/Nova/Extensions/Omnisharp.novaextension/UnityNova
Once UnityNova is installed, go in Unity and go into the Settings -> External Tools
Change them as follows:
-
External Script Editor: Select UnityNova
- @TODO Figure out how to copy to /usr/local/bin
-
External Script Editor Args: "$(File)" $(Line) $(Column)
NOTE: It is important to use the double quotes around $(File) to ensure that if the path contains spaces the command will work.
Additional Notes for Unity:
To make this work nicely for Unity projects, right now, we add in the following environmental variable and options automatically if using the Auto Detect Unity project setting (enabled by default):
FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current
and add these options when starting up the OmniSharp LSP for the project:
omnisharp.useModernNet:false
omnisharp.useGlobalMono:always
Release Notes
Changelog
The format is based on Keep a Changelog 1.1
and this project adheres to Semantic Versioning 2.0.
[0.5.0] - 2026-03-31
Added
- Noted that in order to get Unity 2021+ projects working, we need to generate the
.csprojwith a Unity extension - Ko-fi link
Changed
- Changed Changelog to Keep a Changelog format
- Updated to V1.39.14 of OmniSharp-Roslyn
- Added nova-utils.js so it can be easily using in different extensions
- Moved hosting to GitLab
[0.4.4] - 2024-04-28
- Updated notes about using Unity Nova requires Nova Command Line Tool (thanks @brainandbrain)
- Updated to V1.39.11 of OmniSharp-Roslyn
[0.4.3] - 2023-11-23
- Updated to V1.39.10 of OmniSharp-Roslyn
- Updated readme
[0.4.1] - 2023-08-06
- Changed folder structure
[0.4.0] - 2023-07-30
- Should handle most options
- With Nova 11.3, code completion is happening!
[0.3.0] - 2023-07-02
- Hover overs seem to work!
- Added UnityNova to project for using Nova with Unity.
- Activates when opening a -.cs file.
- Started messing around with preferences.
[0.2.0] - 2023-02-17
- Should now have Symbols in Nova!
[0.1.0] - 2023-01-27
- Initial mess kinda starting up!