ad86ab8fb1
Adds the spacemacs|init-layer-company helper to set up company completion for a language layer and replaces existing simple company initializations. More complex initializations should use the new architecture directly and remain untouched by this commit. |
||
---|---|---|
.. | ||
img | ||
config.el | ||
extensions.el | ||
packages.el | ||
README.md |
C# contribution layer for Spacemacs
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))
Prerequisites
ASP.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
Compilation
Key Binding | Description
----------------------|------------------------------------------------------------ mcc | Build the solution
File/Solution/Project manipulation
Key Binding | Description
----------------------|------------------------------------------------------------ mfa | Add the current file to solution mfA | Add files selected in dired to solution mfr | Remove the current file from solution mfR | Removed files selected in dired from solution mpl | Add reference to solution
Navigation
Key Binding | Description
----------------------|------------------------------------------------------------ mgf | Go to solution file mgF | Go to solution file then member mgg | Go to definition mgG | Go to definition in other window mgi | Find implementations mgm | Go to solution member mgM | Go to solution member in other window mgr | Go to region mgs | Find symbols using Helm mgu | Find usages of symbol under cursor using Helm
Helpers (documentation, info)
Key Binding | Description
-----------------------|------------------------------------------------------------ "mht" | Get type information for symbol under cursor "mhT" | Get type information for symbol under cursor and put it into kill-ring
Refactoring
Key Binding | Description
----------------------|------------------------------------------------------------ mrm | Rename symbol under cursor mrr | Refactor symbol under cursor
OmniSharp server interaction
Key Binding | Description
----------------------|------------------------------------------------------------ msr | Reload the solution mss | Start the OmniSharp server msS | Stop the OmniSharp server
Tests
Key Binding | Description
----------------------|------------------------------------------------------------ mta | Run all tests in project mtb | Run all tests in current file/fixture mtt | Run test under cursor
Code manipulation
Key Binding | Description
----------------------|------------------------------------------------------------ mo | Auto complete overrides mi | Fix usings/imports m= | Format the current buffer