branch: externals/csharp-mode
commit e73ad4e49d7de288bff3b307ca9b32601308ecb4
Merge: 7dec1ea 3af278a
Author: jesse-black <jesse.w.bl...@gmail.com>
Commit: jesse-black <jesse.w.bl...@gmail.com>

    Merge pull request #30 from binki/compilation-regexps
    
    Parse the base directory from MSBuild to support finding errors in depen...
---
 csharp-mode.el | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/csharp-mode.el b/csharp-mode.el
index 6b9b9b8..a691d80 100644
--- a/csharp-mode.el
+++ b/csharp-mode.el
@@ -2,7 +2,7 @@
 ;;; csharp-mode.el --- C# mode derived mode
 
 ;; Author     : Dylan R. E. Moonfire (original)
-;; Maintainer : Jostein Kj�nigsen <jost...@gmail.com>
+;; Maintainer : Jostein Kjønigsen <jost...@gmail.com>
 ;; Created    : Feburary 2005
 ;; Modified   : November 2014
 ;; Version    : 0.8.8
@@ -4137,16 +4137,21 @@ The return value is meaningless, and is ignored by 
cc-mode.
 ;;                (cons "C#" (c-lang-const c-mode-menu csharp)))
 
 ;;; Compilation regexps
+;; When invoked by MSBuild, csc’s errors look like this:
+;; subfolder\file.cs(6,18): error CS1006: Name of constructor must match name 
of class [c:\Users\user\project.csproj]
+(defun csharp-compilation-error-file-resolve ()
+  ;; http://stackoverflow.com/a/18049590/429091
+  (cons (match-string 1) (match-string 4)))
 (eval-after-load 'compile
   (lambda ()
     (dolist
         (regexp
          '((msbuild-error
-            "^[[:blank:]]*\\([^(\r\n]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): 
error .+$"
-            1 2 3 2)
+            "^[[:blank:]]*\\([^(\r\n]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): 
error .+?\\(?:\\[\\([^[\r\n]+\\)[\\\\/][^\\\\/]+\\]\\)$"
+            csharp-compilation-error-file-resolve 2 3 2)
            (msbuild-warning
-            "^[[:blank:]]*\\([^(\r\n]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): 
warning .+$"
-            1 2 3 1)))
+            "^[[:blank:]]*\\([^(\r\n]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): 
warning .+?\\(?:\\[\\([^[\r\n]+\\)[\\\\/][^\\\\/]+\\]\\)$"
+            csharp-compilation-error-file-resolve 2 3 1)))
       (add-to-list 'compilation-error-regexp-alist-alist regexp))
     (dolist (symbol '(msbuild-error msbuild-warning))
       (add-to-list 'compilation-error-regexp-alist symbol))))

Reply via email to