spacemacs/contrib/lang/csharp
syl20bnr 8e4eb673ee Edit csharp layer README
Add instructions for other prerequisites
Edit various other parts
2015-01-30 21:45:06 -05:00
..
img Added support for C# using OmniSharp 2015-01-30 21:13:43 -05:00
extensions.el Added support for C# using OmniSharp 2015-01-30 21:13:43 -05:00
packages.el Added support for C# using OmniSharp 2015-01-30 21:13:43 -05:00
README.md Edit csharp layer README 2015-01-30 21:45:06 -05:00

C# contribution layer for Spacemacs

logo

Table of Contents

Description

This layer adds experimental support for C# language using OmniSharp.

Packages Included

Install

To use this contribution add it to your ~/.spacemacs

(setq-default dotspacemacs-configuration-layers '(csharp)
  "List of contribution to load."
)

Prerequisites

APS.NET 5

Follow the instructions for your platform here.

curl

You'll need curl to be able to use the Omnisharp package. Use your favorite package manager to install it (on Windows you can use chocolatey).

Be sure to make the curl binary available to your PATH environment variable, or set the variable omnisharp--curl-executable-path in your dotfile function dotspacemacs-config:

(setq-default omnisharp--curl-executable-path "/PATH/TO/CURL/curl")

Omnisharp server

You have to compile the OmniSharp server following the instructions which can be found here.

Don't forget to add the server binary directory to your system PATH environment variable. The full path the binary can also be directly referenced in the variable omnisharp-server-executable-path (put this in your dotspacemacs-config function):

(setq-default omnisharp-server-executable-path "/PATH/TO/OMNISHARP/OmniSharpServer")

OmniSharp should now automatically load and start a server when you open a .cs file.

Caveats

  • It's currently not possible to create a C# solution outside of an IDE such as MonoDevelop, it's therefore recommended that you install it to create your solutions.

  • Debugging is possible using SDB.

Key Bindings

Tests

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mta" | Run all tests in project "mtb" | Run all tests in current file/fixture "mtt" | Run test under cursor

Navigation

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mgg" | Go to definition "mgG" | Go to definition in other window "mgu" | Find usages of symbol under cursor using Helm "mgs" | Find symbols using Helm "mgi" | Find implementations "mgr" | Go to region "mgm" | Go to solution member "mgM" | Go to solution member in other window "mgf" | Go to solution file "mgF" | Go to solution file then member

Refactoring

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mrm" | Rename symbol under cursor "mrr" | Refactor symbol under cursor

Solution/Project manipulation

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mpa" | Add the current file to solution "mpA" | Add files selected in dired to solution "mpr" | Remove the current file from solution "mpR" | Removed files selected in dired from solution "mpl" | Add reference to solution

Compilation

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mb" | Build the solution

Code manipulation

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mo" | Auto complete overrides "mi" | Fix usings/imports "m=" | Format the current buffer

OmniSharp server interaction

Key Binding       |                 Description

----------------------|------------------------------------------------------------ "mss" | Start the OmniSharp server "msS" | Stop the OmniSharp server "msr" | Reload the solution