aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Távora2020-12-29 14:07:03 +0000
committerJoão Távora2020-12-29 14:08:23 +0000
commitecd9264372a61cf35696288d2d0c8afe77dd084f (patch)
treeb58c322afdd2f84b7855c5fd9f18613c9e028cc3
parent177863b1ce4f1ede76b1921390e50c90136af27d (diff)
downloademacs-ecd9264372a61cf35696288d2d0c8afe77dd084f.tar.gz
emacs-ecd9264372a61cf35696288d2d0c8afe77dd084f.zip
Revert "Allow the flymake mode line indicator to be customized"
This reverts commit 37049ee78c4576d340781179317e6cbaaf73b6c3. It's not ready to be used, contains some fundamental errors. See bug#33740.
-rw-r--r--doc/misc/flymake.texi3
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/progmodes/flymake.el197
3 files changed, 96 insertions, 109 deletions
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index b8744f0323f..8f2954bdf4f 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -213,9 +213,6 @@ This section summarizes customization variables used for the
213configuration of the Flymake user interface. 213configuration of the Flymake user interface.
214 214
215@vtable @code 215@vtable @code
216@item flymake-mode-line-indicator-format
217Format to use for the Flymake mode line indicator.
218
219@item flymake-no-changes-timeout 216@item flymake-no-changes-timeout
220If any changes are made to the buffer, syntax check is automatically 217If any changes are made to the buffer, syntax check is automatically
221started after this many seconds, unless the user makes another change, 218started after this many seconds, unless the user makes another change,
diff --git a/etc/NEWS b/etc/NEWS
index a5247a9aea8..0231c167112 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1738,11 +1738,6 @@ height of lines or width of chars.
1738When non-nil, use a new xwidget webkit session after bookmark jump. 1738When non-nil, use a new xwidget webkit session after bookmark jump.
1739Otherwise, it will use 'xwidget-webkit-last-session'. 1739Otherwise, it will use 'xwidget-webkit-last-session'.
1740 1740
1741** Flymake mode
1742
1743+++
1744*** New user option 'flymake-mode-line-indicator-format'.
1745
1746** Flyspell mode 1741** Flyspell mode
1747 1742
1748+++ 1743+++
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index e78d5d32fff..40bb90d0f15 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1190,16 +1190,6 @@ default) no filter is applied."
1190 1190
1191(put 'flymake--mode-line-format 'risky-local-variable t) 1191(put 'flymake--mode-line-format 'risky-local-variable t)
1192 1192
1193(defcustom flymake-mode-line-indicator-format " Flymake%s[%e %w %n]"
1194 "Format to use for the Flymake mode line indicator.
1195The following format characters can be used:
1196
1197%s: The status.
1198%e: The number of errors.
1199%w: The number of warnings.
1200%n: The number of notes."
1201 :version "28.1"
1202 :type 'string)
1203 1193
1204(defun flymake--mode-line-format () 1194(defun flymake--mode-line-format ()
1205 "Produce a pretty minor mode indicator." 1195 "Produce a pretty minor mode indicator."
@@ -1217,97 +1207,102 @@ The following format characters can be used:
1217 diags-by-type))) 1207 diags-by-type)))
1218 (flymake--backend-state-diags state))) 1208 (flymake--backend-state-diags state)))
1219 flymake--backend-state) 1209 flymake--backend-state)
1220 (format-spec 1210 `((:propertize " Flymake"
1221 (propertize 1211 mouse-face mode-line-highlight
1222 flymake-mode-line-indicator-format 1212 help-echo
1223 'mouse-face 'mode-line-highlight 1213 ,(concat (format "%s known backends\n" (length known))
1224 'help-echo (concat (format "%s known backends\n" (length known)) 1214 (format "%s running\n" (length running))
1225 (format "%s running\n" (length running)) 1215 (format "%s disabled\n" (length disabled))
1226 (format "%s disabled\n" (length disabled)) 1216 "mouse-1: Display minor mode menu\n"
1227 "mouse-1: Display minor mode menu\n" 1217 "mouse-2: Show help for minor mode")
1228 "mouse-2: Show help for minor mode") 1218 keymap
1229 'keymap (let ((map (make-sparse-keymap))) 1219 ,(let ((map (make-sparse-keymap)))
1230 (define-key map [mode-line down-mouse-1] 1220 (define-key map [mode-line down-mouse-1]
1231 flymake-menu) 1221 flymake-menu)
1232 (define-key map [mode-line mouse-2] 1222 (define-key map [mode-line mouse-2]
1233 (lambda () 1223 (lambda ()
1234 (interactive) 1224 (interactive)
1235 (describe-function 'flymake-mode))) 1225 (describe-function 'flymake-mode)))
1236 map)) 1226 map))
1237 (cons 1227 ,@(pcase-let ((`(,ind ,face ,explain)
1238 (cons 1228 (cond ((null known)
1239 ?s (pcase-let ((`(,ind ,face ,explain) 1229 '("?" nil "No known backends"))
1240 (cond ((null known) 1230 (some-waiting
1241 '("?" nil "No known backends")) 1231 `("Wait" compilation-mode-line-run
1242 (some-waiting 1232 ,(format "Waiting for %s running backend(s)"
1243 `("Wait" compilation-mode-line-run 1233 (length some-waiting))))
1244 ,(format "Waiting for %s running backend(s)" 1234 (all-disabled
1245 (length some-waiting)))) 1235 '("!" compilation-mode-line-run
1246 (all-disabled 1236 "All backends disabled"))
1247 '("!" compilation-mode-line-run 1237 (t
1248 "All backends disabled")) 1238 '(nil nil nil)))))
1249 (t 1239 (when ind
1250 '(nil nil nil))))) 1240 `((":"
1251 (if (not ind) 1241 (:propertize ,ind
1252 "" 1242 face ,face
1253 (concat 1243 help-echo ,explain
1254 ":" (propertize ind 1244 keymap
1255 'face face 1245 ,(let ((map (make-sparse-keymap)))
1256 'help-echo explain 1246 (define-key map [mode-line mouse-1]
1257 'keymap (let ((map (make-sparse-keymap))) 1247 'flymake-switch-to-log-buffer)
1258 (define-key map [mode-line mouse-1] 1248 map))))))
1259 'flymake-switch-to-log-buffer) 1249 ,@(unless (or all-disabled
1260 map)))))) 1250 (null known))
1261 (cl-loop 1251 (cl-loop
1262 with types = (hash-table-keys diags-by-type) 1252 with types = (hash-table-keys diags-by-type)
1263 with _augmented = (cl-loop for extra in '(:error :warning) 1253 with _augmented = (cl-loop for extra in '(:error :warning)
1264 do (cl-pushnew extra types 1254 do (cl-pushnew extra types
1265 :key #'flymake--severity)) 1255 :key #'flymake--severity))
1266 for type in (cl-sort types #'> :key #'flymake--severity) 1256 for type in (cl-sort types #'> :key #'flymake--severity)
1267 for diags = (gethash type diags-by-type) 1257 for diags = (gethash type diags-by-type)
1268 for face = (flymake--lookup-type-property 1258 for face = (flymake--lookup-type-property type
1269 type 'mode-line-face 'compilation-error) 1259 'mode-line-face
1270 when (or diags 1260 'compilation-error)
1271 (cond ((eq flymake-suppress-zero-counters t) 1261 when (or diags
1272 nil) 1262 (cond ((eq flymake-suppress-zero-counters t)
1273 (flymake-suppress-zero-counters 1263 nil)
1274 (>= (flymake--severity type) 1264 (flymake-suppress-zero-counters
1275 (warning-numeric-level 1265 (>= (flymake--severity type)
1276 flymake-suppress-zero-counters))) 1266 (warning-numeric-level
1277 (t t))) 1267 flymake-suppress-zero-counters)))
1278 collect (cons 1268 (t t)))
1279 (elt (format "%s" type) 1) 1269 collect `(:propertize
1280 (propertize 1270 ,(format "%d" (length diags))
1281 (format "%d" (length diags)) 1271 face ,face
1282 'face face 1272 mouse-face mode-line-highlight
1283 'mouse-face 'mode-line-highlight 1273 keymap
1284 'keymap 1274 ,(let ((map (make-sparse-keymap))
1285 (let ((map (make-sparse-keymap)) 1275 (type type))
1286 (type type)) 1276 (define-key map (vector 'mode-line
1287 (define-key map (vector 'mode-line 1277 mouse-wheel-down-event)
1288 mouse-wheel-down-event) 1278 (lambda (event)
1289 (lambda (event) 1279 (interactive "e")
1290 (interactive "e") 1280 (with-selected-window (posn-window (event-start event))
1291 (with-selected-window (posn-window (event-start event)) 1281 (flymake-goto-prev-error 1 (list type) t))))
1292 (flymake-goto-prev-error 1 (list type) t)))) 1282 (define-key map (vector 'mode-line
1293 (define-key map (vector 'mode-line 1283 mouse-wheel-up-event)
1294 mouse-wheel-up-event) 1284 (lambda (event)
1295 (lambda (event) 1285 (interactive "e")
1296 (interactive "e") 1286 (with-selected-window (posn-window (event-start event))
1297 (with-selected-window (posn-window (event-start event)) 1287 (flymake-goto-next-error 1 (list type) t))))
1298 (flymake-goto-next-error 1 (list type) t)))) 1288 map)
1299 map) 1289 help-echo
1300 'help-echo 1290 ,(concat (format "%s diagnostics of type %s\n"
1301 (concat (format "%s diagnostics of type %s\n" 1291 (propertize (format "%d"
1302 (propertize (format "%d" 1292 (length diags))
1303 (length diags)) 1293 'face face)
1304 'face face) 1294 (propertize (format "%s" type)
1305 (propertize (format "%s" type) 1295 'face face))
1306 'face face)) 1296 (format "%s/%s: previous/next of this type"
1307 (format "%s/%s: previous/next of this type" 1297 mouse-wheel-down-event
1308 mouse-wheel-down-event 1298 mouse-wheel-up-event)))
1309 mouse-wheel-up-event)))))) 1299 into forms
1310 nil t))) 1300 finally return
1301 `((:propertize "[")
1302 ,@(cl-loop for (a . rest) on forms by #'cdr
1303 collect a when rest collect
1304 '(:propertize " "))
1305 (:propertize "]")))))))
1311 1306
1312;;; Diagnostics buffer 1307;;; Diagnostics buffer
1313 1308