Function: dape--minibuffer-hint
dape--minibuffer-hint is a natively compiled function defined in
dape.el.
Signature
(dape--minibuffer-hint &rest _)
Documentation
Display current configuration in minibuffer in overlay.
Source Code
;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--minibuffer-hint (&rest _)
"Display current configuration in minibuffer in overlay."
(pcase-let*
((`(,key ,config ,error-message ,hint-rows) dape--minibuffer-cache)
(str (string-trim
(buffer-substring-no-properties (minibuffer-prompt-end) (point-max))))
(`(,hint-key ,hint-config) (ignore-errors (dape--config-from-string str)))
(default-directory
(or (with-current-buffer dape--minibuffer-last-buffer
(ignore-errors (dape--guess-root hint-config)))
default-directory))
(use-cache (and (equal hint-key key)
(equal hint-config config)))
(use-ensure-cache
;; Ensure is expensive so we are cheating and don't re run
;; ensure if an ensure has evaled without signaling once
(and (equal hint-key key)
(not error-message)))
(error-message
(if use-ensure-cache
error-message
(condition-case err
(progn (with-current-buffer dape--minibuffer-last-buffer
(dape--config-ensure hint-config t))
nil)
(error (error-message-string err)))))
(hint-rows
(if use-cache
hint-rows
(cl-loop
with base-config = (alist-get hint-key dape-configs)
for (key value) on hint-config by 'cddr
unless (or (memq key dape-minibuffer-hint-ignore-properties)
(memq key displayed-keys)
(and (eq key 'port) (eq value :autoport)))
collect key into displayed-keys and collect
(concat
(propertize (format "%s" key) 'face 'font-lock-keyword-face)
" "
(with-current-buffer dape--minibuffer-last-buffer
(condition-case err
(propertize
(format "%S" (dape--config-eval-value value nil 'skip-interactive))
'face
(when (equal value (plist-get base-config key))
'shadow))
(error
(propertize (error-message-string err)
'face 'error)))))))))
(setq dape--minibuffer-cache
(list hint-key hint-config error-message hint-rows))
(overlay-put dape--minibuffer-hint-overlay
'before-string
(concat
(propertize " " 'cursor 0)
(when error-message
(format "%s" (propertize error-message 'face 'error)))))
(overlay-put dape--minibuffer-hint-overlay 'after-string
(when (and dape-minibuffer-hint hint-rows)
(concat "\n"
(propertize
" " 'face 'dape-minibuffer-hint-separator-face
'display '(space :align-to right))
"\n"
(mapconcat #'identity hint-rows "\n"))))
(move-overlay dape--minibuffer-hint-overlay
(point-max) (point-max) (current-buffer))))