diff options
| author | João Távora | 2020-12-29 14:07:03 +0000 |
|---|---|---|
| committer | João Távora | 2020-12-29 14:08:23 +0000 |
| commit | ecd9264372a61cf35696288d2d0c8afe77dd084f (patch) | |
| tree | b58c322afdd2f84b7855c5fd9f18613c9e028cc3 | |
| parent | 177863b1ce4f1ede76b1921390e50c90136af27d (diff) | |
| download | emacs-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.texi | 3 | ||||
| -rw-r--r-- | etc/NEWS | 5 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 197 |
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 | |||
| 213 | configuration of the Flymake user interface. | 213 | configuration of the Flymake user interface. |
| 214 | 214 | ||
| 215 | @vtable @code | 215 | @vtable @code |
| 216 | @item flymake-mode-line-indicator-format | ||
| 217 | Format to use for the Flymake mode line indicator. | ||
| 218 | |||
| 219 | @item flymake-no-changes-timeout | 216 | @item flymake-no-changes-timeout |
| 220 | If any changes are made to the buffer, syntax check is automatically | 217 | If any changes are made to the buffer, syntax check is automatically |
| 221 | started after this many seconds, unless the user makes another change, | 218 | started after this many seconds, unless the user makes another change, |
| @@ -1738,11 +1738,6 @@ height of lines or width of chars. | |||
| 1738 | When non-nil, use a new xwidget webkit session after bookmark jump. | 1738 | When non-nil, use a new xwidget webkit session after bookmark jump. |
| 1739 | Otherwise, it will use 'xwidget-webkit-last-session'. | 1739 | Otherwise, 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. | ||
| 1195 | The 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 | ||