[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csv-mode ac35a9f 23/34: * packages/csv-mode/csv-mode.el
From: |
Stefan Monnier |
Subject: |
[elpa] externals/csv-mode ac35a9f 23/34: * packages/csv-mode/csv-mode.el: Remove Francis as maintainer |
Date: |
Sun, 29 Nov 2020 18:46:16 -0500 (EST) |
branch: externals/csv-mode
commit ac35a9fe7e5a0a74d308f348af7ed65be9fd5da2
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* packages/csv-mode/csv-mode.el: Remove Francis as maintainer
(csv-unalign-fields): Also remove the `invisible` property since
we use it to truncate fields in csv--jit-align.
(csv-align-fields-max-width): Rename from csv-align-field-max-width to
match the "csv-align-fields" prefix.
(csv--ellipsis-width): New function.
(csv--jit-align): Use it to truncate more correctly.
---
csv-mode.el | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/csv-mode.el b/csv-mode.el
index 21b660d..a4d9253 100644
--- a/csv-mode.el
+++ b/csv-mode.el
@@ -3,6 +3,7 @@
;; Copyright (C) 2003, 2004, 2012-2019 Free Software Foundation, Inc
;; Author: "Francis J. Wright" <F.J.Wright@qmul.ac.uk>
+;; Maintainer: emacs-devel@gnu.org
;; Version: 1.9
;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
;; Keywords: convenience
@@ -784,7 +785,7 @@ the mode line after `csv-field-index-delay' seconds of
Emacs idle time."
(buffer-list)))
(setq csv-field-index-idle-timer
(run-with-idle-timer csv-field-index-delay t
- 'csv-field-index)))
+ #'csv-field-index)))
;; but if the mode is off then remove the display from the mode
;; lines of all CSV buffers:
(mapc (lambda (buffer)
@@ -1163,7 +1164,7 @@ If there is no selected region, default to the whole
buffer."
;; Remove any soft alignment:
(mapc #'csv--delete-overlay (overlays-in beg end))
(with-silent-modifications
- (remove-list-of-text-properties beg end '(display)))
+ (remove-list-of-text-properties beg end '(display invisible)))
(when hard
(barf-if-buffer-read-only)
;; Remove any white-space padding around separators:
@@ -1356,7 +1357,7 @@ If there is already a header line, then unset the header
line."
;;; Auto-alignment
-(defcustom csv-align-field-max-width 40
+(defcustom csv-align-fields-max-width 40
"Maximum width of a column in `csv-align-fields-mode'."
:type 'integer)
@@ -1405,6 +1406,13 @@ If there is already a header line, then unset the header
line."
pos (setq pos (or (text-property-any pos (point-max) 'csv--jit nil)
(point-max)))))))
+(defun csv--ellipsis-width ()
+ (let ((ellipsis
+ (when standard-display-table
+ (display-table-slot standard-display-table
+ 'selective-display))))
+ (if ellipsis (length ellipsis) 3)))
+
(defun csv--jit-align (beg end)
(save-excursion
;; First, round up to a whole number of lines.
@@ -1416,7 +1424,8 @@ If there is already a header line, then unset the header
line."
(put-text-property beg end 'csv--jit t)
(pcase-let* ((`(,column-widths ,field-widths) (csv--column-widths beg end))
- (changed (csv--jit-merge-columns column-widths)))
+ (changed (csv--jit-merge-columns column-widths))
+ (ellipsis-width (csv--ellipsis-width)))
(when changed
;; Do it after the current redisplay is over.
;; We could even defer it by a small amount of time.
@@ -1433,14 +1442,16 @@ If there is already a header line, then unset the
header line."
(align-padding (if (bolp) 0 csv-align-padding))
(left-padding 0) (right-padding 0)
(field-width (pop field-widths))
- (column-width (min (pop w) csv-align-field-max-width))
+ (column-width (min (pop w) csv-align-fields-max-width))
(x (- column-width field-width)) ; Required padding.
(truncate nil))
(csv-end-of-field)
;; beg = beginning of current field
;; end = (point) = end of current field
(when (< x 0)
- (setq truncate (+ column column-width))
+ (setq truncate (max column
+ (+ column column-width
+ align-padding (- ellipsis-width))))
(setq x 0))
;; Compute required padding:
(pcase csv-align-style
@@ -1491,8 +1502,7 @@ If there is already a header line, then unset the header
line."
(put-text-property
(1- field-beg) field-beg
'display `(space :align-to
- ,(+ left-padding column)))))
- (setq column (+ column column-width align-padding)))
+ ,(+ left-padding column))))))
(t ;; Do not hide separators...
(let ((overlay (csv--make-overlay field-beg (point)
@@ -1508,6 +1518,9 @@ If there is already a header line, then unset the header
line."
(overlay-put
overlay
'after-string (make-string right-padding ?\ )))))))
+
+ (setq column (+ column column-width align-padding))
+
;; Do it after applying the property, so `move-to-column' can
;; take it into account.
(when truncate
- [elpa] externals/csv-mode 60e3253 02/34: * packages/csv-mode/csv-mode.el: Minor installation cleanups., (continued)
- [elpa] externals/csv-mode 60e3253 02/34: * packages/csv-mode/csv-mode.el: Minor installation cleanups., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 046da98 11/34: (csv-mode): Set mode-line-position rather than mode-line-format., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 96f331b 08/34: * packages/csv-mode/csv-mode.el (csv-end-of-field): Don't skip TABs., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 8c5ea6a 14/34: * csv-mode, landmark: Fix maintainer's email, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 08ee1af 09/34: * csv-mode.el (csv-kill-one-field): Check for presence before deleting trailing, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 7e5e6bd 29/34: * packages/csv-mode/csv-mode.el (csv-align--cursor-truncated): Fix C-e case, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode f5de789 27/34: * packages/csv-mode/csv-mode.el: More cvs-align-mode improvements, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 0207304 33/34: * packages/csv-mode/csv-mode.el: Bump version number, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode c5e179b 20/34: * packages/csv-mode/csv-mode.el: Add tsv-mode and csv-align-fields-mode, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode de4d1e6 24/34: packages/csv-mode/csv-mode.el: Fix csv-align-fields doc, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode ac35a9f 23/34: * packages/csv-mode/csv-mode.el: Remove Francis as maintainer,
Stefan Monnier <=
- [elpa] externals/csv-mode b585892 22/34: * packages/csv-mode/csv-mode.el (csv-align-field-max-width): New var, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode bfe6321 15/34: * csv-mode/csv-mode.el: Remove out-of-date "URL:" header., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 8824a58 30/34: * packages/csv-mode/csv-mode.el: New TAB/backtab commands, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode e83c5c5 19/34: Speed up 'csv-align-fields', Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 49eb4d1 21/34: * packages/csv-mode/csv-mode.el: Fix for customize-mode, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 8eedc80 25/34: * packages/csv-mode/csv-mode.el: Fix header-line's alignment, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode cbc9682 34/34: * .gitignore: New file, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 0a1ff7a 28/34: * packages/csv-mode/csv-mode.el: Auto-shorten columns as well, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode f13ff11 18/34: * csv-mode/csv-mode.el (csv-header-line): New command, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 5fb7759 17/34: Fix some quoting problems in doc strings, Stefan Monnier, 2020/11/29