diff options
author | Yuchen Pei <hi@ypei.me> | 2022-09-29 10:43:50 +1000 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2022-09-29 10:43:50 +1000 |
commit | 19b43ada7e304221680df6e6fb53383d9a367d7c (patch) | |
tree | d073e1791d21bfc0cb9cfec7eb30ef3e7cd357ab /hcel-utils.el | |
parent | ba93eaa07c02d1fe21c8b267f0e126ff1519a721 (diff) |
cut off component in minibuffer if too long
Diffstat (limited to 'hcel-utils.el')
-rw-r--r-- | hcel-utils.el | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/hcel-utils.el b/hcel-utils.el index 3bd8841..18a8c07 100644 --- a/hcel-utils.el +++ b/hcel-utils.el @@ -111,20 +111,25 @@ Example of an idSrcSpan: (unless (stringp divider) (setq divider " ")) (concat (alist-get 'name package) divider (alist-get 'version package))) -(defun hcel-render-components (components &optional name) +(defun hcel-render-components (components &optional name comp-max-len) (when (or components name) (concat (when name (replace-regexp-in-string "\n" " " name)) (when components - (concat (when name " :: ") - (replace-regexp-in-string - "\n" " " (mapconcat - (lambda (component) - (propertize - (or (alist-get 'name component) - (alist-get 'contents component)) - 'internal-id (alist-get 'internalId component))) - components - ""))))))) + (let ((rendered-comp + (concat (when name " :: ") + (substring + (replace-regexp-in-string + "\n" " " (mapconcat + (lambda (component) + (propertize + (or (alist-get 'name component) + (alist-get 'contents component)) + 'internal-id (alist-get 'internalId component))) + components + "")))))) + (if (and comp-max-len (< comp-max-len (length rendered-comp))) + (concat (substring rendered-comp 0 comp-max-len) "...") + rendered-comp)))))) (defun hcel-render-id-type (id-type) (concat |