[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/valign da56833 047/198: Always realign markdown tables
From: |
Stefan Monnier |
Subject: |
[elpa] externals/valign da56833 047/198: Always realign markdown tables |
Date: |
Tue, 1 Dec 2020 18:19:14 -0500 (EST) |
branch: externals/valign
commit da56833b32cdf2c326cfc18fd6eb8853b084ef8e
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>
Always realign markdown tables
Because that’s the only way.
* valign.el (valign-always-align, valign--markdown-mode-hook): New
funtions.
(valign-mode): Change hooks and advices.
---
valign.el | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/valign.el b/valign.el
index e790f99..9b406da 100644
--- a/valign.el
+++ b/valign.el
@@ -366,6 +366,12 @@ Force align if FORCE non-nil."
(put-text-property beg (point) 'valign-init t))))
(cons 'jit-lock-bounds (cons beg end)))
+(defun valign-always-align (beg end)
+ "Perform initial alignment for tables between BEG and END.
+Supposed to be called from jit-lock. Unlike
+`valign-initial-ailgnment', always realign."
+ (valign-initial-alignment beg end t))
+
(cl-defmethod valign--align-separator-row
(type (style (eql single-column)) pos-list)
"Align the separator row (|---+---|) as “|---------|”.
@@ -592,6 +598,12 @@ for the former, and 'multi-column for the latter."
"Valign hook function used by `org-mode'."
(jit-lock-register #'valign-initial-alignment))
+(defun valign--markdown-mode-hook ()
+ "Valign hook function used by `markdown-mode'."
+ ;; We want our hook run after other markdown fontifications,
+ ;; because they mess up our alignment (which is not cool).
+ (add-hook 'jit-lock-functions #'valign-always-align 98 t))
+
(defun valign--force-align-buffer (&rest _)
"Forcefully realign every table in the buffer."
(valign-initial-alignment (point-min) (point-max) t))
@@ -642,7 +654,7 @@ When they are fontified next time."
(if (and valign-mode window-system)
(progn
(add-hook 'org-mode-hook #'valign--org-mode-hook 90)
- (add-hook 'markdown-mode-hook #'valign--org-mode-hook 90)
+ (add-hook 'markdown-mode-hook #'valign--markdown-mode-hook 90)
(add-hook 'org-agenda-finalize-hook #'valign--force-align-buffer)
(advice-add 'org-toggle-inline-images
:after #'valign--force-align-buffer)
@@ -666,7 +678,6 @@ When they are fontified next time."
(with-current-buffer buf
(when (or (derived-mode-p 'org-mode)
(derived-mode-p 'markdown-mode))
- (valign--org-mode-hook)
(if (get-buffer-window buf t)
(with-selected-window (get-buffer-window buf t)
(valign-initial-alignment (point-min) (point-max) t))
@@ -674,9 +685,13 @@ When they are fontified next time."
(put-text-property
(point-min) (point-max) 'fontified nil)
(put-text-property
- (point-min) (point-max) 'valign-init nil)))))))
+ (point-min) (point-max) 'valign-init nil))))
+ (cond ((derived-mode-p 'org-mode)
+ (valign--org-mode-hook))
+ ((derived-mode-p 'markdown-mode)
+ (valign--markdown-mode-hook))))))
(remove-hook 'org-mode-hook #'valign--org-mode-hook)
- (remove-hook 'markdown-mode-hook #'valign--org-mode-hook)
+ (remove-hook 'markdown-mode-hook #'valign--markdown-mode-hook)
(remove-hook 'org-agenda-finalize-hook #'valign--force-align-buffer)
(advice-remove 'org-toggle-inline-images #'valign--force-align-buffer)
(advice-remove 'org-restart-font-lock #'valign--realign-on-refontification)
- [elpa] externals/valign 2a60a4d 025/198: Remove valign-setup, (continued)
- [elpa] externals/valign 2a60a4d 025/198: Remove valign-setup, Stefan Monnier, 2020/12/01
- [elpa] externals/valign e555277 029/198: Add with-silent-modification, Stefan Monnier, 2020/12/01
- [elpa] externals/valign bdb56ce 032/198: Sync all org mode alignment state automatically, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 3c70c15 034/198: * valign.el (valign-mode): Fix., Stefan Monnier, 2020/12/01
- [elpa] externals/valign 3752d53 036/198: Solve a bunch of edge cases, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 5b9a086 038/198: Fix edge case, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 8cfe0ca 039/198: * valign.el (valign-separator-row-style): Add choice definition., Stefan Monnier, 2020/12/01
- [elpa] externals/valign 927d82d 041/198: Support indented tables, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 81de913 042/198: Property support tabs, Stefan Monnier, 2020/12/01
- [elpa] externals/valign db0c4d8 043/198: Add support for markdown tables, Stefan Monnier, 2020/12/01
- [elpa] externals/valign da56833 047/198: Always realign markdown tables,
Stefan Monnier <=
- [elpa] externals/valign e885f67 048/198: Merge branch 'markdown', Stefan Monnier, 2020/12/01
- [elpa] externals/valign cd7c17f 052/198: Fix infinite loop, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 638f978 054/198: Fix infinite loop!!, Stefan Monnier, 2020/12/01
- [elpa] externals/valign 994a4dc 056/198: Advice outline, Stefan Monnier, 2020/12/01
- [elpa] externals/valign cf4f9c9 059/198: * valign.el (valign-initial-alignment): Check buffer visibility., Stefan Monnier, 2020/12/01
- [elpa] externals/valign cc53114 060/198: * valign.el (valign-initial-alignment): Fix., Stefan Monnier, 2020/12/01
- [elpa] externals/valign f2ccbd9 069/198: * README.org: Rarrange., Stefan Monnier, 2020/12/01
- [elpa] externals/valign 24ad00d 074/198: * valign.el (valign--cell-width): Includes extra spaces in cell width., Stefan Monnier, 2020/12/01
- [elpa] externals/valign 931d102 035/198: * valign.el (valign-mode): Always add jit-lock hook., Stefan Monnier, 2020/12/01
- [elpa] externals/valign 3a84705 062/198: Suppress some errors, Stefan Monnier, 2020/12/01