spacemacs/layers/+lang/csharp
syl20bnr ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
..
img
config.el Happy New Year 2018! 2018-01-04 02:00:25 -05:00
packages.el Revert "Defer packages by default using use-package-always-defer" 2018-03-03 23:40:10 -05:00
README.org csharp: sort key bindings 2018-01-09 23:26:08 -05:00

C# layer

/TakeV/spacemacs/media/commit/ebe4c602647801d59013915c8c97d44570556f3e/layers/+lang/csharp/img/csharp.png

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 and SPC 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