gpt4 book ai didi

c# - 使用 csharp-mode 和 Mono

转载 作者:太空狗 更新时间:2023-10-29 23:17:57 29 4
gpt4 key购买 nike

我在 OS X 上的 Emacs 23 中使用 csharp-mode。我想让 flymake 语法检查正常工作,但我对 emacs lisp 不够熟悉,不知道在哪里更改 csharp-mode.el 中的内容。文件来更改编译器。如有任何帮助,我们将不胜感激。

最佳答案

如果您将以下内容添加到您的 Emacs 初始化文件中,那应该可以完成工作:

(add-hook  'csharp-mode-hook 'flymake-mode)

来自 EmacsWiki :

History The original flymake-for-csharp came from a Blog Post on MSDN. It has since been generalized, updated, and made more reliable and flexible. In May 2011, it was integrated into csharp-mode itself.

为了更改编译器,您可以在 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 机制(在 C# 源文件中查找 flymake 注释),您只需将语句更改为 (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)))

关于c# - 使用 csharp-mode 和 Mono,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863620/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com