bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#72309: propertized-buffer-identification with maximum width


From: Heime
Subject: bug#72309: propertized-buffer-identification with maximum width
Date: Sat, 27 Jul 2024 15:27:17 +0000





Sent with Proton Mail secure email.

On Sunday, July 28th, 2024 at 2:56 AM, Heime via "Bug reports for GNU Emacs, 
the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> wrote:

> 
> 
> 
> 
> 
> Sent with Proton Mail secure email.
> 
> 
> On Sunday, July 28th, 2024 at 1:29 AM, Eli Zaretskii eliz@gnu.org wrote:
> 
> > > Date: Sat, 27 Jul 2024 13:08:31 +0000
> > > From: Heime heimeborgia@protonmail.com
> > > Cc: 72309@debbugs.gnu.org
> > > 
> > > On Sunday, July 28th, 2024 at 1:00 AM, Eli Zaretskii eliz@gnu.org wrote:
> > > 
> > > > Yes, but the (WIDTH something) construct is not for truncating long
> > > > names, it's for ensuring the string produced by "something" doesn't
> > > > take too many columns. So you are using this for a wrong purpose. If
> > > > you want to truncate a buffer's name, use truncate-string-to-width
> > > > instead, which is also capable of showing the ellipsis at the end.
> > > 
> > > I do not know how to access the buffer name and apply 
> > > truncate-string-to-width
> > > when setting mode-line-buffer-identification on 
> > > propertized-buffer-identification.
> > 
> > Use :eval.
> 
> 
> I have done it without success
> 
> (defun vodil-rtgbfn (wmin)
> (setq-default mode-line-buffer-identification
> (propertized-buffer-identification (format " %%%db " wmin))))
> 
> (vodil-rtgbfn 8)
> 
> (setq-default mode-line-format
> '( "%e" (:eval (truncate-string-to-width mode-line-buffer-identification 13))
> vodil-panelit-bfselec))


Have now done, but now the buffer name is not displayed.  Why has there
to be so much torture to change the defaults !
 
 (defun vodil-tkbfn-ellipses (wmax)
  "Get the buffer name truncated to WMAX width with ellipsis."

  (let* ( (bfname (buffer-name (window-buffer)))
          (tkname (if (> (length bfname) wmax)
                      (truncate-string-to-width bfname wmax nil nil "...")
                    bfname)))
    (propertized-buffer-identification (format " %s " tkname))))


(defun vodil-tkbfn (wmax)
  "Set mode-line-buffer-identification with WMAX maximum width."

  (setq-default mode-line-buffer-identification
    '(:eval (vodil-tkbfn-ellipses wmax))))







reply via email to

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