flymake: fall back to margins on text terminals
Previously, flymake-indicator-type defaulted to either fringes or margins. But fringes should be used on graphical frames, and margins on TTY frames. So default to fringes instead, and simply fall back to margins automatically on text frames. * lisp/progmodes/flymake.el (flymake-indicator-type): Set to fringes. (bug#77313) (flymake-mode): Fallback to margins if there's no fringes. * doc/misc/flymake.texi (Customizable variables): Mention fallback behavior. * etc/NEWS: Announce fallback behavior.
This commit is contained in:
parent
3b841700a8
commit
861e7f8b60
3 changed files with 25 additions and 6 deletions
|
@ -313,6 +313,9 @@ The indicator type which Flymake should use to indicate lines with
|
|||
errors or warnings.
|
||||
Depending on your preference, this can either use @code{fringes} or
|
||||
@code{margins} for indicating errors.
|
||||
If set to @code{fringes} (the default), it will automatically fall back
|
||||
to using margins in windows or frames without fringes, such as text
|
||||
terminals.
|
||||
|
||||
@item flymake-error-bitmap
|
||||
A bitmap used in the fringe to mark lines for which an error has
|
||||
|
|
8
etc/NEWS
8
etc/NEWS
|
@ -1747,6 +1747,14 @@ change their face if the current line exceeds the 'fill-column'. The
|
|||
new face 'display-fill-column-indicator-warning-face' is used to
|
||||
highlight the fill-column indicators. By default this is disabled.
|
||||
|
||||
---
|
||||
** Flymake
|
||||
|
||||
*** Windows without fringes now automatically use margin indicators
|
||||
When flymake-indicator-type is set to 'fringes', as is now the default,
|
||||
flymake will automatically fall back to using margin indicators in
|
||||
windows without fringes, including any window in a text terminal.
|
||||
|
||||
|
||||
* New Modes and Packages in Emacs 31.1
|
||||
|
||||
|
|
|
@ -185,22 +185,23 @@ See `flymake-error-bitmap' and `flymake-warning-bitmap'."
|
|||
(const right-fringe)
|
||||
(const :tag "No fringe indicators" nil)))
|
||||
|
||||
(defcustom flymake-indicator-type (if (display-graphic-p)
|
||||
'fringes
|
||||
'margins)
|
||||
(defcustom flymake-indicator-type 'fringes
|
||||
"Indicate which indicator type to use for display errors.
|
||||
|
||||
The value can be nil (don't indicate errors but just highlight them),
|
||||
fringes (use fringes) or margins (use margins)
|
||||
the symbol `fringes' (use fringes) or the symbol `margins' (use
|
||||
margins).
|
||||
|
||||
Difference between fringes and margin is that fringes support displaying
|
||||
bitmaps on graphical displays and margins display text in a blank area
|
||||
from current buffer that works in both graphical and text displays.
|
||||
Thus, even when `fringes' is selected, margins will still be used on
|
||||
text displays and also when fringes are disabled.
|
||||
|
||||
See Info node `Fringes' and Info node `(elisp)Display Margins'."
|
||||
:version "30.1"
|
||||
:version "31.1"
|
||||
:type '(choice (const :tag "Use Fringes" fringes)
|
||||
(const :tag "Use Margins "margins)
|
||||
(const :tag "Use Margins" margins)
|
||||
(const :tag "No indicators" nil)))
|
||||
|
||||
(defcustom flymake-margin-indicators-string
|
||||
|
@ -1439,6 +1440,13 @@ special *Flymake log* buffer." :group 'flymake :lighter
|
|||
(add-hook 'kill-buffer-hook 'flymake-kill-buffer-hook nil t)
|
||||
(add-hook 'eldoc-documentation-functions 'flymake-eldoc-function t t)
|
||||
|
||||
(when (and (eq flymake-indicator-type 'fringes)
|
||||
(not (cl-case flymake-fringe-indicator-position
|
||||
(left-fringe (< 0 (nth 0 (window-fringes))))
|
||||
(right-fringe (< 0 (nth 1 (window-fringes)))))))
|
||||
;; There are no fringes in the buffer, fallback to margins.
|
||||
(setq-local flymake-indicator-type 'margins))
|
||||
|
||||
;; AutoResize margins.
|
||||
(flymake--resize-margins)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue