diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 22a139d3045..f5bf68db574 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1331,7 +1331,10 @@ flymake-start nil)))))))) (defvar flymake-mode-map - (let ((map (make-sparse-keymap))) map) + (let ((map (make-sparse-keymap))) + (define-key map `[,flymake-fringe-indicator-position mouse-1] + #'flymake-show-buffer-diagnostics) + map) "Keymap for `flymake-mode'.") ;;;###autoload @@ -1972,8 +1975,12 @@ flymake-show-buffer-diagnostics (current-buffer))))) (with-current-buffer target (setq flymake--diagnostics-buffer-source source) - (display-buffer (current-buffer)) - (revert-buffer)))) + (revert-buffer) + (display-buffer (current-buffer) + `((display-buffer-reuse-window + display-buffer-below-selected) + (window-height . (lambda (window) + (fit-window-to-buffer window 10)))))))) ;;; Per-project diagnostic listing @@ -2073,8 +2080,11 @@ flymake-show-project-diagnostics (with-current-buffer buffer (flymake-project-diagnostics-mode) (setq-local flymake--project-diagnostic-list-project prj) - (display-buffer (current-buffer)) - (revert-buffer)))) + (revert-buffer) + (display-buffer (current-buffer) + `((display-buffer-reuse-window + display-buffer-at-bottom) + (window-height . fit-window-to-buffer)))))) (defun flymake--update-diagnostics-listings (buffer) "Update diagnostics listings somehow relevant to BUFFER."