[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 56095046858: Flymake: take advantage of new Eldoc options
From: |
João Távora |
Subject: |
master 56095046858: Flymake: take advantage of new Eldoc options |
Date: |
Tue, 11 Apr 2023 08:39:28 -0400 (EDT) |
branch: master
commit 560950468588117b264a9f916fb578e0eb2a124a
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Flymake: take advantage of new Eldoc options
Only echo the first line of a potentially very large error message.
* lisp/progmodes/flymake.el:
(flymake-diagnostic-oneliner): New helper.
(flymake--tabulated-entries-1)
(flymake-eldoc-function): Use it.
(Version): Bump to 1.3.2.
(Package-Requires): Use Eldoc 1.14.0.
---
lisp/progmodes/flymake.el | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index a352adbba19..1cd9f0a6b0c 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -4,9 +4,9 @@
;; Author: Pavel Kobyakov <pk_at_work@yahoo.com>
;; Maintainer: João Távora <joaotavora@gmail.com>
-;; Version: 1.2.2
+;; Version: 1.3.2
;; Keywords: c languages tools
-;; Package-Requires: ((emacs "26.1") (eldoc "1.1.0") (project "0.7.1"))
+;; Package-Requires: ((emacs "26.1") (eldoc "1.14.0") (project "0.7.1"))
;; This is a GNU ELPA :core package. Avoid functionality that is not
;; compatible with the version of Emacs recorded above.
@@ -371,6 +371,12 @@ diagnostics at BEG."
(flymake--diag-accessor flymake-diagnostic-end flymake--diag-end end)
(flymake--diag-accessor flymake-diagnostic-buffer flymake--diag-locus locus)
+(defun flymake-diagnostic-oneliner (diag)
+ "Get truncated one-line text string for diagnostic DIAG."
+ (let ((txt (flymake-diagnostic-text diag)))
+ (substring txt 0 (cl-loop for i from 0 for a across txt
+ when (eq a ?\n) return i))))
+
(cl-defun flymake--overlays (&key beg end filter compare key)
"Get flymake-related overlays.
If BEG is non-nil and END is nil, consider only `overlays-at'
@@ -1254,10 +1260,17 @@ START and STOP and LEN are as in
`after-change-functions'."
(defun flymake-eldoc-function (report-doc &rest _)
"Document diagnostics at point.
Intended for `eldoc-documentation-functions' (which see)."
- (let ((diags (flymake-diagnostics (point))))
- (when diags
- (funcall report-doc
- (mapconcat #'flymake-diagnostic-text diags "\n")))))
+ (when-let ((diags (flymake-diagnostics (point))))
+ (funcall report-doc
+ (mapconcat #'flymake-diagnostic-text diags "\n")
+ :echo (mapconcat (lambda (d)
+ (propertize (flymake-diagnostic-oneliner d)
+ 'face
+ (flymake--lookup-type-property
+ (flymake-diagnostic-type d)
+ 'face
+ 'flymake-error)))
+ diags "\n"))))
(defun flymake-goto-next-error (&optional n filter interactive)
"Go to Nth next Flymake diagnostic that matches FILTER.
@@ -1582,8 +1595,7 @@ filename of the diagnostic relative to that directory."
"\\1\\2" bname)
"(anon)")
'help-echo (format "From `%s' backend" backend))
- (,(replace-regexp-in-string "\n.*" ""
- (flymake-diagnostic-text diag))
+ (,(flymake-diagnostic-oneliner diag)
mouse-face highlight
help-echo "mouse-2: visit this diagnostic"
face nil
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 56095046858: Flymake: take advantage of new Eldoc options,
João Távora <=