Skip to content

Haiku port of OmniSharp server (HTTP, STDIO) based on Roslyn workspaces

License

Notifications You must be signed in to change notification settings

nexus6-haiku/omnisharp-roslyn-haiku

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

omnisharp-roslyn

Build Status

Introduction

OmniSharp is a .NET development platform based on Roslyn workspaces. It provides project dependencies and C# language services to various IDEs and plugins.

OmniSharp is built with the .NET Core SDK on Windows and Haiku and Mono on OSX/Linux. It targets both the net6.0 and net472 target frameworks. The net6.0 build requires a .NET SDK version >=6.0. When using the net472 build on OSX/Linux, Mono version >=6.4.0 is required and must be globally installed on the system.

Under Haiku the only target frameworks available are 8.0 and 9.0 preview, OmniSharp is patched to compile against 8.

For Arch Linux users, you need package mono-msbuild (>= 16.3).

In addition, if you need the HTTP interface and you want to run on Linux, you'll also need to make sure that you have libuv installed. See also OmniSharp#1202 (comment) .

What's new

See our change log for all of the updates.

Using OmniSharp

OmniSharp ships in two flavors:

  • Stdio server
  • HTTP server

Downloading OmniSharp

When using OmniSharp with an editor extension (e.g. VIM, Emacs, VS Code), the extension will download or bundle OmniSharp automatically. If you wish to download OmniSharp manually though, follow the steps below.

Stable releases

Stable releases are published using GitHub releases. Each release contains a set of binaries for various operating systems and processing architectures.

Pre-releases

Pre-release versions are available in Azure Blob Storage, they can be viewed using the following URL https://roslynomnisharp.blob.core.windows.net/releases?restype=container&comp=list&prefix={version}, where the {version} placeholder can be found in the changelog. For example, all 1.37.x versions (including all betas and prereleases such as 1.37.4-beta.5) can be viewed using https://roslynomnisharp.blob.core.windows.net/releases?restype=container&comp=list&prefix=1.37. Please note that the listing is limited to 5000 entries.

Every merge to master is automatically published to this feed and individual release is then available using the following URL convention: https://roslynomnisharp.blob.core.windows.net/releases/{version}/{packagename}-{os/arch}.{ext}

  • Version is auto incremented and is visible in the travis or appveyor build output
  • Package Name would be either omnisharp or omnisharp.http
  • os/arch will be one of the following:
    • win-x64
    • win-x86
    • win-arm64
    • linux-x64
    • linux-x86
    • linux-musl-x64
    • linux-arm64
    • linux-musl-arm64
    • osx
    • mono (Requires global mono installed)
  • Extensions are archive specific, windows will be zip and all others will be tar.gz.

Building

On Windows:

> ./build.ps1

On Haiku:

Cake does not work properly under Haiku but OmniSharp can be built directly from the root with:

dotnet build

You can find the the artifacts under bin/Debug/OmniSharp.Stdio.Driver/net8.0. Note: the OmniSharp executable crashes, sometimes with a kernel panic so please run with

dotnet OmniSharp.dll

Copy the content of bin/Debug/OmniSharp.Stdio.Driver/net8.0 to your destination of choice (e.g. /boot/system/non-packaged/bin/OmniSharp) and add the folder to environment PATH.

On Linux / Unix:

$ ./build.sh

You can find the output under artifacts/publish/OmniSharp/<runtime id>/<target framework>/.

The executable is either OmniSharp.exe or OmniSharp.

For more details, see Build.

Genio (Haiku)

OmniSharp experimental support has been added to the development branch (main). The path is currently hardcoded to /boot/system/non-packaged/bin/OmniSharp, OmniSharp will automatically start when a .cs/.csproj/.cake/.sln file is open. No further configuration is required.

VS Code

Add the following setting to your User Settings.

{
  "omnisharp.path": "<Path to the omnisharp executable>"
}

The above option can also be set to:

  • "latest" - To consume the latest build from the master branch
  • A specific version number like 1.29.2-beta.60

In order to be able to attach a debugger, add the following setting to your User or Workspace settings:

{
  "omnisharp.waitForDebugger": true
}

This will print the OmniSharp process ID in the VS Code OmniSharp output panel and pause the start of the server until a debugger is attached to this process. This is equivalent to launching OmniSharp from a command line with the --debug flag.

Configuration

OmniSharp provides a rich set of hierarchical configuration options, controlled via startup arguments, environment variables and omnisharp.json file. For more details please visit the Configuration Options section of the wiki.

Help wanted!

We have slack room as well. Get yourself invited: here

License

Copyright © .NET Foundation, and contributors.

OmniSharp is provided as-is under the MIT license. For more information see LICENSE.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Contribution License Agreement

By signing the CLA, the community is free to use your contribution to .NET Foundation projects.

.NET Foundation

This project is supported by the .NET Foundation.

About

Haiku port of OmniSharp server (HTTP, STDIO) based on Roslyn workspaces

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.6%
  • Other 0.4%