]> git.eshelyaron.com Git - emacs.git/commitdiff
Add support for parsing column numbers in Visual Studio messages
authorDaniel Martín <mardani29@yahoo.es>
Sun, 26 Jul 2020 13:24:59 +0000 (15:24 +0200)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 28 Aug 2020 18:45:15 +0000 (14:45 -0400)
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Extend regular expression to match optional column numbers.
*
test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
Add a test.
* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
Update the total number of compilation errors in a test.
* etc/compilation.txt: Update compilation.txt with the newly supported
message format.
* etc/NEWS: Advertise the feature.

etc/NEWS
etc/compilation.txt
lisp/progmodes/compile.el
test/lisp/progmodes/compile-tests.el

index 658e2a35d7656afc5f8b3879bc8f26e97ddb1a10..ad63955f7bf1813ffb6c69b0f476a9eb2afb58e6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -557,6 +557,9 @@ case-insensitive matching of messages when the old behavior is
 required, but the recommended solution is to use a correctly matching
 regexp instead.
 
+---
+*** Messages from Visual Studio that mention column numbers are now recognized.
+
 ** Hi Lock mode
 
 ---
index 8f7e2906787edcd17bf35274b0b855520bbbe86e..11aefc6bc6f06ff1562456278b51f0acbb111526 100644 (file)
@@ -381,6 +381,7 @@ made it more strict about the error message that follows.
 keyboard handler.c(537) : warning C4005: 'min' : macro redefinition
 d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if'
 d:\tmp\test.c(1145) : see declaration of 'nsRefPtr'
+c:\tmp\test.cpp(101,11): error C4101: 'bias0123': unreferenced local variable [c:\tmp\project.vcxproj]
 1>test_main.cpp(29): error C2144: syntax error : 'int' should be preceded by ';'
 1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
 1>
index a043bbcfa3c12fa81a7c2b9911093d52ff8df1e5..731db0fd6dbad301746f0efeec8f0f1abfda4f8d 100644 (file)
@@ -221,9 +221,9 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
      ;; considered before EDG.
      ;; The message may be a "warning", "error", or "fatal error" with
      ;; an error code, or "see declaration of" without an error code.
-     "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^ :(\t\n][^:(\t\n]*\\)(\\([0-9]+\\)) ?\
+     "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^ :(\t\n][^:(\t\n]*\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?) ?\
 : \\(?:see declaration\\|\\(?:warnin\\(g\\)\\|[a-z ]+\\) C[0-9]+:\\)"
-     2 3 nil (4))
+     2 3 4 (5))
 
     (edg-1
      "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)"
index d566e7dd8624902f849d18e627f4499d5dd2cedc..819f2e78c2ad5225744d9f908c9334f2d503b984 100644 (file)
      3 nil 29 "test_main.cpp")
     ("1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int"
      3 nil 29 "test_main.cpp")
+    ("C:\\tmp\\test.cpp(101,11): error C4101: 'bias0123': unreferenced local variable [C:\\tmp\\project.vcxproj]"
+     1 11 101 "C:\\tmp\\test.cpp")
     ;; watcom
     ("..\\src\\ctrl\\lister.c(109): Error! E1009: Expecting ';' but found '{'"
      1 nil 109 "..\\src\\ctrl\\lister.c")
@@ -434,7 +436,7 @@ The test data is in `compile-tests--test-regexps-data'."
           (compilation-num-warnings-found 0)
           (compilation-num-infos-found 0))
       (mapc #'compile--test-error-line compile-tests--test-regexps-data)
-      (should (eq compilation-num-errors-found 94))
+      (should (eq compilation-num-errors-found 95))
       (should (eq compilation-num-warnings-found 35))
       (should (eq compilation-num-infos-found 28)))))