This is a mode for editing C# in emacs. It’s based on cc-mode, v5.30.3 and above.
Travis-CI build-page. Build-status:
- font-lock and indent of C# syntax including:
- all c# keywords and major syntax
- attributes that decorate methods, classes, fields, properties
- enum types
- #if/#endif #region/#endregion
- instance initializers
- anonymous functions and methods
- verbatim literal strings (those that begin with @)
- generics
- automagic code-doc generation when you type three slashes.
- intelligent insertion of matched pairs of curly braces.
- imenu indexing of C# source, for easy menu-based navigation.
- compilation-mode support for msbuild, devenv and xbuild.
This package is currently available on MELPA & Marmalade. Install using
M-x package-install<RET>csharp-mode
.
Once installed the package should be automatically used for files with a ‘.cs’-extension.
Note: This package is also available on MELPA-stable for those who don’t want or need bleeding edge development-versions.
For a better experience you may want to enable electric-pair-mode when editing C#-files. To do so, add the following to your .emacs-file:
(defun my-csharp-mode-hook ()
;; enable the stuff you want for C# here
(electric-pair-mode 1) ;; Emacs 24
(electric-pair-local-mode 1) ;; Emacs 25
)
(add-hook 'csharp-mode-hook 'my-csharp-mode-hook)
For further mode-specific customization, M-x customize-group RET csharp RET
will show available settings with documentation. For configuring cc-mode
settings (which csharp-mode derives from) see the cc-mode manual.
For more advanced and IDE-like functionality we recommend using csharp-mode together with Omnisharp-Emacs.
This repo is a fork of the code originally developed by Dylan R. E. Moonfire and further maintained by Dino Chiesa as hosted on Google code.
The original csharp-mode repo contained lots of different code for lots of different purposes, some finished, some not, some experimental, some not. Basiaclly things like ASPX-mode, TFS-mode, code completion backends, etc.
All this original code can still be found in the extras-branch, but we have decided to go for a more focused approach and to throw out all dead or unused code, code we wont be maintaining.
The goal: That what we package in csharp-mode actually works and works well.
The original project was licensed under GPL v2, so this one is too.