From: Rudolf (Rudy) Adamkovic <rudolf@adamkovic.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 70797@debbugs.gnu.org
Subject: bug#70797: [PATCH] Make the Compilation mode recognize non-legacy Kotlin/Gradle errors
Date: Thu, 13 Jun 2024 16:44:04 +0200 [thread overview]
Message-ID: <m24j9wq4wb.fsf@adamkovic.org> (raw)
In-Reply-To: <86jzk03exp.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 992 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
> . applying this fails compile-tests in the test suite, so I guess
> some adjustment there is also needed;
Oops! In the new patch, attached below, I
- adjust the existing legacy Gradle/Kotlin tests and
- add new tests for the non-legacy Gradle/Kotlin warnings/errors.
I also improved the commit message a bit.
> . you removed the comment with the pointer to kotlin sources, which
> might be still useful for the legacy format (unless the URL is no
> longer valid), so please restore that if the pointer can still be
> useful
Smart! All right, I did a bit of research, and documented
- the first and last Kotlin version that emits the current format,
- the last Kotlin version that used the legacy format,
- the official Git commit that removed the legacy format,
- the public release date of the current format, and
- the Kotlin class where the current format is defined.
All of it is packed into two short comments.
Rudy
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Make-the-Compilation-mode-recognize-non-legacy-Kotli.patch --]
[-- Type: text/x-patch, Size: 5692 bytes --]
From d9ab03624d868ee5f6a40390e321544c941cb9d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <rudolf@adamkovic.org>
Date: Thu, 2 May 2024 19:06:11 +0200
Subject: [PATCH] Make the Compilation mode recognize non-legacy Kotlin/Gradle
errors
The Compilation mode recognizes Kotlin/Gradle errors but only in the now
legacy format. The current format, which has been in wide use for about
a year, is not supported. This patch adds support for the current
format.
* etc/compilation.txt:
(symbols): Add examples of non-legacy Kotlin/Gradle warnings and errors.
* lisp/progmodes/compile.el:
(compilation-error-regexp-alist-alist): Rename 'gradle-kotlin' to
'gradle-kotlin-legacy' and add 'grade-kotlin' that matches the errors
and warnings outputted by the current (non-legacy) Kotlin/Gradle.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data): Rename 'gradle-kotlin' to
'gradle-kotlin-legacy' and add two test cases for the newly added,
non-legacy Kotlin/Gradle warnings and errors.
---
etc/compilation.txt | 13 +++++++++++--
lisp/progmodes/compile.el | 24 +++++++++++++++++++++---
test/lisp/progmodes/compile-tests.el | 20 ++++++++++++--------
3 files changed, 44 insertions(+), 13 deletions(-)
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 05f0829864c..e4e361ecfc7 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -186,13 +186,22 @@ Warning near line 10 file arrayclash.f: Module contains no executable
Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit
-* Gradle with kotlin-gradle-plugin
+* Gradle with Kotlin plugin
-symbol: gradle-kotlin
+symbol: grade-kotlin
+
+e: file:///src/Test.kt:267:5 foo: bar
+w: file:///src/Test.kt:267:5 foo: bar
+
+
+* Gradle with Kotlin plugin (legacy)
+
+symbol: gradle-kotlin-legacy
e: /src/Test.kt: (34, 15): foo: bar
w: /src/Test.kt: (34, 15): foo: bar
+
* Gradle Android resource linking
symbol: gradle-android
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index e31af774bd0..4d43a715fef 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -263,10 +263,28 @@ compilation-error-regexp-alist-alist
"\\(^Warning .*\\)? line[ \n]\\([0-9]+\\)[ \n]\\(?:col \\([0-9]+\\)[ \n]\\)?file \\([^ :;\n]+\\)"
4 2 3 (1))
- ;; Gradle with kotlin-gradle-plugin (see
- ;; GradleStyleMessagerRenderer.kt in kotlin sources, see
- ;; https://youtrack.jetbrains.com/issue/KT-34683).
+ ;; Introduced in Kotlin 1.8 and current as of Kotlin 2.0.
+ ;; Emitted by `GradleStyleMessagerRenderer' in Kotlin sources.
(gradle-kotlin
+ ,(rx bol
+ (| (group "w") ; 1: warning
+ (group (in "iv")) ; 2: info
+ "e") ; error
+ ": "
+ "file://"
+ (group ; 3: file
+ (? (in "A-Za-z") ":")
+ (+ (not (in "\n:"))))
+ ":"
+ (group (+ digit)) ; 4: line
+ ":"
+ (group (+ digit)) ; 5: column
+ " ")
+ 3 4 5 (1 . 2))
+
+ ;; Obsoleted in Kotlin 1.8 Beta, released on Nov 15, 2022.
+ ;; See commit `93a0cdbf973' in Kotlin Git repository.
+ (gradle-kotlin-legacy
,(rx bol
(| (group "w") ; 1: warning
(group (in "iv")) ; 2: info
diff --git a/test/lisp/progmodes/compile-tests.el b/test/lisp/progmodes/compile-tests.el
index 20beed955d2..b1187426ccf 100644
--- a/test/lisp/progmodes/compile-tests.el
+++ b/test/lisp/progmodes/compile-tests.el
@@ -270,20 +270,24 @@ compile-tests--test-regexps-data
1 nil 27041 "{standard input}")
(gnu "boost/container/detail/flat_tree.hpp:589:25: [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]"
1 25 589 "boost/container/detail/flat_tree.hpp" 0)
- ;; gradle-kotlin
+ ;; Gradle/Kotlin
(gradle-kotlin
- "e: /src/Test.kt: (34, 15): foo: bar" 4 15 34 "/src/Test.kt" 2)
+ "e: file:///src/Test.kt:267:5 foo: bar" 4 5 267 "/src/Test.kt" 2)
(gradle-kotlin
+ "w: file:///src/Test.kt:267:5 foo: bar" 4 5 267 "/src/Test.kt" 1)
+ (gradle-kotlin-legacy
+ "e: /src/Test.kt: (34, 15): foo: bar" 4 15 34 "/src/Test.kt" 2)
+ (gradle-kotlin-legacy
"w: /src/Test.kt: (11, 98): foo: bar" 4 98 11 "/src/Test.kt" 1)
- (gradle-kotlin
+ (gradle-kotlin-legacy
"e: e:/cygwin/src/Test.kt: (34, 15): foo: bar"
4 15 34 "e:/cygwin/src/Test.kt" 2)
- (gradle-kotlin
+ (gradle-kotlin-legacy
"w: e:/cygwin/src/Test.kt: (11, 98): foo: bar"
4 98 11 "e:/cygwin/src/Test.kt" 1)
- (gradle-kotlin
+ (gradle-kotlin-legacy
"e: e:\\src\\Test.kt: (34, 15): foo: bar" 4 15 34 "e:\\src\\Test.kt" 2)
- (gradle-kotlin
+ (gradle-kotlin-legacy
"w: e:\\src\\Test.kt: (11, 98): foo: bar" 4 98 11 "e:\\src\\Test.kt" 1)
(gradle-android
" ERROR:/Users/salutis/src/AndroidSchemeExperiment/app/build/intermediates/incremental/debug/mergeDebugResources/stripped.dir/layout/item.xml:3: AAPT: error: '16dpw' is incompatible with attribute padding (attr) dimension."
@@ -534,8 +538,8 @@ compile-test-error-regexps
1 15 5 "alpha.c")))
(compile--test-error-line test))
- (should (eq compilation-num-errors-found 106))
- (should (eq compilation-num-warnings-found 35))
+ (should (eq compilation-num-errors-found 107))
+ (should (eq compilation-num-warnings-found 36))
(should (eq compilation-num-infos-found 35)))))
(ert-deftest compile-test-grep-regexps ()
--
2.39.3 (Apple Git-146)
[-- Attachment #3: Type: text/plain, Size: 282 bytes --]
--
"Mathematics takes us still further from what is human into the region
of absolute necessity, to which not only the actual world, but every
possible world, must conform." --- Bertrand Russell, 1902
Rudolf Adamkovič <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
next prev parent reply other threads:[~2024-06-13 14:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-05 22:14 bug#70797: [PATCH] Make the Compilation mode recognize non-legacy Kotlin/Gradle errors Rudolf Adamkovič
2024-05-11 8:56 ` Eli Zaretskii
2024-05-25 7:46 ` Eli Zaretskii
2024-06-08 11:44 ` Eli Zaretskii
2024-06-09 21:40 ` Rudolf Adamkovič
2024-06-13 14:44 ` Rudolf Adamkovic [this message]
2024-06-22 8:34 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m24j9wq4wb.fsf@adamkovic.org \
--to=rudolf@adamkovic.org \
--cc=70797@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.