[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/valign bcfb414 13/15: Improve parse error report
From: |
Stefan Monnier |
Subject: |
[elpa] externals/valign bcfb414 13/15: Improve parse error report |
Date: |
Tue, 16 Mar 2021 00:01:35 -0400 (EDT) |
branch: externals/valign
commit bcfb414421abfd87085ae9ca111ff4f56ddf92ce
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>
Improve parse error report
* valign.el (valign--cell-alignment, valign--calculate-cell-width,
valign--calculate-alignment, valign-table-1): More detail in the error
message.
(valign-signal-parse-error): Update doc-string to reflect the new
logic.
(valign-table-maybe): Swap the old weird logic with the new one.
---
valign.el | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/valign.el b/valign.el
index 6f4fe57..61546c7 100644
--- a/valign.el
+++ b/valign.el
@@ -188,7 +188,9 @@ Doesn’t check if we are in a cell."
(if (looking-at " [^ ]")
'left
(if (not (search-forward "|" nil t))
- (signal 'valign-parse-error '("Missing the right bar (|)"))
+ (signal
+ 'valign-parse-error
+ (list (format "Missing the right bar (|) around %s" (point))))
(if (looking-back
"[^ ] |" (max (- (point) 3) (point-min)))
'right
@@ -427,7 +429,7 @@ need to specify CHARSET."
(push (reverse row) matrix))))
;; Sanity check.
(unless (valign---check-dimension matrix)
- (signal 'valign-parse-error '("Missing rows or columns")))
+ (signal 'valign-parse-error '("The number of columns for each row don’t
match, maybe a bar (|) is missing?")))
(setq matrix (valign--transpose (reverse matrix)))
;; Add 8 pixels of padding.
(mapcar (lambda (col) (+ (apply #'max col) 8)) matrix)))
@@ -447,7 +449,7 @@ TYPE must be 'markdown. Start at point, stop at LIMIT."
(push (reverse row) matrix))))
;; Sanity check.
(unless (valign---check-dimension matrix)
- (signal 'valign-parse-error '("Missing rows or columns")))
+ (signal 'valign-parse-error '("The number of columns for each row don’t
match, maybe a bar (|) is missing?")))
(setq matrix (valign--transpose (reverse matrix)))
(if matrix
(mapcar #'car matrix)
@@ -472,7 +474,7 @@ TYPE must be 'org. Start at point, stop at LIMIT."
(push (reverse row) matrix)))
;; Sanity check.
(unless (valign---check-dimension matrix)
- (signal 'valign-parse-error '("Missing rows or columns")))
+ (signal 'valign-parse-error '("The number of columns for each row
don’t match, maybe a bar (|) is missing?")))
(setq matrix (valign--transpose (reverse matrix)))
;; For each column, we take the majority.
(mapcar (lambda (col)
@@ -712,7 +714,8 @@ COLUMN-WIDTH-LIST is returned by
`valign--calculate-cell-width'."
:group 'valign)
(defvar valign-signal-parse-error nil
- "When non-nil, signal parse error.")
+ "When non-nil and ‘debug-on-error’, signal parse error.
+If ‘debug-on-error’ is also non-nil, drop into the debugger.")
(defcustom valign-max-table-size 4000
"Valign doesn't align tables of size larger than this value.
@@ -758,11 +761,11 @@ at the end of the table."
(valign--clean-text-property
(save-excursion (valign--beginning-of-table) (point))
(save-excursion (valign--end-of-table) (point)))
- ;; Ignore parse error when not in debug mode.
- (if (and (not valign-signal-parse-error)
- (eq (car err) 'valign-parse-error))
- nil
- (signal (car err) (cdr err))))))
+ (when (and (eq (car err) 'valign-parse-error)
+ valign-signal-parse-error)
+ (if debug-on-error
+ (debug 'valign-parse-error)
+ (message "%s" (error-message-string err)))))))
(defun valign-table-1 ()
"Visually align the table at point."
@@ -782,7 +785,9 @@ at the end of the table."
;; Align each row.
(valign--do-row row-idx table-end
(unless (search-forward "|" (line-end-position) t)
- (signal 'valign-parse-error '("Missing the right bar (|)")))
+ (signal 'valign-parse-error
+ (list (format "Missing the right bar (|) around %s"
+ (point)))))
(if (valign--separator-p)
;; Separator row.
(valign--align-separator-row column-width-list)
- [elpa] externals/valign 6b0345e 03/15: Make at-table-p testing stricter, (continued)
- [elpa] externals/valign 6b0345e 03/15: Make at-table-p testing stricter, Stefan Monnier, 2021/03/16
- [elpa] externals/valign 49209b4 05/15: * README-CN.org: Touch up on phrasing., Stefan Monnier, 2021/03/16
- [elpa] externals/valign 2035143 15/15: * README-CN.org (自定义): Add descriptions for some variables., Stefan Monnier, 2021/03/16
- [elpa] externals/valign acdb551 01/15: Really really fix org-indent and line-number problem, Stefan Monnier, 2021/03/16
- [elpa] externals/valign b6a0dcd 04/15: Add Chinese README, Stefan Monnier, 2021/03/16
- [elpa] externals/valign e8a5ce1 07/15: Remove note about org-indent-mode + line-numbers-mode, Stefan Monnier, 2021/03/16
- [elpa] externals/valign f5db1ef 06/15: ; * README.org: Change link to Chinese README., Stefan Monnier, 2021/03/16
- [elpa] externals/valign db5145a 14/15: * README.org (Customization): Add description for some variables., Stefan Monnier, 2021/03/16
- [elpa] externals/valign ccbcc1c 10/15: Fix alignment for Unicode tables, Stefan Monnier, 2021/03/16
- [elpa] externals/valign 16ff947 08/15: Patch an outline bug., Stefan Monnier, 2021/03/16
- [elpa] externals/valign bcfb414 13/15: Improve parse error report,
Stefan Monnier <=
- [elpa] externals/valign 3fcb173 12/15: Fix 'valign--separator-line-p', Stefan Monnier, 2021/03/16
- [elpa] externals/valign ad8419e 11/15: ; * test.org: Add a test for Unicode tables., Stefan Monnier, 2021/03/16
- [elpa] externals/valign 745889d 09/15: * valign.el (valign--at-table-p): Don't pass "" to 'char-to-string'., Stefan Monnier, 2021/03/16
- Re: [elpa] externals/valign updated (223407d -> 2035143), Yuan Fu, 2021/03/16