[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org-modern d36dc621d8 021/105: Handle markup for block
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org-modern d36dc621d8 021/105: Handle markup for block insertion correctly |
Date: |
Tue, 15 Apr 2025 13:00:54 -0400 (EDT) |
branch: externals/org-modern
commit d36dc621d8b2981b7d29ca6a9bf60279f15dae1e
Author: JD Smith <93749+jdtsmith@users.noreply.github.com>
Commit: JD Smith <93749+jdtsmith@users.noreply.github.com>
Handle markup for block insertion correctly
A block's begin and end are needed for the font locking to add the
appropriate properties like org-block. Wrap the insert function do
this after insertion is complete.
---
org-modern-indent.el | 35 ++++++++++++++++++++++++-----------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/org-modern-indent.el b/org-modern-indent.el
index 609e0ad4b7..1d195f93d4 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -59,6 +59,7 @@ explicitly, or inherited."
(defvar org-modern-indent-begin nil)
(defvar org-modern-indent-guide nil)
(defvar org-modern-indent-end nil)
+(defvar-local org-modern--disabled nil)
(defun org-modern-indent-set-line-properties (level indentation &optional
heading)
"An org-modern inspired redefinition of `org-indent-set-line-properties'.
Used to approximate org-modern block style. Treats blocks
@@ -77,9 +78,10 @@ guide unicode character."
(change-beg (line-beginning-position))
(change-end (line-beginning-position 2))
(line-end (line-end-position)))
- (unless (get-text-property (point) 'fontified) ;sometimes we beat font-lock
- (font-lock-ensure change-beg line-end)) ;We rely on fonts to identify
blocks
+ (unless (or org-modern--disabled (get-text-property (point) 'fontified))
+ (font-lock-ensure change-beg line-end)) ;sometimes we beat font-lock
(or (when-let (((eq heading nil))
+ ((not org-modern--disabled))
(face (get-text-property (point) 'face)))
(cond
;; Block begin: use begin prefix, use guide for following blank line
+ wrap
@@ -103,6 +105,15 @@ guide unicode character."
(org-modern-indent--add-props change-beg change-end line extra-pad)))
(forward-line))
+(defun org-modern-indent-block-insert (fun &rest r)
+ (let* ((reg (use-region-p))
+ (p (if reg (region-beginning) (point)))
+ (m (point-marker)))
+ (set-marker-insertion-type m t)
+ (if reg (set-marker m (region-end)))
+ (let ((org-modern--disabled t)) (apply fun r))
+ (org-indent-refresh-maybe p m nil)))
+
(defvar org-modern-indent-set-line-properties--orig
(symbol-function 'org-indent-set-line-properties)
"Original `org-indent-set-line-properties' function.")
@@ -119,15 +130,17 @@ guide unicode character."
:group 'org-modern-indent
(if org-modern-indent-mode
(progn
- (setq org-modern-indent-begin
- (propertize "╭" 'face 'org-meta-line)
- org-modern-indent-guide
- (propertize "│" 'face 'org-meta-line)
- org-modern-indent-end
- (propertize "╰" 'face 'org-meta-line))
- (setq-local org-fontify-quote-and-verse-blocks t)
- (setf (symbol-function 'org-indent-set-line-properties)
- (symbol-function 'org-modern-indent-set-line-properties)))
+ (setq org-modern-indent-begin
+ (propertize "╭" 'face 'org-meta-line)
+ org-modern-indent-guide
+ (propertize "│" 'face 'org-meta-line)
+ org-modern-indent-end
+ (propertize "╰" 'face 'org-meta-line))
+ (setq-local org-fontify-quote-and-verse-blocks t)
+ (setf (symbol-function 'org-indent-set-line-properties)
+ (symbol-function 'org-modern-indent-set-line-properties))
+ (advice-add #'org-insert-structure-template :around
#'org-modern-indent-block-insert))
+ (advice-remove #'org-insert-structure-template
#'org-modern-indent-block-insert)
(setf (symbol-function 'org-indent-set-line-properties)
org-modern-indent-set-line-properties--orig))
(org-indent-indent-buffer))
- [elpa] externals/org-modern 17068a51dc 047/105: refresh timer: run-at-time instead of idle, (continued)
- [elpa] externals/org-modern 17068a51dc 047/105: refresh timer: run-at-time instead of idle, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern b8f3b2e476 081/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 52b46c6ecd 080/105: Merge pull request #19 from btobolaski/patch-1, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern fe226e8bc1 104/105: Move README indent section, do not yet bump version, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern a462be576c 101/105: Merge org-modern-indent README and ChangeLog into org-modern's, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern e436abc3d4 009/105: Treat quote and verse blocks as well, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 4e71fd3069 007/105: Discuss line-spacing and need for indent, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 9bbe591c58 008/105: Store set-line-properties function def on load, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern a2deeae174 014/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern a5ed40c3ab 015/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern d36dc621d8 021/105: Handle markup for block insertion correctly,
ELPA Syncer <=
- [elpa] externals/org-modern b14f01e926 035/105: org-indent refresh watching added, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 308027fb03 027/105: Do not re-indent entire buffer on mode start/stop, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 85f95d093d 054/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern f1033a3ffa 052/105: Bump version, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 7c07c47cc5 055/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern c8671f2af0 067/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 3793964555 078/105: Update README.md, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern 24ce7f35f7 076/105: Make `org-indent` requirement more prominent, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern ca440cd414 084/105: major rewrite using org-element + before/after-change-functions, ELPA Syncer, 2025/04/15
- [elpa] externals/org-modern fcd4368476 085/105: after-change: ensure beg/end fully span lines, ELPA Syncer, 2025/04/15