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: Eli Zaretskii
Subject: bug#72309: propertized-buffer-identification with maximum width
Date: Sun, 28 Jul 2024 07:55:43 +0300

> Date: Sat, 27 Jul 2024 20:49:05 +0000
> From: Heime <heimeborgia@protonmail.com>
> Cc: 72309@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> 
> On Sunday, July 28th, 2024 at 3:27 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 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))))
> > 
> 
> What is the big problem of showing how to implement this, buffer name
> with truncation ellipses using mode-line-buffer-identification ?

We don't have people here whose job is to write code for others.  This
is a volunteer-based project, where people help you with ideas, but
the actual job of writing and debugging the code is yours.

So please take the ideas, read the documentation, and work on the
implementation you want.  If you have questions about the
implementation, please ask them on help-gnu-emacs, which is where
user-level help should be sought.

> Can there be some additional commands to make this possibility less
> cumbersome.  For instance, an option that gives 
> mode-line-buffer-identification
> with truncation ellipses. 

No.





reply via email to

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