[Top][All Lists]

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

Re: completion buffer - unsuitable column width

From: David Reitter
Subject: Re: completion buffer - unsuitable column width
Date: Tue, 3 Mar 2009 08:23:49 -0500

On 2 Mar 2009, at 20:33, Stefan Monnier wrote:

I don't know how to fix this given that there seems to be no way to
calculate the (average) character width of text with a given face.

That's unfortunate, indeed.

I haven't encountered such an issue with 22.

The code in Emacs-22, just used a hard-coded 79.

OK, perhaps we could use something like

(if (assq 'default face-remapping-alist) 79  (window-width))

to cover at least the case that I've encountered.

A grep over the source, looking for (window-width), reveals other suspicious uses.
I haven't examined it further, but take simple.el, line-move-visual:

(cond ((eq (nth 1 posn) 'right-fringe) ; overflow-newline-into- fringe
             (setq temporary-goal-column (- (window-width) 1)))

`temporary-goal-column' refers to buffer columns; window-width does not.

Or, abbrev.el:

        (while abbrev-list
          (if (> (+ first-column 40) (window-width))

first-column seems to refer to the buffer, again.

Or, term.el:
`term-window-width' uses (window-width) and I would assume that this (`term-width') is what is used by processes running in the terminal (COLUMNS).

Also, there's the longlines-mode case, but I've reported that before and we have a suitable replacement thanks to word wrapping.

I think we need something like

"window-buffer-width", giving the average (expected) number of columns in a window for text in the default face applicable to the buffer shown in a given window.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

reply via email to

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