4.4 KiB
C# layer
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!
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
Packages Included
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.
The server needs to be started manually with SPC m s s
(or with
M-x omnisharp-start-omnisharp-server
). It will prompt a path to your .cpsroj
or .sln file. In the future the server will be started automatically however for
now this is required.
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
andSPC m s s
to stop current server and start another one pointing to another solution/project.
Key Bindings
Navigation
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 |
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 |
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 |
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 |