Если вы добавите в файл инициализации Emacs следующее, это должно сделать эту работу:
(add-hook 'csharp-mode-hook 'flymake-mode)
От EmacsWiki :
История Оригиналflymake-for-csharp пришел из поста в блоге на MSDN.С тех пор оно было обобщено, обновлено и сделано более надежным и гибким.В мае 2011 года он был интегрирован в сам режим csharp.
Чтобы изменить компилятор, вы можете добавить комментарий вверху кода C #:
// flymake: csc.exe /t:module /R:MyAssembly.dll @@FILE@@
Подробнее о параметрах изменения компилятора см. В комментариях в исходном файле csharp-mode.el (поиск «csharp-flymake-get-cmdline»).
РЕДАКТИРОВАТЬ: ОК, в зависимости от вашегокомментарий ниже о том, что вы не хотите помещать строку комментария flymake в ваш код C #, я нашел альтернативное решение.Поместите следующий код в файл инициализации Emacs.Измените строку (setq my-csharp-default-compiler "mono @@FILE@@")
на любую нужную вам строку компиляции.Теперь, когда вы открываете файл C #, вы можете использовать flymake, не добавляя строку комментария в ваш источник C #.Если на более позднем этапе вы захотите использовать стандартный механизм csharp-mode (для поиска комментария flymake в исходном файле C #), вам просто нужно изменить оператор на (setq my-csharp-default-compiler nil),
;; Basic code required for C# mode
(require 'flymake)
(autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t)
(setq auto-mode-alist (append '(("\\.cs$" . csharp-mode)) auto-mode-alist))
;; Custom code to use a default compiler string for all C# files
(defvar my-csharp-default-compiler nil)
(setq my-csharp-default-compiler "mono @@FILE@@")
(defun my-csharp-get-value-from-comments (marker-string line-limit)
my-csharp-default-compiler)
(add-hook 'csharp-mode-hook (lambda ()
(if my-csharp-default-compiler
(progn
(fset 'orig-csharp-get-value-from-comments
(symbol-function 'csharp-get-value-from-comments))
(fset 'csharp-get-value-from-comments
(symbol-function 'my-csharp-get-value-from-comments))))
(flymake-mode)))