Table of Contents

C# layer

Table of ContentsClose

csharp.png

1 Description

This layer adds support for C# language using the omnisharp-roslyn language server and corresponding omnisharp-emacs package.

Please report any issues encountered to omnisharp-emacs issue page on github. PRs are welcome too!

1.1 Features:

  • Syntax checking with flycheck (when syntax-checking layer is used)
  • Support for auto-completion (when auto-completion layer is used)
  • Refactoring
  • Navigation to cross-references
  • Inspecting types in metadata

2 Packages Included

3 Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add csharp to the existing dotspacemacs-configuration-layers list in this file.

Before you can work with C# files you will need to install the server by invoking SPC m s i (or M-x omnisharp-install-server). Otherwise, if this fails for you, please see omnisharp-emacs/doc/server-installation.md.

While the server will start automatically where possible if the server needs to be started manually use SPC m s s (or M-x omnisharp-start-omnisharp-server). It will prompt a path to your .cpsroj or .sln file.

4 Caveats

  • You should use dotnet CLI tool from .NET Core download page or an IDE like Visual Studio or Xamarin Studio to manage solution and project files.
  • Debugging on command line is possible using SDB.
  • There can be only one server running at the same time. To switch to a different solution/project you need to invoke SPC m s S and SPC m s s to stop current server and start another one pointing to another solution/project.

5 Key bindings

Key binding Description
SPC m g c Go to member in current file
SPC m g e List errors and warnings in solution
SPC m g f Go to solution file
SPC m g F Go to solution file then member
SPC m g g Go to definition
SPC m g G Go to definition in other window
SPC m g i Find implementations
SPC m g I Find implementations using ido
SPC m g m Go to solution member
SPC m g M Go to solution member in other window
SPC m g r Go to region
SPC m g s Find symbols using Helm
SPC m g u Find usages of symbol under cursor using Helm
SPC m g U Find usages of symbol under cursor using ido

5.2 Helpers (documentation, info)

Key binding Description
SPC m h t Get type information for symbol under cursor
SPC m h T Get type information for symbol under cursor and put it into kill-ring

5.3 Refactoring

Key binding Description
SPC m r m Rename symbol under cursor
SPC m r M Rename symbol under cursor interactively
SPC m r r Refactor under cursor

5.4 OmniSharp server interaction

Key binding Description
SPC m s i Install OmniSharp server
SPC m s r Reload the solution
SPC m s s Start the OmniSharp server
SPC m s S Stop the OmniSharp server

5.5 Tests

Key binding Description
SPC m t b Run tests in current buffer
SPC m t t Run the last executed test again
SPC m t t Run the test around point

Author: root

Created: 2019-11-10 Sun 14:17

Validate