Function: flymake--bs-display

flymake--bs-display is a byte-compiled function defined in flymake.el.gz.

Signature

(flymake--bs-display TYPE WHERE)

Documentation

Return a display spec for an overlay's before-string.

The overlay will represent a diagnostic of type TYPE. WHERE is the symbol fringes or the symbol margins.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/flymake.el.gz
(defun flymake--bs-display (type where)
  "Return a `display' spec for an overlay's `before-string'.
The overlay will represent a diagnostic of type TYPE.  WHERE is the
symbol `fringes' or the symbol `margins'."
  (let* ((indicator (flymake--lookup-type-property
                     type
                     (cl-case where
                       (fringes 'flymake-bitmap)
                       (margins 'flymake-margin-string))
                     (alist-get 'bitmap (alist-get type ; backward compat
                                                   flymake-diagnostic-types-alist))))
         (value (if (symbolp indicator)
                    (symbol-value indicator)
                  indicator))
         (valuelist (if (listp value)
                        value
                      (list value)))
         (indicator-car (car valuelist)))
    (cond ((and (symbolp indicator-car)
                flymake-fringe-indicator-position)
           (cons flymake-fringe-indicator-position valuelist))
          ((and (stringp indicator-car)
                flymake-margin-indicator-position)
           `((margin ,flymake-margin-indicator-position)
             ,(propertize
               indicator-car
               'face `(:inherit (,(cdr valuelist) default))
               'mouse-face 'highlight
               'help-echo "Open Flymake diagnostics"
               'keymap (let ((map (make-sparse-keymap)))
                         (define-key
                          map `[,flymake-margin-indicator-position mouse-1]
                          #'flymake-show-buffer-diagnostics)
                         map)))))))