emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/hcel 19b43ada7e 3/3: cut off component in minibuffer if


From: ELPA Syncer
Subject: [elpa] externals/hcel 19b43ada7e 3/3: cut off component in minibuffer if too long
Date: Wed, 28 Sep 2022 20:57:42 -0400 (EDT)

branch: externals/hcel
commit 19b43ada7e304221680df6e6fb53383d9a367d7c
Author: Yuchen Pei <hi@ypei.me>
Commit: Yuchen Pei <hi@ypei.me>

    cut off component in minibuffer if too long
---
 hcel-results.el |  5 ++++-
 hcel-utils.el   | 27 ++++++++++++++++-----------
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/hcel-results.el b/hcel-results.el
index 58c6f31f6e..275cab9236 100644
--- a/hcel-results.el
+++ b/hcel-results.el
@@ -332,6 +332,7 @@ Start by choosing a package."
 (defvar hcel-ids--minibuffer-saved-query nil)
 (defvar hcel-ids--minibuffer-saved-results nil)
 (defvar hcel-ids--minibuffer-selected nil)
+(defvar hcel-ids-minibuffer-component-max-len 80)
 
 (defun hcel-ids--affixation-internal (scope items)
   (let ((results
@@ -344,7 +345,9 @@ Start by choosing a package."
                      (format
                       " :: %s"
                       (hcel-render-components
-                       (alist-get 'components (alist-get 'idType info))))
+                       (alist-get 'components (alist-get 'idType info))
+                       nil
+                       hcel-ids-minibuffer-component-max-len))
                      'face 'completions-annotations))
                    (prefix
                     (propertize
diff --git a/hcel-utils.el b/hcel-utils.el
index 3bd8841899..18a8c0731a 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]