EmacsでC#開発

 EmacsC#を開発するときの環境がひとまず整ったのでまとめ。csharp-modeとflymake-modeを使えばエラー箇所を表示してくれるので便利。Xを使わないとエラーの内容までは確認できないが、どんなエラーが発生するか予想できないような書き方はよろしくない。APIを確認しつつ確実に実装を進めればいい。
 flymakeのビルドにはMSBuildを選択。フォルダごとに.flymake.xmlファイルを用意し、フォルダ内のソースのみビルドに含めるように設定。他のフォルダのファイルについては、必要に応じて.flymake.xmlをIncludeするようにする。

(require 'csharp-mode)
(require 'flymake-for-csharp)
(add-hook 'csharp-mode-hook
          (lambda ()
            (define-key csharp-mode-map (kbd "C-x c") 'compile)
            (c-set-offset 'substatement-open 0)
            (setq c-basic-offset 4
                  tab-width 4
                  indent-tabs-mode nil
                  compile-command "MSBuild.exe /nologo /v:m"
                  flymake-for-csharp-dotnet-location "/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727"
                  )
            (flymake-mode)
            (hs-minor-mode)))
(setq auto-mode-alist (cons '("\\.cs\\'" . csharp-mode) auto-mode-alist))