代码之家  ›  专栏  ›  技术社区  ›  Cheeso

程序模式应该如何将适当的字符串插入编译错误regexp list?

  •  0
  • Cheeso  · 技术社区  · 15 年前

    我想修改 csharp-mode.el 所以它包含了适当的错误regex(regexi?)用于.NET CSC.exe编译器。

    一个行为良好的程序模式应该如何做到这一点?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Trey Jackson    15 年前

    行为良好的Emacs用户可能应该将regexp添加到 compilation-error-regexp-alist-alist 并向Emacs提供补丁,以便在后续版本中供所有人使用。

    中定义的变量 compile.el 可以通过以下方式找到

    M-x find-variable compilation-error-regexp-alist-alist RET
    

    我认为这对CSharp模式没有意义,主要模式改变regexp。如果有的话,它应该设置 compilation-error-regexp-alist 包含添加到 ...-alist-alist 变量。

    也就是说,它可以修改 ……主义者 变量,只需检查符号 c# (或添加的内容)已经是列表的一部分,如果没有,则添加它。注: 编译错误regexp list 是先验定义的,因此您需要仔细检查该变量的内容,以确保它还包含 C.* 符号。

        2
  •  0
  •   Cheeso    15 年前

    这是我在里面做的 csharp-mode :

    (if (boundp 'compilation-error-regexp-alist-alist)
        (progn
          (add-to-list
           'compilation-error-regexp-alist-alist
           '(ms-csharp 
             "^[ \t]*\\([A-Za-z0-9_][^(]*\\.cs\\)(\\([0-9]+\\)[,]\\([0-9]+\\)) ?: \\(error\\|warning\\) CS[0-9]+:" 1 2 3))
          (add-to-list
           'compilation-error-regexp-alist
           'ms-csharp)))