[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Variable-width font indentation
From: |
Eli Zaretskii |
Subject: |
Re: Variable-width font indentation |
Date: |
Thu, 08 Mar 2018 15:21:55 +0200 |
> From: Clément Pit-Claudel <address@hidden>
> Date: Wed, 7 Mar 2018 17:13:09 -0500
>
> This version is a bit faster, and it uses 'display (space …) instead of ghost
> strings:
>
> (defun ~/variable-pitch-indent ()
> (interactive)
> (save-excursion
> (let ((spine [])
> (prev-bol nil)
> (prev-eol nil))
> (goto-char (point-min))
> (while (not (eobp))
> (let ((bol (point)))
> (back-to-indentation)
> (unless (eolp)
> (let* ((indentation-amount (current-column))
> (trunc-spine-to (min (length spine) indentation-amount)))
> (setq spine (seq-subseq spine 0 trunc-spine-to))
> ;; Extend spine based on previous line
> (when (and prev-bol (< (length spine) indentation-amount))
> (let ((beg (+ prev-bol (length spine)))
> (end (min prev-eol (+ prev-bol indentation-amount))))
> (setq spine (vconcat spine (~/measure-px-widths beg end)))))
> (setq prev-bol bol prev-eol (point-at-eol))))
> (dotimes (idx (min (length spine) (- (point) bol)))
> (let ((w (aref spine idx)))
> (put-text-property (+ bol idx) (+ bol idx 1)
> 'display `(space :width (,w)))))
> (forward-line 1))))))
It seems you forgot to post ~/measure-px-widths.
- Re: Variable-width font indentation, (continued)
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/06
- Re: Variable-width font indentation, Clément Pit-Claudel, 2018/03/06
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/06
- Re: Variable-width font indentation, Clément Pit-Claudel, 2018/03/07
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/07
- Re: Variable-width font indentation, Clément Pit-Claudel, 2018/03/09
- Re: Variable-width font indentation, Clément Pit-Claudel, 2018/03/07
- Re: Variable-width font indentation,
Eli Zaretskii <=
- Re: Variable-width font indentation, Clément Pit-Claudel, 2018/03/08
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/06
- Re: Variable-width font indentation, Daniel Colascione, 2018/03/06
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/06
- Re: Variable-width font indentation, dancol, 2018/03/06
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/06
- Re: Variable-width font indentation, Daniel Colascione, 2018/03/06
- Re: Variable-width font indentation, Sam Steingold, 2018/03/06
- Re: Variable-width font indentation, Ricardo Wurmus, 2018/03/06
- Re: Variable-width font indentation, Eli Zaretskii, 2018/03/07