[nongnu] elpa/dirvish 2c6cf4b888: feat(side): add commands for manual width resizing (closes #332)

2025-04-15 Thread ELPA Syncer
branch: elpa/dirvish
commit 2c6cf4b888f52f28878999fa71fe05e36de7b0c3
Author: Nivyan Lakhani 
Commit: GitHub 

feat(side): add commands for manual width resizing (closes #332)

* feat: Add commands to manually resize width.

The dirvish-side window is created with a fixed width 
(\`window-size-fixed\`),
which prevents users from adjusting its size manually using standard
window commands. This can be inconvenient when needing a temporarily
wider or narrower view.

This commit introduces two new interactive commands:
- \`dirvish-side-increase-width\`: Enlarges the side window.
- \`dirvish-side-decrease-width\`: Shrinks the side window.

These commands work by temporarily overriding the \`window-size-fixed\`
property during the resize operation using \`let ((window-size-fixed 
nil))\`.

* Added reference to new functions in docs

* Use prefix arg for resize increment

The `dirvish-side-increase-width` and `dirvish-side-decrease-width`
commands now accept a numeric prefix argument to control the resize
amount. If no prefix argument is given, the value of 1 is used.

-

Co-authored-by: Alex Lu 
---
 docs/EXTENSIONS.org| 16 ++--
 extensions/dirvish-side.el | 27 +--
 2 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/docs/EXTENSIONS.org b/docs/EXTENSIONS.org
index 59ed767dd6..dbd9a9e118 100644
--- a/docs/EXTENSIONS.org
+++ b/docs/EXTENSIONS.org
@@ -181,8 +181,16 @@ To tweak the appearance of the icons, you have these 
options:
 
 * Toggle Dirvish in side window (dirvish-side.el)
 
-This extension provides the ~dirvish-side~ command. It toggles a Dirvish 
session
-as a sidebar in the frame.  These customization options are available:
+This extension provides the ~dirvish-side~ command, which toggles a Dirvish
+sidebar within the current frame.  The width is fixed to prevent the window 
from
+unexpected resizing, but you can adjust it using the 
~dirvish-side-increase-width~
+and ~dirvish-side-decrease-width~ commands.
+
+When ~dirvish-side-follow-mode~ is enabled, the visible side session will 
select
+the current buffer's filename, similar to ~treemacs-follow-mode~ in 
=treemacs=. It
+will also visits the latest ~project-root~ after switching to a new project.
+
+These customization options are available:
 
 + ~dirvish-side-attributes~: like ~dirvish-attributes~, but for side window.
 + ~dirvish-side-mode-line-format~: like ~dirvish-mode-line-format~, but for 
side window.
@@ -193,10 +201,6 @@ as a sidebar in the frame.  These customization options 
are available:
 + ~dirvish-side-open-file-action~: Action to perform before opening a file in 
a side window.
 + ~dirvish-side-auto-expand~: Whether to auto expand parent directories of 
current file.
 
-When ~dirvish-side-follow-mode~ is enabled, the visible side session will 
select
-the current buffer's filename, similar to ~treemacs-follow-mode~ in 
=treemacs=. It
-will also visits the latest ~project-root~ after switching to a new project.
-
 * Setup ls switches on the fly (dirvish-ls.el)
 
 This extension provides commands to changing the ls listing switches like a
diff --git a/extensions/dirvish-side.el b/extensions/dirvish-side.el
index 87c5eb29f8..50c621cacb 100644
--- a/extensions/dirvish-side.el
+++ b/extensions/dirvish-side.el
@@ -77,12 +77,11 @@ filename until the project root when opening a side 
session."
buf (append '((dedicated . t)) dirvish-side-display-alist
 (cl-loop for (key . value) in dirvish-side-window-parameters
  do (set-window-parameter win key value))
-(with-selected-window win
-  (let ((w (max dirvish-side-width window-min-width)) window-size-fixed)
-(cond ((> (window-width) w)
-   (shrink-window-horizontally  (- (window-width) w)))
-  ((< (window-width) w)
-   (enlarge-window-horizontally (- w (window-width)))
+(with-selected-window win ; Set window width to `dirvish-side-width'
+  (let ((w (max dirvish-side-width window-min-width))
+window-size-fixed) ; Temporarily unfix size for initial adjustment
+;; Ignore errors during resizing (eg. already minimum)
+(ignore-errors (enlarge-window-horizontally (- w (window-width))
 (select-window win)))
 
 (defun dirvish-side-open-file (dv find-fn file)
@@ -153,6 +152,22 @@ filename until the project root when opening a side 
session."
  (dirvish-subtree-expand-to bname))
 (t (dired-goto-file bname))
 
+(defun dirvish-side-increase-width (delta)
+  "Increase width of the `dirvish-side' window by DELTA columns.
+Interactively, if no argument is given, DELTA is seen as 1."
+  (interactive "^p")
+  (let ((win (dirvish-side--session-visible-p)))
+(unless win (user-error "No visible dirvish-side window found"))
+(with-selected-window win
+  (let ((window-size-fi

[elpa] externals/doc-view-follow 78f18efb3d: Bump version to 0.3.1

2025-04-15 Thread ELPA Syncer
branch: externals/doc-view-follow
commit 78f18efb3d9769d5df281d71c3ddeb4a956b7c0d
Author: Paul Nelson 
Commit: Paul Nelson 

Bump version to 0.3.1

* doc-view-follow.el: Bump version from 0.3 to 0.3.1.
---
 doc-view-follow.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc-view-follow.el b/doc-view-follow.el
index 08ddf36c3b..9b78cc03ea 100644
--- a/doc-view-follow.el
+++ b/doc-view-follow.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2024-2025  Free Software Foundation, Inc.
 
 ;; Author: Paul D. Nelson 
-;; Version: 0.3
+;; Version: 0.3.1
 ;; URL: https://github.com/ultronozm/doc-view-follow.el
 ;; Package-Requires: ((emacs "29.1"))
 ;; Keywords: convenience



[elpa] externals/hyperbole 29ae2e15a8: Fix hkey-alist vertico test (#700)

2025-04-15 Thread ELPA Syncer
branch: externals/hyperbole
commit 29ae2e15a8da66c296d6cd2fcf121d27f5b0073e
Author: Mats Lidell 
Commit: GitHub 

Fix hkey-alist vertico test (#700)
---
 ChangeLog   |  7 +++
 hui-mouse.el|  4 ++--
 test/hui-mouse-tests.el | 18 --
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a44d873914..085939169b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2025-04-15  Mats Lidell  
+
+* hui-mouse.el (hkey-alist): Cleanup. Remove whitespace.
+
+* test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Defvar
+vertico-mode for bound-and-true-p to see the let value.
+
 2025-04-14  Bob Weiner  
 
 * test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Update with new
diff --git a/hui-mouse.el b/hui-mouse.el
index 49f95df4db..79b9584993 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:04-Feb-89
-;; Last-Mod: 13-Apr-25 at 14:49:05 by Bob Weiner
+;; Last-Mod: 15-Apr-25 at 12:51:50 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -260,7 +260,7 @@ Its default value is `smart-scroll-down'.  To disable it, 
set it to
 ((and (bound-and-true-p vertico-mode)
  ;; Is vertico prompting for an argument?
  (vertico--command-p nil (current-buffer)))
- . ((funcall (lookup-key vertico-map (kbd "M-RET"))) 
+ . ((funcall (lookup-key vertico-map (kbd "M-RET")))
. (funcall (lookup-key vertico-map (kbd "M-RET")
 ;;
 ;; If in the minibuffer and reading a non-menu Hyperbole argument
diff --git a/test/hui-mouse-tests.el b/test/hui-mouse-tests.el
index 358804656a..76334cec8d 100644
--- a/test/hui-mouse-tests.el
+++ b/test/hui-mouse-tests.el
@@ -3,7 +3,7 @@
 ;; Author:   Mats Lidell
 ;;
 ;; Orig-Date:15-Mar-25 at 22:39:37
-;; Last-Mod: 15-Apr-25 at 01:03:12 by Bob Weiner
+;; Last-Mod: 15-Apr-25 at 13:13:21 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -34,16 +34,14 @@
 (should (equal (hkey-actions)
(cons '(smart-dired-sidebar) '(smart-dired-sidebar)
 
-  ;; !! FIXME: In CI/CD tests, the hkey-alist smart-prog-at-tag-p is
-  ;; triggering instead of the vertico clause.  Works interactively
-  ;; but maybe needs more context specification.  Disable for now.
   ;; Vertico
-  ;; (let ((ivy-mode nil)
-  ;;   (vertico-mode t))
-  ;;   (mocklet ((vertico--command-p => t))
-  ;; (should (equal (hkey-actions)
-  ;;(cons '(funcall (lookup-key vertico-map (kbd "M-RET")))
-  ;;  '(funcall (lookup-key vertico-map (kbd 
"M-RET"
+  (defvar vertico-mode)
+  (let ((ivy-mode nil)
+(vertico-mode t))
+(mocklet ((vertico--command-p => t))
+  (should (equal (hkey-actions)
+(cons '(funcall (lookup-key vertico-map (kbd "M-RET")))
+  '(funcall (lookup-key vertico-map (kbd 
"M-RET"
   )
 
 (provide 'hui-mouse-tests)



[nongnu] elpa/idris-mode a797d7763d 4/4: Merge pull request #637 from keram/idris-make-lemma-doc-string

2025-04-15 Thread ELPA Syncer
branch: elpa/idris-mode
commit a797d7763d20f8b3986d6a86ceb18cda00d05084
Merge: 116daac510 248926852d
Author: Jan de Muijnck-Hughes 
Commit: GitHub 

Merge pull request #637 from keram/idris-make-lemma-doc-string

Update `idris-make-lemma` to insert lemma above doc string of current 
function.
---
 idris-commands.el   |  28 +--
 test/idris-commands-test.el | 113 
 2 files changed, 138 insertions(+), 3 deletions(-)

diff --git a/idris-commands.el b/idris-commands.el
index 95975e1aab..f8fd61c8df 100644
--- a/idris-commands.el
+++ b/idris-commands.el
@@ -653,12 +653,33 @@ Otherwise, case split as a pattern variable."
  (re-search-backward (if (idris-lidr-p)
  
"^\\(>\\s-*\\)\\(([^)]+)\\|[a-zA-Z_0-9]+\\)\\s-*:"

"^\\(\\s-*\\)\\(([^)]+)\\|[a-zA-Z_0-9]+\\)\\s-*:"))
- (let ((indentation (match-string 1)) end-point)
+ (let ((indentation (match-string 1))
+   end-point)
(beginning-of-line)
+
+   ;; make sure we are above the documentation string
+   (forward-line -1)
+   (while (and (not (looking-at-p "^\\s-*$"))
+   (not (equal (point) (point-min)))
+   (or (looking-at-p "^|||") (looking-at-p "^--")))
+ (forward-line -1))
+
+   ;; if we reached beginning of file
+   ;; add new line between the type signature and the lemma
+   (if (equal (point) (point-min))
+   (progn
+ (newline 1)
+ (forward-line -1))
+ ;; otherwise find first non empty line
+ (forward-line -1)
+ (when (looking-at-p "^.*\\S-.*$")
+   (forward-line 1)
+   (newline 1)))
+
(insert indentation)
(setq end-point (point))
(insert type-decl)
-   (newline 2)
+   (newline 1)
;; make sure point ends up ready to start a new pattern 
match
(goto-char end-point
   ((equal lemma-type :provisional-definition-lemma)
@@ -669,7 +690,8 @@ Otherwise, case split as a pattern variable."
  (let ((next-defn-point
 (re-search-forward (if (idris-lidr-p)

"^\\(>\\s-*\\)\\(([^)]+)\\|\\w+\\)\\s-*:"
- 
"^\\(\\s-*\\)\\(([^)]+)\\|\\w+\\)\\s-*:") nil t)))
+ 
"^\\(\\s-*\\)\\(([^)]+)\\|\\w+\\)\\s-*:")
+   nil t)))
(if next-defn-point ;; if we found a definition
(let ((indentation (match-string 1)) end-point)
  (goto-char next-defn-point)
diff --git a/test/idris-commands-test.el b/test/idris-commands-test.el
index 4d1f95e49a..e37bb72f13 100644
--- a/test/idris-commands-test.el
+++ b/test/idris-commands-test.el
@@ -313,6 +313,119 @@ myReverse xs = revAcc [] xs where
   (delete-directory mock-directory-name t)
   (idris-quit
 
+(ert-deftest idris-test-idris-make-lemma ()
+  "Test `idris-make-lemma' replacing a hole with a metavariable lemma."
+  (cl-flet ((idris-load-file-sync-stub () nil)
+(idris-eval-stub (&optional &rest args)
+  '((:metavariable-lemma
+ (:replace-metavariable "closeDistance_rhs s1 s2")
+ (:definition-type "closeDistance_rhs : String -> String -> IO 
Bool")
+(advice-add 'idris-load-file-sync :override #'idris-load-file-sync-stub)
+(advice-add 'idris-eval :override #'idris-eval-stub)
+(unwind-protect
+(progn
+  (with-temp-buffer
+(insert "closeDistance : String -> String -> IO Bool
+closeDistance s1 s2 = ?closeDistance_rhs")
+(goto-char (point-min))
+(re-search-forward "closeDistance_rh")
+(funcall-interactively 'idris-make-lemma)
+(should (string= "closeDistance_rhs : String -> String -> IO Bool
+
+closeDistance : String -> String -> IO Bool
+closeDistance s1 s2 = closeDistance_rhs s1 s2"
+ (buffer-substring-no-properties (point-min) 
(point-max)
+
+  (with-temp-buffer
+(insert "something_else
+
+closeDistance : String -> String -> IO Bool
+closeDistance s1 s2 = ?closeDistance_rhs")
+(goto-char (point-min))
+(re-search-forward "closeDistance_rh")
+(funcall-interactively 'idris-make-lemma)
+(should (string= "something_else
+
+closeDistance_rhs : String -> String -> IO Bool
+
+closeDistance : String -> String -> IO Bool

[nongnu] elpa/idris-mode 44d90481a3 1/4: Specify `--` as comment syntax for ipkg mode

2025-04-15 Thread ELPA Syncer
branch: elpa/idris-mode
commit 44d90481a3f869a0b9b4aa25d7365f235d9a9cfa
Author: Marek L 
Commit: Marek L 

Specify `--` as comment syntax for ipkg mode

Why:
To avoid prompt when executing `comment-*` function
in `*.ipkg` file.
```
comment-normalize-vars: No comment syntax defined
```
---
 idris-ipkg-mode.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/idris-ipkg-mode.el b/idris-ipkg-mode.el
index 597341cae0..335bf64028 100644
--- a/idris-ipkg-mode.el
+++ b/idris-ipkg-mode.el
@@ -422,7 +422,8 @@ Invokes `idris-ipkg-mode-hook'."
   (set (make-local-variable 'font-lock-defaults)
idris-ipkg-font-lock-defaults)
   (set (make-local-variable 'completion-at-point-functions)
-   '(idris-ipkg-complete-keyword)))
+   '(idris-ipkg-complete-keyword))
+  (set (make-local-variable 'comment-start) "--"))
 
 ;; Make filenames clickable
 (add-to-list 'compilation-error-regexp-alist-alist



[nongnu] elpa/idris-mode 116daac510 3/4: Merge pull request #635 from keram/ipkg-comment-syntax

2025-04-15 Thread ELPA Syncer
branch: elpa/idris-mode
commit 116daac510bc89e82e966883d7907fa95070df78
Merge: 09de86a8f0 44d90481a3
Author: Jan de Muijnck-Hughes 
Commit: GitHub 

Merge pull request #635 from keram/ipkg-comment-syntax

Specify `--` as comment syntax for ipkg mode
---
 idris-ipkg-mode.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/idris-ipkg-mode.el b/idris-ipkg-mode.el
index 597341cae0..335bf64028 100644
--- a/idris-ipkg-mode.el
+++ b/idris-ipkg-mode.el
@@ -422,7 +422,8 @@ Invokes `idris-ipkg-mode-hook'."
   (set (make-local-variable 'font-lock-defaults)
idris-ipkg-font-lock-defaults)
   (set (make-local-variable 'completion-at-point-functions)
-   '(idris-ipkg-complete-keyword)))
+   '(idris-ipkg-complete-keyword))
+  (set (make-local-variable 'comment-start) "--"))
 
 ;; Make filenames clickable
 (add-to-list 'compilation-error-regexp-alist-alist



[elpa] externals/minuet 1299c0e2bf: feat: chat-input template can be a list of strings.

2025-04-15 Thread ELPA Syncer
branch: externals/minuet
commit 1299c0e2bfaf25d29807feb50ca8df6e85354e3b
Author: Milan Glacier 
Commit: Milan Glacier 

feat: chat-input template can be a list of strings.
---
 minuet.el | 114 --
 prompt.md |   5 +++
 2 files changed, 78 insertions(+), 41 deletions(-)

diff --git a/minuet.el b/minuet.el
index ac393c37b0..5b2db1b224 100644
--- a/minuet.el
+++ b/minuet.el
@@ -603,34 +603,42 @@ Also print the MESSAGE when MESSAGE-P is t."
 
 (defun minuet--make-chat-llm-shot (context options)
   "Build the final chat input for chat llm.
-CONTEXT is read from current buffer content.
-OPTIONS should be the provider options plist."
+The CONTEXT is read from the current buffer content.  OPTIONS should
+be specified as a plist of provider settings.  The return value will a
+list of strings.  It will then be converted into a multi-turn
+conversation with alternating `user` and `assistant` roles by
+`minuet--create-chat-messages-from-list'"
   (let* ((chat-input (copy-tree (plist-get options :chat-input)))
- (template (minuet--eval-value (plist-get chat-input :template)))
- (parts nil))
+ (templates (minuet--eval-value (plist-get chat-input :template)))
+ (templates (if (stringp templates) (list templates) templates))
+ (parts nil)
+ (results nil))
 ;; Remove template from options to avoid infinite recursion
 (setq chat-input (plist-put chat-input :template nil))
 ;; Use cl-loop for better control flow
-(cl-loop with last-pos = 0
- for match = (string-match "{{{\\(.+?\\)}}}" template last-pos)
- until (not match)
- for start-pos = (match-beginning 0)
- for end-pos = (match-end 0)
- for key = (match-string 1 template)
- do
- ;; Add text before placeholder
- (when (> start-pos last-pos)
-   (push (substring template last-pos start-pos) parts))
- ;; Get and add replacement value
- (when-let* ((repl-fn (plist-get chat-input (intern key)))
- (value (funcall repl-fn context)))
-   (push value parts))
- (setq last-pos end-pos)
- finally
- ;; Add remaining text after last match
- (push (substring template last-pos) parts))
-;; Join parts in reverse order
-(apply #'concat (nreverse parts
+(dolist (template templates)
+  (setq parts nil)
+  (cl-loop with last-pos = 0
+   for match = (string-match "{{{\\(.+?\\)}}}" template last-pos)
+   until (not match)
+   for start-pos = (match-beginning 0)
+   for end-pos = (match-end 0)
+   for key = (match-string 1 template)
+   do
+   ;; Add text before placeholder
+   (when (> start-pos last-pos)
+ (push (substring template last-pos start-pos) parts))
+   ;; Get and add replacement value
+   (when-let* ((repl-fn (plist-get chat-input (intern key)))
+   (value (funcall repl-fn context)))
+ (push value parts))
+   (setq last-pos end-pos)
+   finally
+   ;; Add remaining text after last match
+   (push (substring template last-pos) parts))
+  ;; Join parts in reverse order
+  (push (apply #'concat (nreverse parts)) results))
+(nreverse results)))
 
 (defun minuet--make-context-filter-sequence (context len)
   "Create a filtering string based on CONTEXT with maximum length LEN."
@@ -993,6 +1001,19 @@ CONTEXT and CALLBACK will be passed to the base function."
(plist-get it :delta)
(plist-get it :content)))
 
+(defun minuet--create-chat-messages-from-list (str-list)
+  "Convert a list of strings into alternating user/assistant chat messages.
+STR-LIST is a list of strings.  Returns a list of plists with :role
+and :content keys."
+  (let ((result nil)
+(roles '("user" "assistant")))
+(cl-loop for i from 1 to (length str-list)
+ for content in str-list
+ do (push (list :role (nth (mod (1- i) 2) roles)
+:content content)
+  result))
+(nreverse result)))
+
 (defun minuet--openai-complete-base (options context callback)
   "The base function to complete code with openai API.
 OPTIONS are the provider options.  the completion items from json.
@@ -1013,10 +1034,10 @@ to be called when completion items arrive."
   :model ,(plist-get options :model)
   :messages ,(vconcat
   `((:role "system"
- :content ,(minuet--make-system-prompt (plist-get 
options :system)))
-,@(minuet--eval-value (plist-get options :fewshots))
-(:role "user"
- :content ,(minuet--make-chat-llm-shot conte

[elpa] externals/ivy e33b028ed4 1/4: Bump version to point release 0.15.1

2025-04-15 Thread Basil L. Contovounesios
branch: externals/ivy
commit e33b028ed4b1258a211c87fd5fe801bed25de429
Author: Basil L. Contovounesios 
Commit: Basil L. Contovounesios 

Bump version to point release 0.15.1

* doc/ivy.org:
* ivy-avy.el:
* ivy-hydra.el:
* ivy.el:
* swiper.el:
* counsel.el: Bump version to 0.15.1 (#3001).
(counsel-prompt-function-dir, counsel-search-engines-alist): Update
version tags to match.

* doc/ivy.texi: Regenerate docs.
---
 counsel.el   | 8 
 doc/ivy.org  | 2 +-
 doc/ivy.texi | 2 +-
 ivy-avy.el   | 4 ++--
 ivy-hydra.el | 4 ++--
 ivy.el   | 2 +-
 swiper.el| 4 ++--
 7 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/counsel.el b/counsel.el
index 5c5a8d1022..9aa7f1c535 100644
--- a/counsel.el
+++ b/counsel.el
@@ -5,8 +5,8 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
-;; Package-Requires: ((emacs "24.5") (ivy "0.15.0") (swiper "0.15.0"))
+;; Version: 0.15.1
+;; Package-Requires: ((emacs "24.5") (ivy "0.15.1") (swiper "0.15.1"))
 ;; Keywords: convenience, matching, tools
 
 ;; This file is part of GNU Emacs.
@@ -149,7 +149,7 @@ When NOERROR is non-nil, return nil instead of raising an 
error."
 
 (defun counsel-prompt-function-dir ()
   "Return prompt appended with the parent directory."
-  (declare (obsolete "it is no longer used." "0.16.0"))
+  (declare (obsolete "it is no longer used." "0.15.1"))
   (require 'esh-util)
   (let* ((dir (ivy-state-directory ivy-last))
  (parts (nthcdr 3 (funcall (if (fboundp 'eshell-split-filename)
@@ -7111,7 +7111,7 @@ SUGGEST is the URL to query for suggestions.
 BROWSE is the URL prefix for visiting the selected result.
 EXTRACT is a function that takes the object parsed from the SUGGEST
  endpoint and transforms it into a set of Ivy candidates."
-  :package-version '(counsel . "0.16.0")
+  :package-version '(counsel . "0.15.1")
   :type '(alist :key-type symbol :value-type (list string string function)))
 
 (defun counsel--search-request-data-google (data)
diff --git a/doc/ivy.org b/doc/ivy.org
index b0b9d4a418..8a7c0582b0 100644
--- a/doc/ivy.org
+++ b/doc/ivy.org
@@ -58,7 +58,7 @@ ivy-ox.el then ~C-c C-e i t~ in the ivy.org buffer.
 :CUSTOM_ID: copying
 :END:
 #+TEXINFO: @ifnottex
-Ivy manual, version 0.15.0
+Ivy manual, version 0.15.1
 
 Ivy is an interactive interface for completion in Emacs.  Emacs uses
 completion mechanism in a variety of contexts: code, menus, commands,
diff --git a/doc/ivy.texi b/doc/ivy.texi
index 0752d49e81..be3c1e1ed8 100644
--- a/doc/ivy.texi
+++ b/doc/ivy.texi
@@ -8,7 +8,7 @@
 
 @copying
 @ifnottex
-Ivy manual, version 0.15.0
+Ivy manual, version 0.15.1
 
 Ivy is an interactive interface for completion in Emacs.  Emacs uses
 completion mechanism in a variety of contexts: code, menus, commands,
diff --git a/ivy-avy.el b/ivy-avy.el
index 355305f359..9585f015de 100644
--- a/ivy-avy.el
+++ b/ivy-avy.el
@@ -5,8 +5,8 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
-;; Package-Requires: ((emacs "24.5") (ivy "0.15.0") (avy "0.5.0"))
+;; Version: 0.15.1
+;; Package-Requires: ((emacs "24.5") (ivy "0.15.1") (avy "0.5.0"))
 ;; Keywords: convenience
 
 ;; This program is free software; you can redistribute it and/or modify
diff --git a/ivy-hydra.el b/ivy-hydra.el
index db07f5771e..dd58a489fb 100644
--- a/ivy-hydra.el
+++ b/ivy-hydra.el
@@ -5,8 +5,8 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
-;; Package-Requires: ((emacs "24.5") (ivy "0.15.0") (hydra "0.14.0"))
+;; Version: 0.15.1
+;; Package-Requires: ((emacs "24.5") (ivy "0.15.1") (hydra "0.14.0"))
 ;; Keywords: convenience
 
 ;; This file is part of GNU Emacs.
diff --git a/ivy.el b/ivy.el
index 5a221bc395..063c9eee59 100644
--- a/ivy.el
+++ b/ivy.el
@@ -5,7 +5,7 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
+;; Version: 0.15.1
 ;; Package-Requires: ((emacs "24.5"))
 ;; Keywords: matching
 
diff --git a/swiper.el b/swiper.el
index 359e463932..c35180e033 100644
--- a/swiper.el
+++ b/swiper.el
@@ -5,8 +5,8 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
-;; Package-Requires: ((emacs "24.5") (ivy "0.15.0"))
+;; Version: 0.15.1
+;; Package-Requires: ((emacs "24.5") (ivy "0.15.1"))
 ;; Keywords: matching
 
 ;; This file is part of GNU Emacs.



[elpa] externals/ivy acb20ad74f 4/4: Merge branch 'master' into externals/ivy

2025-04-15 Thread Basil L. Contovounesios
branch: externals/ivy
commit acb20ad74f00cb3aa339ff6c4d30ecfef342018b
Merge: d63d52f140 fd8df3b733
Author: Basil L. Contovounesios 
Commit: Basil L. Contovounesios 

Merge branch 'master' into externals/ivy
---
 ivy.el | 36 
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/ivy.el b/ivy.el
index 063c9eee59..cddd64aef8 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3409,25 +3409,29 @@ Otherwise, ~/ will move home."
   :type 'boolean)
 
 (defcustom ivy-dynamic-exhibit-delay-ms 0
-  "Delay in ms before dynamic collections are refreshed"
+  "Delay in milliseconds before dynamic collections are refreshed."
   :type 'integer)
 
-(defvar ivy--exhibit-timer nil)
+(defvar ivy--exhibit-timer nil
+  "Timer for debouncing calls to `ivy--exhibit'.")
+
+(defvar ivy--queue-last-input nil
+  "Value of `ivy--input' from last `post-command-hook'.")
 
 (defun ivy--queue-exhibit ()
-  "Insert Ivy completions display, possibly after a timeout for
-dynamic collections.
+  "Refresh Ivy completions display, with debouncing.
+This is like `ivy--exhibit', but dynamic collections are delayed by
+`ivy-dynamic-exhibit-delay-ms' to avoid issues with rapid refreshes.
 Should be run via minibuffer `post-command-hook'."
-  (if (and (> ivy-dynamic-exhibit-delay-ms 0)
-   (ivy-state-dynamic-collection ivy-last))
-  (progn
-(when ivy--exhibit-timer (cancel-timer ivy--exhibit-timer))
-(setq ivy--exhibit-timer
-  (run-with-timer
-   (/ ivy-dynamic-exhibit-delay-ms 1000.0)
-   nil
-   'ivy--exhibit)))
-(ivy--exhibit)))
+  (if (or (<= ivy-dynamic-exhibit-delay-ms 0)
+  (not (ivy-state-dynamic-collection ivy-last))
+  (equal ivy--queue-last-input
+ (setq ivy--queue-last-input (ivy--input
+  (ivy--exhibit)
+(when ivy--exhibit-timer (cancel-timer ivy--exhibit-timer))
+(setq ivy--exhibit-timer
+  (run-with-timer (/ ivy-dynamic-exhibit-delay-ms 1000.0)
+  nil #'ivy--exhibit
 
 (defalias 'ivy--file-local-name
   (if (fboundp 'file-local-name)
@@ -3455,8 +3459,8 @@ The function was added in Emacs 26.1.")
 
 (defun ivy--exhibit ()
   "Insert Ivy completions display.
-Should be run via minibuffer `post-command-hook'."
-  (when (memq 'ivy--queue-exhibit post-command-hook)
+Should be run in the minibuffer."
+  (when (memq #'ivy--queue-exhibit post-command-hook)
 (let ((inhibit-field-text-motion nil))
   (constrain-to-field nil (point-max)))
 (ivy-set-text (ivy--input))



[elpa] externals/ivy c9cdd2235c 2/4: Only enable dynamic exhibit delay while typing

2025-04-15 Thread Basil L. Contovounesios
branch: externals/ivy
commit c9cdd2235c41a504d1e77af573a0c2b6b0ba681f
Author: Umar Ahmad 
Commit: Basil L. Contovounesios 

Only enable dynamic exhibit delay while typing

* ivy.el (ivy--queue-last-input): New variable holding last input.
(ivy--queue-exhibit): Debounce by only starting timer if ivy--input
has changed (#2941).  Otherwise, even moving to another candidate
with unchanged input incurs a delay.

Fixes #1218.

Copyright-paperwork-exempt: yes
---
 ivy.el | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/ivy.el b/ivy.el
index 063c9eee59..22e8012564 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3412,6 +3412,7 @@ Otherwise, ~/ will move home."
   "Delay in ms before dynamic collections are refreshed"
   :type 'integer)
 
+(defvar ivy--queue-last-input nil)
 (defvar ivy--exhibit-timer nil)
 
 (defun ivy--queue-exhibit ()
@@ -3419,7 +3420,8 @@ Otherwise, ~/ will move home."
 dynamic collections.
 Should be run via minibuffer `post-command-hook'."
   (if (and (> ivy-dynamic-exhibit-delay-ms 0)
-   (ivy-state-dynamic-collection ivy-last))
+   (ivy-state-dynamic-collection ivy-last)
+   (not (equal ivy--queue-last-input (ivy--input
   (progn
 (when ivy--exhibit-timer (cancel-timer ivy--exhibit-timer))
 (setq ivy--exhibit-timer
@@ -3427,7 +3429,8 @@ Should be run via minibuffer `post-command-hook'."
(/ ivy-dynamic-exhibit-delay-ms 1000.0)
nil
'ivy--exhibit)))
-(ivy--exhibit)))
+(ivy--exhibit))
+  (setq ivy--queue-last-input (ivy--input)))
 
 (defalias 'ivy--file-local-name
   (if (fboundp 'file-local-name)



[elpa] externals/ivy updated (d63d52f140 -> acb20ad74f)

2025-04-15 Thread Basil L. Contovounesios
blc pushed a change to branch externals/ivy.

  from  d63d52f140 Bump version to point release 0.15.1
   new  e33b028ed4 Bump version to point release 0.15.1
   new  c9cdd2235c Only enable dynamic exhibit delay while typing
   new  fd8df3b733 Clean up ivy--queue-exhibit
   new  acb20ad74f Merge branch 'master' into externals/ivy


Summary of changes:
 ivy.el | 36 
 1 file changed, 20 insertions(+), 16 deletions(-)



[elpa] externals/ivy fd8df3b733 3/4: Clean up ivy--queue-exhibit

2025-04-15 Thread Basil L. Contovounesios
branch: externals/ivy
commit fd8df3b73348d4b8a1872381bf8642904bf41368
Author: Basil L. Contovounesios 
Commit: Basil L. Contovounesios 

Clean up ivy--queue-exhibit

* ivy.el (ivy-dynamic-exhibit-delay-ms, ivy--exhibit-timer)
(ivy--queue-last-input, ivy--exhibit): Fix docstring.
(ivy--queue-exhibit): Ditto.  Refactor to only compute ivy--input
once (#2941).
---
 ivy.el | 39 ---
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/ivy.el b/ivy.el
index 22e8012564..cddd64aef8 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3409,28 +3409,29 @@ Otherwise, ~/ will move home."
   :type 'boolean)
 
 (defcustom ivy-dynamic-exhibit-delay-ms 0
-  "Delay in ms before dynamic collections are refreshed"
+  "Delay in milliseconds before dynamic collections are refreshed."
   :type 'integer)
 
-(defvar ivy--queue-last-input nil)
-(defvar ivy--exhibit-timer nil)
+(defvar ivy--exhibit-timer nil
+  "Timer for debouncing calls to `ivy--exhibit'.")
+
+(defvar ivy--queue-last-input nil
+  "Value of `ivy--input' from last `post-command-hook'.")
 
 (defun ivy--queue-exhibit ()
-  "Insert Ivy completions display, possibly after a timeout for
-dynamic collections.
+  "Refresh Ivy completions display, with debouncing.
+This is like `ivy--exhibit', but dynamic collections are delayed by
+`ivy-dynamic-exhibit-delay-ms' to avoid issues with rapid refreshes.
 Should be run via minibuffer `post-command-hook'."
-  (if (and (> ivy-dynamic-exhibit-delay-ms 0)
-   (ivy-state-dynamic-collection ivy-last)
-   (not (equal ivy--queue-last-input (ivy--input
-  (progn
-(when ivy--exhibit-timer (cancel-timer ivy--exhibit-timer))
-(setq ivy--exhibit-timer
-  (run-with-timer
-   (/ ivy-dynamic-exhibit-delay-ms 1000.0)
-   nil
-   'ivy--exhibit)))
-(ivy--exhibit))
-  (setq ivy--queue-last-input (ivy--input)))
+  (if (or (<= ivy-dynamic-exhibit-delay-ms 0)
+  (not (ivy-state-dynamic-collection ivy-last))
+  (equal ivy--queue-last-input
+ (setq ivy--queue-last-input (ivy--input
+  (ivy--exhibit)
+(when ivy--exhibit-timer (cancel-timer ivy--exhibit-timer))
+(setq ivy--exhibit-timer
+  (run-with-timer (/ ivy-dynamic-exhibit-delay-ms 1000.0)
+  nil #'ivy--exhibit
 
 (defalias 'ivy--file-local-name
   (if (fboundp 'file-local-name)
@@ -3458,8 +3459,8 @@ The function was added in Emacs 26.1.")
 
 (defun ivy--exhibit ()
   "Insert Ivy completions display.
-Should be run via minibuffer `post-command-hook'."
-  (when (memq 'ivy--queue-exhibit post-command-hook)
+Should be run in the minibuffer."
+  (when (memq #'ivy--queue-exhibit post-command-hook)
 (let ((inhibit-field-text-motion nil))
   (constrain-to-field nil (point-max)))
 (ivy-set-text (ivy--input))



[elpa] externals/org-modern 1d6b8d8589 6/7: Update package headers

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1d6b8d858988c3f08bd2acea3dfc07d5adb10665
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update package headers
---
 org-modern-indent.el | 7 ---
 org-modern.el| 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 63a1cd62dd..823d39b063 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -1,9 +1,10 @@
 ;;; org-modern-indent.el --- Style indented blocks -*- lexical-binding: t -*-
 
-;; Copyright (C) 2022-2025  J.D. Smith
+;; Copyright (C) 2022-2025 Free Software Foundation, Inc.
 
-;; Author: J.D. Smith
-;; Created 2022
+;; Author: J.D. Smith 
+;; Maintainer: J.D. Smith 
+;; Created: 2022
 ;; Keywords: convenience, text
 
 ;; This file is part of GNU Emacs.
diff --git a/org-modern.el b/org-modern.el
index 58e54338a3..ee97114e3c 100644
--- a/org-modern.el
+++ b/org-modern.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2022-2025 Free Software Foundation, Inc.
 
 ;; Author: Daniel Mendler 
-;; Maintainer: Daniel Mendler 
+;; Maintainer: Daniel Mendler , J.D. Smith 

 ;; Created: 2022
 ;; Version: 1.7
 ;; Package-Requires: ((emacs "28.1") (org "9.5") (compat "30"))



[elpa] externals/org-modern 40f32b5b94 7/7: README.org: mention org-modern-block-indent setting in config

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 40f32b5b940b49ed49bf1ab6bb6971af6ea0764f
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

README.org: mention org-modern-block-indent setting in config
---
 README.org | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index dd4fb23fac..45d71005a2 100644
--- a/README.org
+++ b/README.org
@@ -98,6 +98,7 @@ An alternative setup, using ~use-package~ and modifying some 
of the display enti
 #+begin_src emacs-lisp
   (use-package org-modern
 :custom
+(org-modern-block-indent t)  ; to enable org-modern-indent when org-indent 
is active
 (org-modern-hide-stars nil)
 (org-modern-todo-faces
  '(("STARTED" :foreground "yellow")
@@ -224,7 +225,7 @@ table and block styling from =org-modern=. If you are 
interested in further
 tweaks, Emacs comes with the builtin =prettify-symbols-mode= which can be used 
for
 individual styling of custom keywords.
 
-Alternatives are the older 
[[https://github.com/integral-dw/org-superstar-mode][=org-superstar=]] and 
[[https://github.com/sabof/org-bullets][=org-bullets=]] packages, which are
+Alternatives are the older 
[[https://github.com/integral-dw/org-superstar-mode][org-superstar]] and 
[[https://github.com/sabof/org-bullets][org-bullets]] packages, which are
 more limited and mainly adjust headlines and lists. =org-superstar= relies on
 character composition, while =org-modern= uses text properties, which are
 considered more future-proof. Note that =org-modern= is a full replacement for



[elpa] externals/org-modern a4fe741366 3/7: Reformat changelog

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit a4fe741366d71791b2a60f34c6ac7905b4a67b57
Author: Daniel Mendler 
Commit: Daniel Mendler 

Reformat changelog
---
 CHANGELOG.org | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index c25a84ba62..f6da1618e0 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -4,8 +4,8 @@
 
 * Development
 
-- Merged [[https://github.com/jdtsmith/org-modern-indent][org-modern-indent]] 
as a new extension.
-- Automatically provide code block bracket styling when ~org-indent~ is 
enabled using ~org-modern-indent-mode~.
+- Merged [[https://github.com/jdtsmith/org-modern-indent][org-modern-indent]] 
as a new extension: Provides code block bracket
+  styling when ~org-indent-mode~ is enabled.
 - Add ~org-modern-habit~ face to improve habit progress fontification.
 
 * Version 1.7 (2025-03-11)



[elpa] externals/org-modern updated (8cad2c3d83 -> 40f32b5b94)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/org-modern.

  from  8cad2c3d83 Merge pull request #281 from minad/org-modern-indent
   new  72ff0b6dcd Rename variable to org-modern-block-indent to be more in 
line with the others
   new  30e08a438f Disable org-modern-block-indent by default
   new  a4fe741366 Reformat changelog
   new  fab253ab5e Update commentary
   new  526ba66889 Reorganize and reformat README
   new  1d6b8d8589 Update package headers
   new  40f32b5b94 README.org: mention org-modern-block-indent setting in 
config


Summary of changes:
 CHANGELOG.org|   4 +-
 README.org   |  90 ++--
 org-modern-indent.el | 292 +--
 org-modern.el|  16 +--
 4 files changed, 213 insertions(+), 189 deletions(-)



[elpa] externals/org-modern 526ba66889 5/7: Reorganize and reformat README

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 526ba6688939ede0a0f5497e8115978abe2d4727
Author: Daniel Mendler 
Commit: Daniel Mendler 

Reorganize and reformat README
---
 README.org | 75 --
 1 file changed, 49 insertions(+), 26 deletions(-)

diff --git a/README.org b/README.org
index 7be2112115..dd4fb23fac 100644
--- a/README.org
+++ b/README.org
@@ -33,16 +33,6 @@ recommend variants of the 
[[https://github.com/be5invis/Iosevka][Iosevka]] font,
 the Org buffer. Larger values of =line-spacing= are not recommended, since 
Emacs
 does not center the text vertically (see Emacs 
[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76390][bug#76390]]).
 
-* Indent
-
-Since version 2.0, this package also incorporates ~org-modern-indent~, which 
provides block bracket styling when ~org-indent~ is enabled, including support 
for "bulk-indented" blocks nested within plain lists:
-
-#+html: https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
-
-~org-modern-indent~ is enabled by ~org-modern~ by default if you use 
~org-indent~; configure ~org-modern-block-indent=nil~ to disable this behavior. 
To activate ~org-indent-mode~ in all org files, set ~org-startup-indented=t~.
-
-*Note*: Non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.
-
 * Configuration
 
 The package is available on GNU ELPA and MELPA. You can install the package 
with
@@ -131,23 +121,38 @@ An alternative setup, using ~use-package~ and modifying 
some of the display enti
 #+end_src
 
 
-* Incompatibilities
+* Block indentation
 
-- =org-num-mode= interferes with the =org-modern= prettification of TODO 
keywords.
-- =visual-wrap-prefix-mode= relies on the =wrap-prefix= text property which is 
also
-  used by =org-modern=.
+Since version 2.0, this package also incorporates ~org-modern-indent~, which
+provides block bracket styling when ~org-indent-mode~ is enabled, including
+support for "bulk-indented" blocks nested within plain lists:
+
+#+html: https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
 
-* Block Indentation Hints
+~org-modern-indent~ is disabled by ~org-modern~ by default. Configure
+~org-modern-block-indent=t~ to enable. To activate ~org-indent-mode~ in all org
+files, set ~org-startup-indented=t~.
 
-A few hints for managing indented blocks.
+*Note*: Currently =org-modern-indent= still requires zero ~line-spacing~, as 
it leads
+to gaps in the vertical bars drawn to indicate blocks, but hopefully this can 
be
+improved in the future.
 
 ** Bulk-indented blocks (e.g. within plain lists):
 
-Bulk-indented blocks have "real" (space/tab) indentation applied and managed 
by org.  This extra indentation is applied by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
~#+begin~ at the same level as the list element's text.
+Bulk-indented blocks have "real" (space/tab) indentation applied and managed by
+org. This extra indentation is applied by org on _top_ of the (fake, 
prefix-based)
+indentation used by org-indent. To nest blocks properly within such indented
+content, e.g. in plain list items, you only have to begin the ~#+begin~ at the
+same level as the list element's text.
 
-As an important principle, ~org-modern-indent~ does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
+As an important principle, ~org-modern-indent~ does not alter the contents of 
the
+text in your org documents, not even indentation. It just styles what is there.
+To help achieve proper block bulk-indented alignment, here are a few ways to
+alter blocks indentation using org and other commands:
 
-- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit =C-c C,= to create the desired block.  It will 
be indented at the right level:
+- **Start things right**: Hit return after your last line of text (e.g in a 
list
+  item), then immediately hit =C-c C,= to create the desired block. It will be
+  indented at the right level:
 
   #+begin_src org
  - This list item contains a:
@@ -155,9 +160,13 @@ As an important principle, ~org-modern-indent~ does not 
alter the contents of th
  [C-c C-,] here
   #+end_src
 
-- *Move flush left*: Note: =M-{= will get you to the start of a block quickly. 
 =M-\= at block start will move the block's first header line to column 0.  
Then =M-S-left= (or =right=) will indent the full block.
-- *Indent rigidly*: =M-h= selects the entire block. Then =C-x TAB= enters 
"rigid indent" mode, after which left/right moves the entire block.
-- *Re-indent a bloc

[nongnu] elpa/gptel updated (8329ee709e -> 5374c18760)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch elpa/gptel.

  from  8329ee709e gptel-gemini: Add support for Gemini 2.5 Pro Preview 
(#781)
   new  f30f117400 gptel: Add support for GPT 4.1 models
   new  5374c18760 gptel: Remove deprecated OpenAI models


Summary of changes:
 NEWS | 14 +++
 gptel.el | 87 ++--
 2 files changed, 49 insertions(+), 52 deletions(-)



[nongnu] elpa/gptel 5374c18760 2/2: gptel: Remove deprecated OpenAI models

2025-04-15 Thread ELPA Syncer
branch: elpa/gptel
commit 5374c18760ce217c3e8aecbd2e353a5d9b686155
Author: Karthik Chikmagalur 
Commit: Karthik Chikmagalur 

gptel: Remove deprecated OpenAI models

* gptel.el (gptel--openai-models): Remove gpt-4-turbo-preview,
gpt-4-32k, gpt-4-0125-preview, gpt-4-1106-preview and o1-preview
from the default ChatGPT backend model list.  These models are
deprecated by OpenAI, which suggests using the newer models
gpt-4o, gpt-4-turbo or o1 in their place.

* NEWS (Breaking changes):  Mention breaking changes.
---
 NEWS | 12 
 gptel.el | 67 +---
 2 files changed, 25 insertions(+), 54 deletions(-)

diff --git a/NEWS b/NEWS
index 5957ebc48f..ffdd71a8c8 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,18 @@
 - ~gptel-org-branching-context~ is now a global variable.  It was
   buffer-local by default in past releases.
 
+- The following models have been removed from the default ChatGPT backend:
+  - ~o1-preview~: use ~o1~ instead.
+  - ~gpt-4-turbo-preview~: use ~gpt-4o~ or ~gpt-4-turbo~ instead.
+  - ~gpt-4-32k~, ~gpt-4-0125-preview~ and ~gpt-4-1106-preview~: use
+~gpt-4o~ or ~gpt-4~ instead.
+  Alternatively, you can add these models back to the backend in your
+  personal configuration:
+  #+begin_src emacs-lisp
+  (push 'gpt-4-turbo-preview
+(gptel-backend-models (gptel-get-backend "ChatGPT")))
+  #+end_src
+
 ** New models and backends
 
 - Add support for ~gemini-2.5-pro-exp-03-25~.
diff --git a/gptel.el b/gptel.el
index 66da8a2151..ffc9eaa154 100644
--- a/gptel.el
+++ b/gptel.el
@@ -546,14 +546,21 @@ the same as t."
  :input-cost 2.0
  :output-cost 8.0
  :cutoff-date "2024-05")
+(gpt-4.5-preview
+ :description "DEPRECATED: Use gpt-4.1 instead"
+ :capabilities (media tool-use url)
+ :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
+ :context-window 128
+ :input-cost 75
+ :output-cost 150
+ :cutoff-date "2023-10")
 (gpt-4.1-mini
  :description "Balance between intelligence, speed and cost"
  :capabilities (media tool-use json url)
  :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
  :context-window 1024
  :input-cost 0.4
- :output-cost 1.6
- :cutoff-date "2024-05")
+ :output-cost 1.6)
 (gpt-4.1-nano
  :description "Fastest, most cost-effective GPT-4.1 model"
  :capabilities (media tool-use json url)
@@ -569,40 +576,15 @@ the same as t."
  :context-window 128
  :input-cost 10
  :output-cost 30
- :cutoff-date "2023-12")
-;; points to gpt-4-0613
+ :cutoff-date "2023-11")
 (gpt-4
  :description "GPT-4 snapshot from June 2023 with improved function 
calling support"
  :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
- :capabilities (media tool-use url)
+ :capabilities (media url)
  :context-window 8.192
  :input-cost 30
  :output-cost 60
- :cutoff-date "2023-09")
-(gpt-4-turbo-preview
- :description "Points to gpt-4-0125-preview"
- :capabilities (media tool-use url)
- :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
- :context-window 128
- :input-cost 10
- :output-cost 30
- :cutoff-date "2023-12")
-(gpt-4-0125-preview
- :description "GPT-4 Turbo preview model intended to reduce cases of 
“laziness”"
- :capabilities (media tool-use url)
- :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
- :context-window 128
- :input-cost 10
- :output-cost 30
- :cutoff-date "2023-12")
-(gpt-4.5-preview
- :description "Largest and most capable GPT model to date"
- :capabilities (media tool-use url)
- :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
- :context-window 128
- :input-cost 75
- :output-cost 150
- :cutoff-date "2023-10")
+ :cutoff-date "2023-11")
 (o1
  :description "Reasoning model designed to solve hard problems across 
domains"
  :capabilities (media reasoning)
@@ -610,18 +592,7 @@ the same as t."
  :context-window 200
  :input-cost 15
  :output-cost 60
- :cutoff-date "2023-10"
- :request-params (:stream :json-false))
-(o1-preview
- :description "DEPRECATED: PLEASE USE o1"
- :capabilities (nosystem media)
- :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
- :context-window 128
- :input-cost 15
- :output-cost 60
- :cutoff-date "2023-10"
- :capabilities (nosystem reasoning)
- :request-params (:stream :json-false))
+ :cutoff-date "2023-10")
 (o1-mini
  :description "Faster and cheaper reasoning model good at coding, math, 
and science"
  :context-window 128
@@ -638,18 +609,6 @@ the same as t."
  :cutoff-date "2023-10"
  :capabilities (reasoning)
  :request-params (:stream :json-false))
-;; limited information available
-(gpt-4-32k
- :capabilities (

[elpa] externals/org-modern 30e08a438f 2/7: Disable org-modern-block-indent by default

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 30e08a438f2560e0df9d37f09f782899b3cd9ac4
Author: Daniel Mendler 
Commit: Daniel Mendler 

Disable org-modern-block-indent by default
---
 org-modern.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-modern.el b/org-modern.el
index 584a279df2..8dafd2fe0c 100644
--- a/org-modern.el
+++ b/org-modern.el
@@ -225,7 +225,7 @@ which specifies the offset of the block border from the 
edge of
 the window."
   :type '(choice boolean natnum))
 
-(defcustom org-modern-block-indent t
+(defcustom org-modern-block-indent nil
   "Whether to style indented blocks when using `org-indent-mode'.
 See `org-modern-indent-mode'."
   :type 'boolean)



[elpa] externals/org-modern fab253ab5e 4/7: Update commentary

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit fab253ab5e4e090d523463c228d1126c20daf2fa
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update commentary
---
 org-modern.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-modern.el b/org-modern.el
index 8dafd2fe0c..58e54338a3 100644
--- a/org-modern.el
+++ b/org-modern.el
@@ -29,7 +29,7 @@
 
 ;; This package adds some styling to your Org buffer, which gives it a
 ;; modern look.  Enable the styling by default with:
-;;   (add-hook 'org-mode-hook 'org-modern-mode)
+;;   (global-org-modern-mode)
 
 ;;; Code:
 



[elpa] elpa-admin 24cf7fa093: (elpaa-batch-generate-autoloads): Add lexbind cookie

2025-04-15 Thread Stefan Monnier via
branch: elpa-admin
commit 24cf7fa09360b5a81694750573d2f5f7d60e43f5
Author: Stefan Monnier 
Commit: Stefan Monnier 

(elpaa-batch-generate-autoloads): Add lexbind cookie
---
 elpa-admin.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/elpa-admin.el b/elpa-admin.el
index a696753960..7e6db3fbf3 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -3182,7 +3182,8 @@ relative to elpa root."
   (package-generate-autoloads pkgname dir))
   (package-generate-autoloads pkgname (concat dir lisp-dir))
   (write-region
-   (format "(load (concat (file-name-directory load-file-name) %S) nil 
'nomsg)\n"
+   (format ";; -*- lexical-binding:t -*-
+(load (concat (file-name-directory load-file-name) %S) nil 'nomsg)\n"
(format "%s/%s-autoloads.el" lisp-dir pkgname ))
nil alf nil 'silent
 



[nongnu] elpa/flycheck updated (b9db1379dc -> 6968280d16)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch elpa/flycheck.

  from  b9db1379dc Bump the copyright years
   new  348a42d65d ci: Test Emacs 30.1
   new  6968280d16 Update 
flycheck-add-overlay/right-position-in-narrowed-buffer output


Summary of changes:
 .github/workflows/test.yml | 3 ++-
 test/flycheck-test.el  | 5 -
 2 files changed, 6 insertions(+), 2 deletions(-)



[elpa] externals/llm 7802efbe06: Return all embeddings in llm-batch-embedding-async (#185)

2025-04-15 Thread ELPA Syncer
branch: externals/llm
commit 7802efbe06c4674c773b547f8a71530deb27d6a0
Author: Andrew Hyatt 
Commit: GitHub 

Return all embeddings in llm-batch-embedding-async (#185)

This should fix https://github.com/ahyatt/llm/issues/184.
---
 NEWS.org  | 1 +
 llm-provider-utils.el | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index beab8d54a4..0f3b7cd859 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,6 +1,7 @@
 * Version 0.25.0
 - Add =llm-ollama-authed= provider, which is like Ollama but takes a key.
 - Set Gemini 2.5 Pro to be the default Gemini model
+- Fix =llm-batch-embeddings-async= so it returns all embeddings
 * Version 0.24.2
 - Fix issue with some Open AI compatible providers needing models to be passed 
by giving a non-nil default.
 - Add Gemini 2.5 Pro
diff --git a/llm-provider-utils.el b/llm-provider-utils.el
index c75c2e22ac..6fc1e113e5 100644
--- a/llm-provider-utils.el
+++ b/llm-provider-utils.el
@@ -300,7 +300,7 @@ return a list of `llm-chat-prompt-tool-use' structs.")
 err-msg)
  (llm-provider-utils-callback-in-buffer
   buf vector-callback
-  (llm-provider-embedding-extract-result provider data
+  (llm-provider-batch-embeddings-extract-result provider 
data
  :on-error (lambda (_ data)
  (llm-provider-utils-callback-in-buffer
   buf error-callback 'error



[elpa] externals/org-modern 72ff0b6dcd 1/7: Rename variable to org-modern-block-indent to be more in line with the others

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 72ff0b6dcd2efcf424dc5c6936bed959eacc7015
Author: Daniel Mendler 
Commit: Daniel Mendler 

Rename variable to org-modern-block-indent to be more in line with the 
others
---
 README.org   |  20 ++--
 org-modern-indent.el | 285 +--
 org-modern.el|  12 +--
 3 files changed, 158 insertions(+), 159 deletions(-)

diff --git a/README.org b/README.org
index 1c87a05c18..7be2112115 100644
--- a/README.org
+++ b/README.org
@@ -39,9 +39,9 @@ Since version 2.0, this package also incorporates 
~org-modern-indent~, which pro
 
 #+html: https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
 
-~org-modern-indent~ is enabled by ~org-modern~ by default if you use 
~org-indent~; configure ~org-modern-indent-block=nil~ to disable this behavior. 
To activate ~org-indent-mode~ in all org files, set ~org-startup-indented=t~.  
+~org-modern-indent~ is enabled by ~org-modern~ by default if you use 
~org-indent~; configure ~org-modern-block-indent=nil~ to disable this behavior. 
To activate ~org-indent-mode~ in all org files, set ~org-startup-indented=t~.
 
-*Note*: Non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.  
+*Note*: Non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.
 
 * Configuration
 
@@ -148,27 +148,27 @@ Bulk-indented blocks have "real" (space/tab) indentation 
applied and managed by
 As an important principle, ~org-modern-indent~ does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
 
 - **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit =C-c C,= to create the desired block.  It will 
be indented at the right level:
-  
+
   #+begin_src org
  - This list item contains a:
- sublist, which holds a block:
  [C-c C-,] here
   #+end_src
-   
+
 - *Move flush left*: Note: =M-{= will get you to the start of a block quickly. 
 =M-\= at block start will move the block's first header line to column 0.  
Then =M-S-left= (or =right=) will indent the full block.
 - *Indent rigidly*: =M-h= selects the entire block. Then =C-x TAB= enters 
"rigid indent" mode, after which left/right moves the entire block.
 - *Re-indent a block*: If you have a block that is partially aligned, perhaps 
with a "hanging end", like so:
-  
+
   #+begin_src org
-   
+
- List 1
- List 2
  ,#+begin_src lang
 foo_lang(x)
  ,#+end_src
   #+end_src
-   
-  you can simply use =M-S-left/right= at block start (or in fact anywhere on 
the block header/footer) to ~org-indent-block~.  Note that 
~org-src-preserve-indentation=nil~ is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from ~org-indent-region~): 
+
+  you can simply use =M-S-left/right= at block start (or in fact anywhere on 
the block header/footer) to ~org-indent-block~.  Note that 
~org-src-preserve-indentation=nil~ is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from ~org-indent-region~):
 
   #+begin_quote
   The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
@@ -176,13 +176,13 @@ As an important principle, ~org-modern-indent~ does not 
alter the contents of th
 
 ** Font spacing and faces
 
-The default ~fixed-pitch~ font (from which ~org-meta-line~ inherits) has line 
spacing >1.0 on some systems. This will introduce gaps _even if your default 
font is changed_, and ~line-space~ is nil.  To correct it, add: 
+The default ~fixed-pitch~ font (from which ~org-meta-line~ inherits) has line 
spacing >1.0 on some systems. This will introduce gaps _even if your default 
font is changed_, and ~line-space~ is nil.  To correct it, add:
 
 #+begin_src emacs-lisp
 (set-face-attribute 'fixed-pitch nil :family "Hack" :height 1.0) ; or whatever 
font family
 #+end_src
 
-*** The bracket style 
+*** The bracket style
 
 If you'd like a different face than ~org-meta-line~ for the "bracket", 
configure the ~org-modern-indent-bracket-line~ face.
 
diff --git a/org-modern-indent.el b/org-modern-indent.el
index 0f70513852..63a1cd62dd 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -77,30 +77,30 @@ face), and EXTRA-INDENT (unstyled).  See 
`org-modern-indent--prefix' for
 the contents."
   (unless (and (= org-indent 0) (= extra-indent 0))
 (let* ((key (+ org-indent (* 1000 extra-indent)))
-  (cached 

[nongnu] elpa/gptel f30f117400 1/2: gptel: Add support for GPT 4.1 models

2025-04-15 Thread ELPA Syncer
branch: elpa/gptel
commit f30f117400b9a7396081e738f54fd18a452d970d
Author: Karthik Chikmagalur 
Commit: Karthik Chikmagalur 

gptel: Add support for GPT 4.1 models

* gptel.el (gptel--openai-models): Add support for OpenAI models
gpt-4.1, gpt-4.1-mini and gpt-4.1-nano.

* NEWS (New models and backends): Mention new models.
---
 NEWS |  2 ++
 gptel.el | 24 
 2 files changed, 26 insertions(+)

diff --git a/NEWS b/NEWS
index 0576bbf1b7..5957ebc48f 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@
 
 - Add support for ~gemini-2.5-pro-exp-03-25~.
 
+- Add support for ~gpt-4.1~, ~gpt-4.1-mini~ and ~gpt-4.1-nano~.
+
 ** New features and UI changes
 
 - The new option ~gptel-curl-extra-args~ can be used to specify extra
diff --git a/gptel.el b/gptel.el
index c0d1635068..66da8a2151 100644
--- a/gptel.el
+++ b/gptel.el
@@ -538,6 +538,30 @@ the same as t."
  :input-cost 0.15
  :output-cost 0.60
  :cutoff-date "2023-10")
+(gpt-4.1
+ :description "Flagship model for complex tasks"
+ :capabilities (media tool-use json url)
+ :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
+ :context-window 1024
+ :input-cost 2.0
+ :output-cost 8.0
+ :cutoff-date "2024-05")
+(gpt-4.1-mini
+ :description "Balance between intelligence, speed and cost"
+ :capabilities (media tool-use json url)
+ :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
+ :context-window 1024
+ :input-cost 0.4
+ :output-cost 1.6
+ :cutoff-date "2024-05")
+(gpt-4.1-nano
+ :description "Fastest, most cost-effective GPT-4.1 model"
+ :capabilities (media tool-use json url)
+ :mime-types ("image/jpeg" "image/png" "image/gif" "image/webp")
+ :context-window 1024
+ :input-cost 0.10
+ :output-cost 0.40
+ :cutoff-date "2024-05")
 (gpt-4-turbo
  :description "Previous high-intelligence model"
  :capabilities (media tool-use url)



[nongnu] elpa/flycheck 348a42d65d 1/2: ci: Test Emacs 30.1

2025-04-15 Thread ELPA Syncer
branch: elpa/flycheck
commit 348a42d65d0b2f2369ef92ce197eca793a42950c
Author: Jen-Chieh Shen 
Commit: Bozhidar Batsov 

ci: Test Emacs 30.1
---
 .github/workflows/test.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 304c28d21b..f8d01da893 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -22,7 +22,8 @@ jobs:
 emacs-version:
   - 27.2
   - 28.2
-  - 29.3
+  - 29.4
+  - 30.1
 experimental: [false]
 include:
   - os: ubuntu-latest



[elpa] externals/modus-themes updated (cfe8702f56 -> 2569f4a596)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/modus-themes.

  from  cfe8702f56 Tweak value of yellow-cooler in modus-operandi-tinted
   new  3d7e9d6213 Refine 'yellow-cooler' and 'yellow-faint' in 
modus-operandi-tinted
   new  63af2adfed Refine 'green-warmer' in modus-operandi-tinted
   new  063ae646f0 Refine 'green-warmer' in modus-vivendi-tinted
   new  9966f9fd60 Tweak the mail mappings in the tinted variants
   new  2569f4a596 Use blue-cooler for weekends in 
modus-operandi-deuteranopia


Summary of changes:
 modus-operandi-deuteranopia-theme.el |  2 +-
 modus-operandi-tinted-theme.el   | 18 +-
 modus-vivendi-tinted-theme.el| 12 ++--
 3 files changed, 16 insertions(+), 16 deletions(-)



[elpa] externals/hyperbole 35efe9357f 4/4: Merge pull request #699 from rswgnu/rsw

2025-04-15 Thread ELPA Syncer
branch: externals/hyperbole
commit 35efe9357fd8a80ac6f9b175b24434b74dd5d516
Merge: 20468a6269 f91b6afe1d
Author: Robert Weiner 
Commit: GitHub 

Merge pull request #699 from rswgnu/rsw

hmouse-drv.el - Improve ibtype pred error handling when move point
---
 ChangeLog   | 16 ++
 hbut.el | 21 +++--
 hmouse-drv.el   | 78 +++--
 hui.el  |  5 ++--
 test/hui-mouse-tests.el | 58 
 5 files changed, 136 insertions(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 479762bb6b..a44d873914 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2025-04-14  Bob Weiner  
+
+* test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Update with new
+vertico hkey-actions.
+
+* hui.el (hui:hbut-operate): Add an unwind-protect to code that restores
+point in cases where calling the `operation' triggers an error.  Fixes
+improper point movement in hywiki-display-page with a #section ref
+where the section is not found and an error is raised.
+
+* hbut.el (ibut:create):
+  hmouse-drv.el (hkey-execute, hkey-actions, hkey-help): Change so point
+moved error is thrown for any ibtype predicate tested, not just the
+one selected; this will simplify tracking down bad ibtypes.  Also
+ensure pred-point marker is always set to nil after use.
+
 2025-04-13  Bob Weiner  
 
 * test/hsys-org-tests.el (hsys-org--meta-return-on-end-of-line): Add
diff --git a/hbut.el b/hbut.el
index c314e023c5..b17c051acd 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:18-Sep-91 at 02:57:09
-;; Last-Mod: 13-Apr-25 at 14:34:35 by Bob Weiner
+;; Last-Mod: 14-Apr-25 at 23:07:21 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -2021,22 +2021,23 @@ If a new button is created, store its attributes in the 
symbol,
 ;; Move to text of ibut before trying to activate 
it
 ;; (may be on name)
 (goto-char (+ (or text-start (point)) 2
-(setq ibtype-point (point))
+(setq ibtype-point (point-marker))
 (while (and (not is-type) types)
   (setq itype (car types))
+  ;; Any implicit button type check should leave point
+  ;; unchanged.  Trigger an error if not.
+  (unless (equal (point-marker) ibtype-point)
+(hypb:error "(Hyperbole): ibtype %s improperly 
moved point from %s to %s"
+itype opoint (point)))
   (when (condition-case err
 (and itype (setq args (funcall itype)))
   (error (progn (message "%S: %S" itype err)
 (switch-to-buffer "*Messages*")
 ;; Show full stack trace
 (debug
-(setq is-type itype)
-;; Any implicit button type check should leave 
point
-;; unchanged.  Trigger an error if not.
-(unless (equal (point) ibtype-point)
-  (hypb:error "(Hyperbole): `%s' at-p test 
improperly moved point from %s to %s"
-  is-type opoint (point-marker
+(setq is-type itype))
   (setq types (cdr types
+   (set-marker ibtype-point nil)
(goto-char opoint)))
(set-marker opoint nil))
 
@@ -3037,9 +3038,7 @@ type for ibtype is presently undefined."
   (at-func-symbols (flatten-tree at-func)))
   (progn (unless (or (member 'ibut:label-set at-func-symbols)
 (member 'hsys-org-set-ibut-label at-func-symbols))
-  (error "(defib): %s `at-p' argument must include a call to 
`ibut:label-set'" type))
-;; (unless (member 'hact at-func-symbols)
-;;   (error "(defib): %s `at-p' argument must include a call to 
`hact'" type))
+  (error "(defib): `at-p' argument for %s must include a call to 
`ibut:label-set'" type))
 `(progn (symtable:add ',type symtable:ibtypes)
 (htype:create ,type ibtypes ,doc nil ,at-func
   '(to-p ,to-func style ,style)))
diff --git a/hmouse-drv.el b/hmouse-drv.el
index c2ea344f78..6a418b3426 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:04-Feb-90
-;; Last-Mod: 12-Apr-25 at 15:47:32 by Bob Weiner
+;; Last-Mod: 14-Apr-25 at 22:57:56 by Bob Weiner
 

[elpa] externals/vertico 000a415630: Improve lazy highlighting for quoted candidates (bug#77754)

2025-04-15 Thread ELPA Syncer
branch: externals/vertico
commit 000a415630c4be0fb6be5c5a8fc31b6caaa7a76e
Author: Daniel Mendler 
Commit: Daniel Mendler 

Improve lazy highlighting for quoted candidates (bug#77754)
---
 extensions/vertico-flat.el |  2 +-
 extensions/vertico-grid.el |  2 +-
 vertico.el | 19 +--
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/extensions/vertico-flat.el b/extensions/vertico-flat.el
index a3c95a19ec..8242525644 100644
--- a/extensions/vertico-flat.el
+++ b/extensions/vertico-flat.el
@@ -114,7 +114,7 @@
 (while (and candidates (not (eq wrapped (car candidates)))
 (> width 0) (> count 0))
   (let ((cand (pop candidates)) (prefix "") (suffix ""))
-(setq cand (funcall vertico--hilit (substring cand)))
+(setq cand (vertico--hilit cand))
 (pcase (and vertico-flat-annotate (vertico--affixate (list cand)))
   (`((,c ,p ,s)) (setq cand c prefix p suffix s)))
 (when (string-search "\n" cand)
diff --git a/extensions/vertico-grid.el b/extensions/vertico-grid.el
index b8e532c54a..9403a7261a 100644
--- a/extensions/vertico-grid.el
+++ b/extensions/vertico-grid.el
@@ -131,7 +131,7 @@ When scrolling beyond this limit, candidates may be 
truncated."
  (width (- (/ (vertico--window-width) vertico-grid--columns) sep))
  (cands (funcall (if (> vertico-grid-annotate 0) #'vertico--affixate 
#'identity)
  (cl-loop repeat count for c in (nthcdr start 
vertico--candidates)
-  collect (funcall vertico--hilit (substring 
c)
+  collect (vertico--hilit c
  (cands (cl-loop
  for cand in cands for index from 0 collect
  (let (prefix suffix)
diff --git a/vertico.el b/vertico.el
index 8655774479..a69baba4bd 100644
--- a/vertico.el
+++ b/vertico.el
@@ -306,6 +306,12 @@ The value should lie between 0 and vertico-count/2."
   (test-completion content table 
pred)))
  -1 0))
 
+(defun vertico--hilit (cand)
+  "Highlight CAND string with lazy highlighting."
+  ;; bug#77754: Highlight unquoted string.
+  (funcall vertico--hilit (substring (or (get-text-property
+  0 'completion--unquoted cand) 
cand
+
 (defun vertico--cycle (list n)
   "Rotate LIST to position N."
   (nconc (copy-sequence (nthcdr n list)) (seq-take list n)))
@@ -419,11 +425,12 @@ The value should lie between 0 and vertico-count/2."
 
 (defun vertico--format-group-title (title cand)
   "Format group TITLE given the current CAND."
+  ;; Copy candidate highlighting if title is a prefix of the candidate.
   (when (string-prefix-p title cand)
-;; Highlight title if title is a prefix of the candidate
-(setq cand (propertize cand 'face 'vertico-group-title)
-  title (substring (funcall vertico--hilit cand) 0 (length title)))
+(setq title (substring cand 0 (length title)))
 (vertico--remove-face 0 (length title) 'completions-first-difference 
title))
+  (setq title (substring title))
+  (add-face-text-property 0 (length title) 'vertico-group-title t title)
   (format (concat vertico-group-format "\n") title))
 
 (defun vertico--format-count ()
@@ -474,7 +481,7 @@ The value should lie between 0 and vertico-count/2."
 
 (defun vertico--candidate (&optional hl)
   "Return current candidate string with optional highlighting if HL is 
non-nil."
-  (let ((content (substring (or (car-safe vertico--input) 
(minibuffer-contents-no-properties)
+  (let ((content (or (car-safe vertico--input) 
(minibuffer-contents-no-properties
 (cond
  ((>= vertico--index 0)
   (let ((cand (substring (nth vertico--index vertico--candidates
@@ -482,7 +489,7 @@ The value should lie between 0 and vertico-count/2."
 ;; `completion--twq-all' hack.  This should better be fixed in Emacs
 ;; itself, the corresponding code is already marked as fixme.
 (vertico--remove-face 0 (length cand) 'completions-common-part cand)
-(concat vertico--base (if hl (funcall vertico--hilit cand) cand
+(concat vertico--base (if hl (vertico--hilit cand) cand
  ((and (equal content "") (or (car-safe minibuffer-default) 
minibuffer-default)))
  (t content
 
@@ -513,7 +520,7 @@ The value should lie between 0 and vertico-count/2."
(candidates
 (vertico--affixate
  (cl-loop repeat vertico-count for c in (nthcdr index 
vertico--candidates)
-  collect (funcall vertico--hilit (substring c))
+  collect (vertico--hilit c)
   (pcase-dolist ((and cand `(,str . ,_)) candidates)
 (when-let ((new-title (and group-fun (funcall group-fun str nil
   (unless (equal title new-title)



[elpa] externals/org-modern d78edc6be4 059/105: remove vestigial vars

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit d78edc6be42338890d972e5bd50d5784282cad9f
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

remove vestigial vars
---
 org-modern-indent.el | 2 --
 1 file changed, 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 1389e6576f..5d2393acec 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -222,8 +222,6 @@ END, and R are its arguments."
(org-modern-indent--block-bracket-flush)
  (org-modern-indent--block-bracket-indented
 
-(defvar org-modern-indent--initted nil)
-(defvar org-modern-indent--old-unfontify-function nil)
 ;;;###autoload
 (define-minor-mode org-modern-indent-mode
   "Org-modern-like block brackets within org-indent."



[elpa] externals/org-modern a3e8b44837 017/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit a3e8b44837b5c22d3c76900a9867d813b7969a5e
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4635764eac..51773450bc 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,12 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
   (org-mode . org-modern-indent-mode))
 ```
 
+The default `fixed-pitch` font on Mac has line spacing >1.0, introducing gaps 
_even if you change the default font_.  To correct it: 
+
+```elisp
+(set-face-attribute 'fixed-pitch nil :family "Hack" :height 1.0) ; or whatever 
font family
+```
+
 Optional, if you want to use org-modern too:
 
 ```elisp
@@ -37,7 +43,7 @@ Optional, if you want to use org-modern too:
   (org-mode . org-modern-mode)
   (org-agenda-finalize . org-modern-agenda))
 ```
-Also optional; use org-bullets instead for nice bullet stars. 
+Also optional; use org-bullets instead for nicely aligned bullet stars. 
 
 ```elisp
 (use-package org-bullets-mode



[elpa] externals/org-modern c5a50f302d 053/105: guard against deleted buffer when org-indent-agent finalizes

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit c5a50f302dc1053d5b498e0ea2bc0ee233e8e1b8
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

guard against deleted buffer when org-indent-agent finalizes
---
 org-modern-indent.el | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 663736f766..530ca0aa39 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -4,7 +4,7 @@
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
 ;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
-;; Version: 0.1.2
+;; Version: 0.1.3
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -
@@ -160,9 +160,10 @@ of the returned vector.  If PREFIX is nil or empty, nil is 
returned."
   (if (or (not (bound-and-true-p org-indent-agentized-buffers))
  (not (memq buf org-indent-agentized-buffers)))
   (progn
-   (with-current-buffer buf
- (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
- (font-lock-flush)))
+   (when (buffer-live-p buf)   ; org-capture buffers vanish fast
+ (with-current-buffer buf
+   (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
+   (font-lock-flush
 (run-at-time 0.1 nil #'org-modern-indent--wait-and-refresh buf)))
 
 (defun org-modern-indent--refresh ()



[elpa] externals/org-modern cc87107626 034/105: block-bracket-prefix: guard against empty prefix

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit cc8710762656a0175061d4a86a5b58e3be74daba
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

block-bracket-prefix: guard against empty prefix

This occurs for blocks before the first headline.  At present they
have no bracket styling (org-modern's fringe could be used as a
fallback).
---
 org-modern-indent.el | 21 +++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 8e525fc23d..73579cebe2 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -71,16 +71,17 @@ the block is flush left in the buffer."
 The three returned prefixes include begin, end, and guide bracket
 indicators, and are cached by prefix length, for speed.
 Additionally, the original prefix string is included at the end
-of the returned vector."
-  (let* ((l (length prefix)))
-(or (gethash l org-modern-indent--block-prefixes)
-   (puthash l (cl-loop for type in '("begin" "guide" "end")
-   for tstr = (symbol-value
-   (intern (concat "org-modern-indent-" 
type)))
-   with pstr = (substring prefix 0 -1)
-   collect (concat pstr tstr) into prefix-brackets
-   finally return (vconcat prefix-brackets (list 
prefix)))
-org-modern-indent--block-prefixes
+of the returned vector.  If PREFIX is nil or empty, nil is returned."
+  (unless (or (not prefix) (string-empty-p prefix))
+(let* ((l (length prefix)))
+  (or (gethash l org-modern-indent--block-prefixes)
+ (puthash l (cl-loop for type in '("begin" "guide" "end")
+ for tstr = (symbol-value
+ (intern (concat "org-modern-indent-" 
type)))
+ with pstr = (substring prefix 0 -1)
+ collect (concat pstr tstr) into prefix-brackets
+ finally return (vconcat prefix-brackets (list 
prefix)))
+  org-modern-indent--block-prefixes)
 
 (defun org-modern-indent--block-bracket-flush ()
   "Insert brackets for org blocks flush with the line prefix."



[elpa] externals/org-modern 4e71fd3069 007/105: Discuss line-spacing and need for indent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 4e71fd306910740d2fce70f14879fbe284cb358c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Discuss line-spacing and need for indent
---
 README.md | 4 
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 6cf688e0b2..6032604337 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,10 @@ This small package reproduces the block styling of 
`org-modern` when `org-indent
 https://user-images.githubusercontent.com/93749/172438142-d4090856-dea8-43d0-a68a-bba29198575f.png>
 
 
+## Notes
+
+This package is only for users of `org-indent-mode`, and will enable indent if 
not set.  Non-zero `line-spacing` will introduce gaps between the block bracket 
characters.
+
 ## Configure
 
 Be sure to enable `org-indent` (see `org-startup-indented`).



[elpa] externals/org-modern 6445696af5 031/105: Separate begin-for use with headline watch

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 6445696af589ee4d53724f071a6f2f26471245d5
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Separate begin-for use with headline watch
---
 org-modern-indent.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index bf1bbb7e2f..83567f1418 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -47,8 +47,10 @@
 (defconst org-modern-indent-guide (propertize "│" 'face 
'org-modern-bracket-line))
 (defconst org-modern-indent-end   (propertize "╰" 'face 
'org-modern-bracket-line))
 
+(defvar org-modern-indent-begin-re
+  "\\([ \t]*\\)\\(#\\+\\)\\(?:begin\\|BEGIN\\)_\\S-")
 (defvar org-modern-indent--font-lock-keywords
-  `(("^\\([ \t]*\\)\\(#\\+\\)\\(?:begin\\|BEGIN\\)_\\S-"
+  `((,(concat "^" org-modern-indent-begin-re)
  (0 (org-modern-indent--block-bracket)
 
 (defun org-modern-indent--block-bracket ()



[elpa] externals/org-modern 630d529b58 099/105: Update README-indent.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 630d529b58b0699b22268b202ceada8ce43c1de8
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README-indent.md
---
 README-indent.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README-indent.md b/README-indent.md
index 1dad3e5cc6..598a951da0 100644
--- a/README-indent.md
+++ b/README-indent.md
@@ -9,7 +9,7 @@ This small package reproduces the block styling of `org-modern` 
when using `org-
 https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
 
 >[!NOTE]
-> Non-nil `line-spacing` is not recommended with this extension, as it leads 
to gap in the vertical bars drawn alongside blocks.
+> Non-nil `line-spacing` is not recommended with this extension, as it leads 
to gaps in the vertical bars drawn to indicate blocks.
 
 ## Updates
 - **v0.6**: Merged as an `org-modern` extension.



[elpa] externals/org-modern 7792c823d2 025/105: Merge pull request #4 from mclearc/main

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 7792c823d2273546cf62f60dad637ed827c05a00
Merge: 550041f9fb a7b22acf5e
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Merge pull request #4 from mclearc/main

Define face for org-modern-indent
---
 org-modern-indent.el | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index ec25ffd1fa..cb36e8b765 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -35,6 +35,11 @@
 (require 'org-indent)
 (require 'seq)
 
+;; Add face for org-modern-indent line
+(defface org-modern-indent-line '((t (:inherit (org-meta-line) :weight light)))
+  "Face for line in org-modern-indent."
+  :group 'faces)
+
 (defun org-modern-indent--face-in (faces element)
   "Determine if any of FACES are present in ELEMENT.
 FACES must be a list.  A face can be 'present' by being named
@@ -133,11 +138,11 @@ To be set as :around advice for 
`org-insert-structure-template'."
   (if org-modern-indent-mode
   (progn
   (setq org-modern-indent-begin
-   (propertize "╭" 'face 'org-meta-line)
+   (propertize "╭" 'face 'org-modern-indent-line)
org-modern-indent-guide
-   (propertize "│" 'face 'org-meta-line)
+   (propertize "│" 'face 'org-modern-indent-line)
org-modern-indent-end
-   (propertize "╰" 'face 'org-meta-line))
+   (propertize "╰" 'face 'org-modern-indent-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))



[elpa] externals/org-modern e3ed5009e5 051/105: timer function: ensure correct directory

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit e3ed5009e5b3ea4336334fb9bb7c54cbd9dfb157
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

timer function: ensure correct directory
---
 org-modern-indent.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 5aa0200529..847c4f48bb 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -160,8 +160,9 @@ of the returned vector.  If PREFIX is nil or empty, nil is 
returned."
   (if (or (not (bound-and-true-p org-indent-agentized-buffers))
  (not (memq buf org-indent-agentized-buffers)))
   (progn
-   (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
-   (font-lock-flush))
+   (with-current-buffer buf
+ (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
+ (font-lock-flush)))
 (run-at-time 0.1 nil #'org-modern-indent--wait-and-refresh buf)))
 
 (defun org-modern-indent--refresh ()



[elpa] externals/org-modern 1e4a4d0f15 060/105: Use = not eq

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1e4a4d0f15bfbee397ae52af249f66460eb3d82c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Use = not eq
---
 org-modern-indent.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 5d2393acec..05d9a4c311 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -63,7 +63,7 @@ plain lists), or `line-prefix' brackets, when the #+begin 
part of
 the block is flush left in the buffer."
   (save-excursion
 (goto-char (match-beginning 0))
-(if (eq (length (match-string 1)) 0)
+(if (= (length (match-string 1)) 0)
(org-modern-indent--block-bracket-flush)
   (org-modern-indent--block-bracket-indented)))
   nil)
@@ -128,7 +128,7 @@ of the returned vector.  If PREFIX is nil or empty, nil is 
returned."
   `(line-prefix ,pf wrap-prefix ,pf))) ; restore
(put-text-property pind (1+ pind) 'org-modern-indent-block-type 
'indent))
  
-  (put-text-property (point) block-indent 'face nil)
+  (put-text-property (point) (1- block-indent) 'face nil)
   (put-text-property (1- block-indent) block-indent
 'display org-modern-indent-begin)
   (while



[elpa] externals/org-modern 5573817412 062/105: block-bracket-flush: docstring improvements

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 5573817412b86eba37d6de30fcf9c42223eabb62
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

block-bracket-flush: docstring improvements
---
 org-modern-indent.el | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 0aed31e656..bca2b97e5c 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -71,10 +71,11 @@ the block is flush left in the buffer."
 (defvar org-modern-indent--block-prefixes (make-hash-table :test 'eq))
 (defun org-modern-indent--block-bracket-prefix (prefix)
   "Return a vector of 3 prefix strings based on the length of the current 
PREFIX.
-The three returned prefixes include begin, end, and guide bracket
+The three returned prefixes include begin, guide, and end bracket
 indicators, and are cached by prefix length, for speed.
 Additionally, the original prefix string is included at the end
-of the returned vector.  If PREFIX is nil or empty, nil is returned."
+of the returned vector.  If PREFIX is nil or empty, nil is
+returned."
   (unless (or (not prefix) (string-empty-p prefix))
 (let* ((l (length prefix)))
   (or (gethash l org-modern-indent--block-prefixes)
@@ -107,6 +108,7 @@ of the returned vector.  If PREFIX is nil or empty, nil is 
returned."
 `(line-prefix ,(aref vec 1) wrap-prefix ,(aref 
vec 1)))
(add-text-properties b (min (line-end-position) (point-max))
 `(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 2)
+`(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 3)))
 
 (defun org-modern-indent--block-bracket-indented ()
   "Insert brackets on space-indented org blocks, e.g. within plain lists."



[elpa] externals/org-modern 704553993b 077/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 704553993ba8f20efa5e94f06f3958f241af39cc
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index d144bddc1d..0cdb088f43 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ This small package approximately reproduces the block styling 
of `org-modern` wh
 ```
 
 >[!IMPORTANT]
-> `org-modern-indent` uses and expects `org-indent` is enabled to achieve its 
formatting.  To activate `org-indent-mode` by default in all org files, set 
`org-startup-indented=t`.
+> `org-modern-indent` uses `org-indent`, and expects it to be enabled to 
achieve its formatting.  To activate `org-indent-mode` by default in all org 
files, set `org-startup-indented=t`.
 
 ## Hints
 



[elpa] externals/org-modern a5ed40c3ab 015/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit a5ed40c3ab940d1ad085c9d97cd545952605308f
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md

Update screenshots and mention org-bullets instead of org-modern-hide-stars.
---
 README.md | 23 ++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 9313ca18d1..4635764eac 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Modern block styling with `org-indent`.
 This small package reproduces the block styling of `org-modern` when using 
`org-indent`:
 
 
-https://user-images.githubusercontent.com/93749/172438142-d4090856-dea8-43d0-a68a-bba29198575f.png>
+https://user-images.githubusercontent.com/93749/172964083-afafa737-3b54-4d9e-aaf0-9a4741fa085c.png>
 
 
 ## Notes
@@ -26,6 +26,27 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
   (org-mode . org-modern-indent-mode))
 ```
 
+Optional, if you want to use org-modern too:
+
+```elisp
+(use-package org-modern
+  :ensure t
+  :custom
+  (org-modern-hide-stars nil) ; adds extra indentation
+  :hook
+  (org-mode . org-modern-mode)
+  (org-agenda-finalize . org-modern-agenda))
+```
+Also optional; use org-bullets instead for nice bullet stars. 
+
+```elisp
+(use-package org-bullets-mode
+  :ensure org-bullets
+  :config
+  :hook org-mode)
+```
+
+
 ## Related packages
 
 - [`org-modern`](https://github.com/minad/org-modern): A modern org styling.  
Works best without org-indent.



[elpa] externals/org-modern 1e34e97efe 011/105: Does not require org-modern (use with or without)

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1e34e97efe64588f135c1743b08739f0f3945e4a
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Does not require org-modern (use with or without)
---
 README.md|  4 ++--
 org-modern-indent.el | 22 +-
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index 6032604337..92b5fba2e7 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 
 [`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nice.  
But when `org-indent` is enabled, the block "bracket", which uses the fringe, 
is disabled.  
 
-This small package reproduces the block styling of `org-modern` when 
`org-indent` is enabled. 
+This small package reproduces the block styling of `org-modern`, even when 
`org-indent` is enabled. 
 
 
 https://user-images.githubusercontent.com/93749/172438142-d4090856-dea8-43d0-a68a-bba29198575f.png>
@@ -11,7 +11,7 @@ This small package reproduces the block styling of 
`org-modern` when `org-indent
 
 ## Notes
 
-This package is only for users of `org-indent-mode`, and will enable indent if 
not set.  Non-zero `line-spacing` will introduce gaps between the block bracket 
characters.
+This package is only for users of `org-indent-mode`, and will enable indent if 
not set.  Non-zero `line-spacing` will introduce gaps between the block bracket 
characters.  Can be used _with or without_ `org-modern`. 
 
 ## Configure
 
diff --git a/org-modern-indent.el b/org-modern-indent.el
index f8e515fbaa..e3ab9e150b 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -24,17 +24,15 @@
 
 ;;; Commentary:
 
-;; org-modern-indent enables the block highlighting of org-modern,
+;; org-modern-indent provides the block highlighting of org-modern,
 ;; even when org-indent is enabled.
 ;; Requires:
-;;   - org-modern
 ;;   - org-indent-mode enabled
+;;   
+;; Can be used with or without org-modern.   
 
 ;;; Code:
-(eval-when-compile
-  (require 'cl-lib))
 (require 'org-indent)
-(require 'org-modern)
 (require 'seq)
 
 (defun org-modern-indent--face-in (faces element)
@@ -62,9 +60,10 @@ explicitly, or inherited."
 (defvar org-modern-indent-guidenil)
 (defvar org-modern-indent-end   nil)
 (defun org-modern-indent-set-line-properties (level indentation &optional 
heading)
-  "A redefinition of `org-indent-set-line-properties' for org-modern block 
style.
-Treats blocks specially, by extending the line and wrap prefixes
-with a box guide unicode character."
+  "An org-modern inspired redefinition of `org-indent-set-line-properties'.
+Used to approximate org-modern block style.  Treats blocks
+specially, by extending the line and wrap prefixes with a box
+guide unicode character."
   (let ((line (aref (pcase heading
  (`nil org-indent--text-line-prefixes)
  (`inlinetask org-indent--inlinetask-line-prefixes)
@@ -108,10 +107,15 @@ with a box guide unicode character."
   (symbol-function 'org-indent-set-line-properties)
   "Original `org-indent-set-line-properties' function.")
 
+(defgroup org-modern-indent nil
+  "org-modern style blocks with org-indent."
+  :group 'org
+  :prefix "org-modern-indent")
+
 (define-minor-mode org-modern-indent-mode
   "Org-modern with org-indent"
   :global nil
-  :group 'org-modern
+  :group 'org-modern-indent
   (if org-modern-indent-mode
   (progn
(setq org-modern-indent-begin



[elpa] externals/org-modern 17860297fc 012/105: Mention :straight/:load-path and related packages

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 17860297fc23a2c86f0a1ad9f39d7e98b05a1157
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Mention :straight/:load-path and related packages
---
 README.md | 8 
 1 file changed, 8 insertions(+)

diff --git a/README.md b/README.md
index 92b5fba2e7..6ef277b973 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,14 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
 
 ```elisp
 (use-package org-modern-indent
+  ;; :straight or :load-path here, to taste
   :hook
   (org-modern-mode . org-modern-indent-mode))
 ```
+
+## Related packages
+
+- [`org-modern`](https://github.com/minad/org-modern): A modern org styling.  
Works best without org-indent.
+- 
[`org-bullets`](https://github.com/sabof/org-bullets/blob/master/org-bullets.el):
 Unicode heading bullet replacement.
+- [`org-superstar`](https://github.com/integral-dw/org-superstar-mode): 
Prettify headings and plain lists.
+- [`nano-emacs`](https://github.com/rougier/nano-emacs): Beautiful and simple 
SVG-based theme for much of emacs, including org. 



[elpa] externals/org-modern updated (3cc432dc99 -> 8cad2c3d83)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/org-modern.

  from  3cc432dc99 Update changelog
   new  1abf8c7ba4 Initial commit
   new  1d020fcda0 Initial import
   new  bc77d6129f Do not extend end block styling beyond end line.
   new  bc5819f450 Add readme info
   new  280d0094e0 Update README.md
   new  f27c48fccb Update README.md
   new  4e71fd3069 Discuss line-spacing and need for indent
   new  9bbe591c58 Store set-line-properties function def on load
   new  e436abc3d4 Treat quote and verse blocks as well
   new  ed9157df69 Omit block decoration modifications from undo stack
   new  1e34e97efe Does not require org-modern (use with or without)
   new  17860297fc Mention :straight/:load-path and related packages
   new  9874203365 Add autoload
   new  a2deeae174 Update README.md
   new  a5ed40c3ab Update README.md
   new  e02b7d109f Add package description and omit org-modern from requires
   new  a3e8b44837 Update README.md
   new  edbab4a407 Update README.md
   new  e118f7edf0 Update README.md
   new  baad0b6bde Docs: hook to org-indent-mode instead of org-mode
   new  d36dc621d8 Handle markup for block insertion correctly
   new  e0f0b01c69 Docstring
   new  550041f9fb README tweaks
   new  a7b22acf5e Define face for org-modern-indent
   new  7792c823d2 Merge pull request #4 from mclearc/main
   new  ff10d3dd2f Update README.md
   new  308027fb03 Do not re-indent entire buffer on mode start/stop
   new  172957a61b Bump minor version
   new  f2b6d6db92 Mention manual indent update after toggling off
   new  022400a0f6 Initial implementation of font-lock-only in-text and 
prefix brackets
   new  6445696af5 Separate begin-for use with headline watch
   new  d237c19185 improve flush and indented block marking and logic
   new  eace9688fd Minor doc
   new  cc87107626 block-bracket-prefix: guard against empty prefix
   new  b14f01e926 org-indent refresh watching added
   new  fa960e27f6 README: describe new v0.1 functionality
   new  d65e773ee2 Update README.md
   new  d597328061 Update README.md
   new  947ac69cbd Update README.md
   new  15ea3dbd91 Update README.md
   new  952abf3a54 Update README.md
   new  5f6d39126e Update README.md
   new  fc0c3fcb5d Update README.md
   new  20a99f67e9 README: improve block alignment suggestions
   new  b722c64062 Update README.md
   new  747fa7ef2b Update README.md
   new  17068a51dc refresh timer: run-at-time instead of idle
   new  cc12cf827b README: better discussion of org-src-preserve-indentation
   new  e4ba473d3e README: improve re-indent description
   new  7d2422d718 Bump version
   new  e3ed5009e5 timer function: ensure correct directory
   new  f1033a3ffa Bump version
   new  c5a50f302d guard against deleted buffer when org-indent-agent 
finalizes
   new  85f95d093d Update README.md
   new  7c07c47cc5 Update README.md
   new  fbdc2212c9 correct bracket-line face name
   new  25594c487e return nil properly from block-bracket font-lock function
   new  3cba802e1c give up after 5 init attempts, and reuse timer
   new  d78edc6be4 remove vestigial vars
   new  1e4a4d0f15 Use = not eq
   new  30cdd1bcf3 README: recommend static org-modern-block-name
   new  5573817412 block-bracket-flush: docstring improvements
   new  ad60fa2f60 block-bracket-flush: tweak prefix layout, only one end 
bracket
   new  b5066e0627 README: Use [!NOTE]
   new  c8671f2af0 Update README.md
   new  400e1d0fce Update README.md
   new  6457c3d0a6 Add org-indent face to wrap-prefix for indented blocks
   new  4b3838253c Small README improvements
   new  0def0388c4 block indent: only add org-indent face to prefix length 
in wrap
   new  a4d242994d Guard against deleted buffers (org-roam may do this)
   new  8702acf291 use org-indent-post-buffer-init-functions to init, if 
available
   new  8afea0fec4 disable org-modern-indent if 5 init tries exceeded in a 
buffer
   new  b826d840c6 Merge branch 'org-buffer-init-hook'
   new  f2b859bc53 Update copyright+version
   new  b5c87056e0 Expand variables
   new  24ce7f35f7 Make `org-indent` requirement more prominent
   new  704553993b Update README.md
   new  3793964555 Update README.md
   new  664cff0dd1 Fix name of bracket face
   new  52b46c6ecd Merge pull request #19 from btobolaski/patch-1
   new  b8f3b2e476 Update README.md
   new  2b3ee1f8cb README: Update screenshot
   new  ce4df70dbc Factor out end-re
   new  ca440cd414 major rewrite using org-element + 
before/after-change-functions
   new  fcd4368476 after-change: ensure beg/end fully span lines
   new  44efad0ea9 Do not advise org-indent-region to strip properties
   new  6ec22d3d74 walk-blocks: avoid visiting first block twice
   ne

[elpa] externals/org-modern f27c48fccb 006/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit f27c48fccb66276c57601c9fe2f1d617c4bae36c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 2525122cb6..6cf688e0b2 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,9 @@
 
 This small package reproduces the block styling of `org-modern` when 
`org-indent` is enabled. 
 
-![image](https://user-images.githubusercontent.com/93749/172436967-36e69e5a-9a58-46c4-875b-a9d6b829f38e.png)
+
+https://user-images.githubusercontent.com/93749/172438142-d4090856-dea8-43d0-a68a-bba29198575f.png>
+
 
 ## Configure
 



[elpa] externals/org-modern 7d2422d718 050/105: Bump version

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 7d2422d71817a92f0263393a66fa99e4bdfe0e79
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Bump version
---
 org-modern-indent.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 76805d4b4b..5aa0200529 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -4,7 +4,7 @@
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
 ;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
-;; Version: 0.1.0
+;; Version: 0.1.1
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -



[elpa] externals/org-modern e0f0b01c69 022/105: Docstring

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit e0f0b01c69008b40e0aedf661b50f759cadf0fb0
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Docstring
---
 org-modern-indent.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 1d195f93d4..ec25ffd1fa 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -106,6 +106,8 @@ guide unicode character."
   (forward-line))
 
 (defun org-modern-indent-block-insert (fun &rest r)
+  "Refresh block after insertion.
+To be set as :around advice for `org-insert-structure-template'."
   (let* ((reg (use-region-p))
 (p (if reg (region-beginning) (point)))
 (m (point-marker)))



[elpa] externals/org-modern 8cad2c3d83 105/105: Merge pull request #281 from minad/org-modern-indent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 8cad2c3d839a720be32b25e12946572b8e569ca2
Merge: 3cc432dc99 fe226e8bc1
Author: Daniel Mendler 
Commit: GitHub 

Merge pull request #281 from minad/org-modern-indent

Org modern indent
---
 CHANGELOG.org|  33 -
 README.org   |  91 -
 org-modern-indent.el | 374 +++
 org-modern.el|  17 ++-
 4 files changed, 508 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 59f4d9acf3..c25a84ba62 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -1,9 +1,11 @@
 #+title: org-modern.el - Changelog
-#+author: Daniel Mendler
+#+author: Daniel Mendler & J.D. Smith
 #+language: en
 
 * Development
 
+- Merged [[https://github.com/jdtsmith/org-modern-indent][org-modern-indent]] 
as a new extension.
+- Automatically provide code block bracket styling when ~org-indent~ is 
enabled using ~org-modern-indent-mode~.
 - Add ~org-modern-habit~ face to improve habit progress fontification.
 
 * Version 1.7 (2025-03-11)
@@ -67,3 +69,32 @@
 * Version 0.8 (2023-02-15)
 
 - Start of changelog.
+
+* org-modern-indent change history
+
+~org-modern-indent~ was incorporated as an extension to ~org-modern~ in v2.0.  
The prior change history for ~org-modern-indent~ is as follows, based on its 
release versions as a separate package:
+
+- **v0.6**: Merged as an ~org-modern~ extension.
+- **v0.5.1**: Small simplifications for block drawing.
+- **v0.5**: Another complete rewrite which substantially improves
+  performance and accuracy.  Now block detection uses ~org-element~
+  and the block styling is implemented in
+  ~before/after-change-functions~. Benefits include:
+  1. Higher performance and more reliable fontification.
+  2. Ability to detect and correctly treat _damaged_ blocks
+ (header/footer line altered or removed) as well as _merged_ blocks.
+  2. Caches all prefix strings for lower memory usage/GC churn.
+  3. No more "runaway" formatting when partial blocks are created:
+ only _real_ blocks (according to ~org-element~) are
+
+  Note that v0.5 implements indented block styling using display
+  properties on the indentation text, so navigation will "skip over"
+  it.
+- **v0.1**: features a complete re-write to use font-lock directly.  This
+  has a few benefits:
+  1. No longer relies on org-mode face names for recognizing
+ blocks, so ~org-src-block-faces~ can have arbitrary faces
+ applied, e.g. for different ~src~ languages, as in the screenshot.
+  2. Eliminates the "race" between font-locking and applying the prefix text 
properties.
+  3. Enables in-text bracket decorations for "bulk-indented" blocks, for 
example blocks situated
+ in an arbitrarily-nested plain list item.
diff --git a/README.org b/README.org
index 1409c4983c..1c87a05c18 100644
--- a/README.org
+++ b/README.org
@@ -33,6 +33,16 @@ recommend variants of the 
[[https://github.com/be5invis/Iosevka][Iosevka]] font,
 the Org buffer. Larger values of =line-spacing= are not recommended, since 
Emacs
 does not center the text vertically (see Emacs 
[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76390][bug#76390]]).
 
+* Indent
+
+Since version 2.0, this package also incorporates ~org-modern-indent~, which 
provides block bracket styling when ~org-indent~ is enabled, including support 
for "bulk-indented" blocks nested within plain lists:
+
+#+html: https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
+
+~org-modern-indent~ is enabled by ~org-modern~ by default if you use 
~org-indent~; configure ~org-modern-indent-block=nil~ to disable this behavior. 
To activate ~org-indent-mode~ in all org files, set ~org-startup-indented=t~.  
+
+*Note*: Non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.  
+
 * Configuration
 
 The package is available on GNU ELPA and MELPA. You can install the package 
with
@@ -93,14 +103,89 @@ screenshot above after the installation of =org-modern=.
 (global-org-modern-mode)
 #+end_src
 
+An alternative setup, using ~use-package~ and modifying some of the display 
entities:
+
+#+begin_src emacs-lisp
+  (use-package org-modern
+:custom
+(org-modern-hide-stars nil)
+(org-modern-todo-faces
+ '(("STARTED" :foreground "yellow")
+   ("CANCELED" org-special-keyword :inverse-video t :weight bold)))
+(org-modern-list
+ '((?* . "•")
+   (?+ . "‣")))
+(org-modern-fold-stars
+ '(("▶" . "▼")
+   ("▷" . "▽")
+   ("▸" . "▾")
+   ("▹" . "▿")))
+(org-modern-checkbox
+ '((?X . "✔")
+   (?- . "┅")
+   (?\s . " ")))
+(org-modern-label-border 1)
+:hook
+(org-mode . org-modern-mode)
+(org-agenda-finalize . org-modern-agenda))
+#+end_src
+
+
 * Incompatibilities
 
-- =org-indent-mode= is not compatible with the block prettification in the 
fringe.
-  If =org-indent-mode= is enabled, =org-moder

[elpa] externals/org-modern 85f95d093d 054/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 85f95d093d9b2d8fb9e4a705529eac4e2a888e87
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 926bc4511b..e7e4ded199 100644
--- a/README.md
+++ b/README.md
@@ -35,9 +35,9 @@ Also, be sure to enable `org-indent` (see the variable 
`org-startup-indented`).
 
 ### Bulk-indented blocks (e.g. within lists):
 
-Bulk-indented blocks have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is appled by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.
+Bulk-indented blocks have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is applied by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.
 
-As an important principle, `org-modern-indent` does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block alignment, here are a few ways to alter 
blocks indentation using org and other commands:
+As an important principle, `org-modern-indent` does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
 
 - **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level:
```org



[elpa] externals/org-modern fdeede3484 094/105: Merge 'org-modern-indent/main' into org-modern-indent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit fdeede3484bdb7b82900cf16cbe4728cdbc66394
Merge: 3cc432dc99 9973bd3b91
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Merge 'org-modern-indent/main' into org-modern-indent
---
 README.md| 124 +
 org-modern-indent.el | 375 +++
 2 files changed, 499 insertions(+)

diff --git a/README.md b/README.md
new file mode 100644
index 00..42d595002d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,124 @@
+# org-modern-indent
+
+Modern block styling with `org-indent`.
+
+[`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nicely 
decorated.  But when `org-indent` is enabled, the block "bracket", which uses 
the fringe area, is disabled.
+
+This small package approximately reproduces the block styling of `org-modern` 
when using `org-indent`.  It can be used with or without `org-modern`.  Recent 
versions support "bulk-indented" blocks nested within lists:
+
+https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
+
+
+## Updates
+- **v0.5.1**: Small simplifications for block drawing.
+- **v0.5**: Another complete rewrite which substantially improves
+  performance and accuracy.  Now block detection uses `org-element`
+  and the block styling is implemented in
+  `before/after-change-functions`. Benefits include:
+  1. Higher performance and more reliable fontification.
+  2. Ability to detect and correctly treat _damaged_ blocks
+ (header/footer line altered or removed) as well as _merged_ blocks.
+  2. Caches all prefix strings for lower memory usage/GC churn.
+  3. No more "runaway" formatting when partial blocks are created:
+ only _real_ blocks (according to `org-element`) are fontified.
+  
+  Note that v0.5 implements indented block styling using display
+  properties on the indentation text, so navigation will "skip over"
+  it.
+- **v0.1**: features a complete re-write to use font-lock directly.  This
+  has a few benefits:
+  1. No longer relies on org-mode face names for recognizing
+ blocks, so `org-src-block-faces` can have arbitrary faces
+ applied, e.g. for different `src` languages, as in the screenshot.
+  2. Eliminates the "race" between font-locking and applying the prefix text 
properties.
+  3. Enables in-text bracket decorations for "bulk-indented" blocks, for 
example blocks situated
+ in an arbitrarily-nested plain list item.
+
+## Configure
+
+```elisp
+(use-package org-modern-indent
+  :load-path "~/code/emacs/org-modern-indent/"
+  ; or
+  ; :straight (org-modern-indent :type git :host github :repo 
"jdtsmith/org-modern-indent"))
+  :config ; add late to hook
+  (add-hook 'org-mode-hook #'org-modern-indent-mode 90))
+```
+
+>[!IMPORTANT]
+> `org-modern-indent` uses `org-indent`, and expects it to be enabled to 
achieve its formatting.  To activate `org-indent-mode` by default in all org 
files, set `org-startup-indented=t`.
+
+## Hints
+
+### Bulk-indented blocks (e.g. within lists):
+
+Bulk-indented blocks have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is applied by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.
+
+As an important principle, `org-modern-indent` does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
+
+- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level:
+   ```org
+   - This list item contains a:
+   - sublist, which holds a block:
+[C-c C-,] here
+   ```
+- **Move flush left**: Note: `M-{` will get you to the start of a block 
quickly.  `M-\` at block start will move the block's first header line to 
column 0.  Then `M-S-left` (or `right`) will indent the full block.
+- **Indent rigidly**: `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, after which left/right moves the entire block.
+- **Re-indent a block**: If you have a block that is partially aligned, 
perhaps with a "hanging end", like so:
+   ```org
+   - List 1
+   - List 2
+#+begin_src lang
+  foo_lang(x)
+  #+end_src
+   ```
+  you can simply use `M-S-left/right` at block start (or in fact anywhere on 
the block header/footer) to `org-indent-block`.  Note that 
`org-src-preserve-indentation=nil` is an important setting, to allow org to 
(re-)indent blocks 

[elpa] externals/org-modern b5066e0627 066/105: README: Use [!NOTE]

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit b5066e062756e34a7dffc1e35e85aeeb4aeca85e
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

README: Use [!NOTE]
---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 1447aa908e..0493b422ea 100644
--- a/README.md
+++ b/README.md
@@ -57,6 +57,7 @@ As an important principle, `org-modern-indent` does not alter 
the contents of th
```
   you can simply use `M-S-left/right` at block start (or in fact anywhere on 
the block header/footer) to `org-indent-block`.  Note that 
`org-src-preserve-indentation=nil` is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from `org-indent-region`): 
 
+  > [!NOTE]
   > The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
 
 ### Font spacing



[elpa] externals/org-modern bc77d6129f 003/105: Do not extend end block styling beyond end line.

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit bc77d6129f1503cc2ee6eda6060ad5f38bb7ea56
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Do not extend end block styling beyond end line.
---
 org-modern-indent.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 128f81c7d8..7ced8215b2 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -91,7 +91,7 @@ with a box guide unicode character."
 
   ;; Block end: use end prefix
   ((org-modern-indent--face-in 'org-block-end-line face)
-   (org-modern-indent--add-props change-beg change-end line extra-pad
+   (org-modern-indent--add-props change-beg line-end line extra-pad
  org-modern-indent-end
;; Non-block line:  pad normally
(org-modern-indent--add-props change-beg change-end line extra-pad)))



[elpa] externals/org-modern ad60fa2f60 063/105: block-bracket-flush: tweak prefix layout, only one end bracket

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit ad60fa2f60623142544e9960646678266edae19a
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

block-bracket-flush: tweak prefix layout, only one end bracket

Don't add unnecessary guide prefixes, and wrap end line with blank
prefix.
---
 org-modern-indent.el | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index bca2b97e5c..61a5ed4dc2 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -93,7 +93,7 @@ returned."
 (beg (match-beginning 0))
 (pind (match-beginning 2))
 (vec (org-modern-indent--block-bracket-prefix lpf))
-(block-start (min (line-end-position) (point-max
+(block-start (min (1+ (line-end-position)) (point-max
 (with-silent-modifications
   (put-text-property pind (1+ pind) 'org-modern-indent-block-type 'flush)
   (when vec
@@ -104,11 +104,11 @@ returned."
(when (re-search-forward "^[ \t]*#\\+\\(?:end\\|END\\)_" nil 'noerror)
  (let ((b (line-beginning-position))
(p (line-beginning-position 2)))
-   (add-text-properties (1+ block-start) p
-`(line-prefix ,(aref vec 1) wrap-prefix ,(aref 
vec 1)))
-   (add-text-properties b (min (line-end-position) (point-max))
-`(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 2)
-`(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 3)))
+   (when (> b block-start)
+ (add-text-properties block-start b
+  `(line-prefix ,(aref vec 1) wrap-prefix 
,(aref vec 1
+   (add-text-properties b p
+`(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 3)
 
 (defun org-modern-indent--block-bracket-indented ()
   "Insert brackets on space-indented org blocks, e.g. within plain lists."



[elpa] externals/org-modern f1033a3ffa 052/105: Bump version

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit f1033a3ffa0107f322a4a64fa028f1d8b8038de5
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Bump version
---
 org-modern-indent.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 847c4f48bb..663736f766 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -4,7 +4,7 @@
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
 ;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
-;; Version: 0.1.1
+;; Version: 0.1.2
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -



[elpa] externals/org-modern 17068a51dc 047/105: refresh timer: run-at-time instead of idle

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 17068a51dcdf7f58206176938270d5dea53e8c30
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

refresh timer: run-at-time instead of idle

We're just checking to see when org-indent has completed its async
line prefix marking.
---
 org-modern-indent.el | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index bb99f73873..fe6c3b33c7 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -161,16 +161,14 @@ of the returned vector.  If PREFIX is nil or empty, nil 
is returned."
  (not (memq buf org-indent-agentized-buffers)))
   (progn
(font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
-   ;; (org-unfontify-region (point-min) (point-max))
(font-lock-flush))
-(run-with-idle-timer 0.25 nil #'org-modern-indent--wait-and-refresh buf)))
+(run-at-time 0.1 nil #'org-modern-indent--wait-and-refresh buf)))
 
 (defun org-modern-indent--refresh ()
   "Unfontify entire buffer and refresh line prefix."
   (with-silent-modifications
 (if org-indent-mode
(org-indent-refresh-maybe (point-min) (point-max) nil))
-;; (org-unfontify-region (point-min) (point-max))
 (font-lock-flush)))
 
 (defun org-modern-indent--unfontify-wrap (fun)



[elpa] externals/org-modern 7c07c47cc5 055/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 7c07c47cc5d4dbb29934c10ad39912f858b9e649
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index e7e4ded199..6364ca2f1b 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ As an important principle, `org-modern-indent` does not alter 
the contents of th
```
   you can simply use `M-S-left/right` at block start (or in fact anywhere on 
the block header/footer) to `org-indent-block`.  Note that 
`org-src-preserve-indentation=nil` is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from `org-indent-region`): 
 
-> The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
+  > The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
 
 ### Font spacing
 



[elpa] externals/org-modern d597328061 038/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit d597328061863164dc45dc0517e25fd7bb0bce0a
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 86f6e09112..807f2d8d49 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
 # org-modern-indent
-https://user-images.githubusercontent.com/93749/224204382-091fcd76-3ad0-467e-9525-287ae80e93c6.png>
 
 Modern block styling with `org-indent`.
 
@@ -7,6 +6,7 @@ Modern block styling with `org-indent`.
 
 This small package approximately reproduces the block styling of `org-modern` 
when using `org-indent`.  It can be used with or without `org-modern`.  Recent 
versions support "bulk indented" blocks nested within lists:
 
+https://user-images.githubusercontent.com/93749/224204382-091fcd76-3ad0-467e-9525-287ae80e93c6.png>
 
 ## Updates
 



[elpa] externals/org-modern b826d840c6 073/105: Merge branch 'org-buffer-init-hook'

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit b826d840c66ba81f40a2c5028a4c893602e6
Merge: a4d242994d 8afea0fec4
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Merge branch 'org-buffer-init-hook'

Adds support for `org-indent-post-buffer-init-functions', set to
appear in Org v9.7.
---
 org-modern-indent.el | 32 +++-
 1 file changed, 23 insertions(+), 9 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 57a04cc5b1..a70aa77cdb 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -163,13 +163,11 @@ returned."
 (defvar-local org-modern-indent--init nil)
 (defun org-modern-indent--wait-and-refresh (buf)
   "Wait for org-indent to finish initializing BUF, then refresh."
-  (when (buffer-live-p buf)
-(if (or (not (bound-and-true-p org-indent-agentized-buffers))
-   (not (memq buf org-indent-agentized-buffers)))
-   (with-current-buffer buf
- (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
- (font-lock-flush))
-  ;; still waiting
+  (if (or (not (bound-and-true-p org-indent-agentized-buffers))
+ (not (memq buf org-indent-agentized-buffers)))
+  (org-modern-indent--add-keywords buf)
+;; still waiting
+(when (buffer-live-p buf)
   (with-current-buffer buf
(if org-modern-indent--init
(let ((cnt (cl-incf (cadr org-modern-indent--init
@@ -185,6 +183,14 @@ returned."
   (list (run-at-time 0.1 nil #'org-modern-indent--wait-and-refresh buf)
 1)))
 
+(defun org-modern-indent--add-keywords (buf)
+  "Add keywords to buffer BUF and refresh.
+To be added to `org-indent-post-buffer-init-functions'."
+  (when (buffer-live-p buf) ; org-capture buffers vanish fast
+(with-current-buffer buf
+  (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
+  (font-lock-flush
+
 (defun org-modern-indent--refresh ()
   "Unfontify entire buffer and refresh line prefix."
   (with-silent-modifications
@@ -232,20 +238,28 @@ END, and R are its arguments."
   "Org-modern-like block brackets within org-indent."
   :global nil
   :group 'org-modern-indent
-  
   (if org-modern-indent-mode
   (progn
(advice-add 'org-indent-refresh-maybe :around
#'org-modern-indent--refresh-watch)
(advice-add 'org-indent-add-properties :filter-args
#'org-modern-indent--store-refresh-args)
-   (org-modern-indent--wait-and-refresh (current-buffer)))
+   (if (boundp 'org-indent-post-buffer-init-functions)
+   (add-hook 'org-indent-post-buffer-init-functions
+ #'org-modern-indent--add-keywords)
+ ;; No hook available, use the less reliable method
+ (org-modern-indent--wait-and-refresh (current-buffer
 ;; Disabling
 (advice-remove 'org-indent-refresh-maybe
   #'org-modern-indent--refresh-watch)
 (advice-remove 'org-indent-add-properties
   #'org-modern-indent--store-refresh-args)
 (font-lock-remove-keywords nil org-modern-indent--font-lock-keywords)
+(if (boundp 'org-indent-post-buffer-init-functions)
+   (remove-hook 'org-indent-post-buffer-init-functions
+#'org-modern-indent--add-keywords)
+  (cancel-timer (car org-modern-indent--init))
+  (setq org-modern-indent--init nil))
 (org-modern-indent--refresh)))
 
 (provide 'org-modern-indent)



[elpa] externals/org-modern 44efad0ea9 086/105: Do not advise org-indent-region to strip properties

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 44efad0ea9a06cb74e8e31658f0ea4e8de996948
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Do not advise org-indent-region to strip properties

It does not always change the region if it is properly indented already.
---
 org-modern-indent.el | 2 --
 1 file changed, 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 62a838ce16..ccc8e62d0e 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -346,7 +346,6 @@ To be added to `org-indent-post-buffer-init-functions'."
   (progn
(advice-add 'org-indent-refresh-maybe :around
#'omi/-refresh-maybe-watch)
-   (advice-add 'org-indent-region :before #'omi/-strip-display)
(cond
 ;; already registered before, just toggle
 (omi/-init (omi/-init (current-buffer)))
@@ -358,7 +357,6 @@ To be added to `org-indent-post-buffer-init-functions'."
(cl-pushnew 'omi/display
(alist-get 'display char-property-alias-alist)))
 ;; Disabling
-(advice-remove 'org-indent-region #'omi/-strip-display)
 (advice-remove 'org-indent-refresh-maybe #'omi/-refresh-maybe-watch)
 (remove-hook 'before-change-functions #'omi/-before-change t)
 (remove-hook 'after-change-functions #'omi/-after-change t)



[elpa] externals/org-modern ce4df70dbc 083/105: Factor out end-re

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit ce4df70dbc1ab0e40b1b3d2e8a47a6cd5f080fe1
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Factor out end-re
---
 org-modern-indent.el | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index a1d2495104..4d3cdd49a1 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -87,6 +87,10 @@ returned."
  finally return (vconcat prefix-brackets (list 
prefix)))
   org-modern-indent--block-prefixes)
 
+(defvar org-modern-indent--end-re
+   (rx bol (group (* space)) (* any)
+   "#+" (or "end" "END") ?_ (* (not space)) eol))
+
 (defun org-modern-indent--block-bracket-flush ()
   "Insert brackets for org blocks flush with the line prefix."
   (let* ((line-pref (get-text-property (point) 'line-prefix))
@@ -101,7 +105,7 @@ returned."
 `( line-prefix ,(aref vec 0)
wrap-prefix ,(aref vec 1)))
(goto-char (match-end 0))
-   (when (re-search-forward "^[ \t]*#\\+\\(?:end\\|END\\)_" nil 'noerror)
+   (when (re-search-forward org-modern-indent--end-re nil 'noerror)
  (let ((b (line-beginning-position))
(p (line-beginning-position 2)))
(when (> b block-start)
@@ -146,7 +150,7 @@ returned."
(put-text-property (point) block-indent 'face nil))
  (cond
   ((eobp) nil)
-  ((looking-at "^\\([ \t]*\\)#\\+\\(?:end\\|END\\)_")
+  ((looking-at org-modern-indent--end-re)
(if (>= (length (match-string 1)) indent)
(put-text-property (1- block-indent) block-indent
   'display org-modern-indent-end))
@@ -212,7 +216,7 @@ To be added as :filter-args advice."
   (setq org-modern-indent--refresh-args args))
 
 (defun org-modern-indent--refresh-watch (fun beg end &rest r)
-  "Watch for org-indent heading refreshes and rebuild prefixes as needed.
+  "Watch for org-indent heading refreshes and rebuild indent prefixes as 
needed.
 FUN is the wrapped function `org-indent-refresh-maybe', and BEG,
 END, and R are its arguments."
   (let ((hmod org-indent-modified-headline-flag) p end2 is-flush)



[elpa] externals/org-modern e02b7d109f 016/105: Add package description and omit org-modern from requires

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit e02b7d109f7d009a23e1bc08e01bd3dbadb5e995
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Add package description and omit org-modern from requires
---
 org-modern-indent.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 9f7c2cde2a..609e0ad4b7 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -1,10 +1,10 @@
-;;; org-modern-indent.el -*- lexical-binding: t; -*-
+;;; org-modern-indent.el --- org-indent blocks like org-modern -*- 
lexical-binding: t; -*-
 ;; Copyright (C) 2022  J.D. Smith
 
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
-;; Package-Requires: ((emacs "27.2") (org "9.5.2") (org-modern)
-;; Version: 0.0.1
+;; Package-Requires: ((emacs "27.2") (org "9.5.2"))
+;; Version: 0.0.2
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -



[elpa] externals/org-modern 20a99f67e9 044/105: README: improve block alignment suggestions

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 20a99f67e955b054a13da15e7b8286ebec741d6f
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

README: improve block alignment suggestions
---
 README.md | 27 ++-
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 56c715b55c..63b3138b1f 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ This small package approximately reproduces the block styling 
of `org-modern` wh
 
 https://user-images.githubusercontent.com/93749/224204382-091fcd76-3ad0-467e-9525-287ae80e93c6.png>
 
+
 ## Updates
 
 - v0.1 features a complete re-write to use font-lock directly.  This has a few 
benefits: 
@@ -34,11 +35,27 @@ Also, be sure to enable `org-indent` (see the variable 
`org-startup-indented`).
 
 ### Bulk-indented blocks (e.g. within lists):
 
-Bulk-indented blocks can have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is appled by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks within such 
indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same column as the list element's text.  To help achieve this, 
here are a few ways to move blocks around in terms of their indentation:
-
-- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level.
-- **Move flush left**: `M-{` gets you to the start of a block quickly.  `M-\` 
there block will move the blocks first header to the very left.  Then 
`M-S-left` (or `right`) will indent the full block.  
`org-src-preserve-indentation=t` will help with indenting `example` blocks.
-- **Indent rigidly**: `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, where left/right moves the entire block.
+Bulk-indented blocks have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is appled by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.
+
+As an important principle, `org-modern-indent` does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block alignment, here are a few ways to alter 
blocks indentation:
+
+- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level:
+   ```org
+   - This list item contains a:
+   - sublist, which holds a block:
+[C-c C-,] here
+   ```
+- **Move flush left** Note: `M-{` will get you to the start of a block 
quickly.  `M-\` at block start will move the block's first header line to 
column 0.  Then `M-S-left` (or `right`) will indent the full block.  
`org-src-preserve-indentation=t` will help with indenting `example` blocks 
(where org considers whitespace significant).
+- **Indent rigidly** `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, where left/right moves the entire block.
+- **Fix a block** If you have a block with a mis-aligned or "hanging end", 
like so:
+   ```org
+   - List 1
+   - List 2
+#+begin_src lang
+  foo_lang(x)
+  #+end_src
+   ```
+  you can simply use `M-S-left/right` at block start to `org-indent-block`. 
 
 ### Font spacing
 



[elpa] externals/org-modern 8702acf291 064/105: use org-indent-post-buffer-init-functions to init, if available

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 8702acf29107ae3b9eb4d75c79b6dc968221d16b
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

use org-indent-post-buffer-init-functions to init, if available
---
 org-modern-indent.el | 22 --
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 61a5ed4dc2..c19771a080 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -164,10 +164,7 @@ returned."
   "Wait for org-indent to finish initializing BUF, then refresh."
   (if (or (not (bound-and-true-p org-indent-agentized-buffers))
  (not (memq buf org-indent-agentized-buffers)))
-  (when (buffer-live-p buf) ; org-capture buffers vanish fast
-   (with-current-buffer buf
- (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
- (font-lock-flush)))
+  (org-modern-indent--add-keywords buf)
 ;; still waiting
 (with-current-buffer buf
   (if org-modern-indent--init
@@ -182,6 +179,14 @@ returned."
 (list (run-at-time 0.1 nil #'org-modern-indent--wait-and-refresh buf)
   1))
 
+(defun org-modern-indent--add-keywords (buf)
+  "Add keywords to buffer BUF and refresh.
+To be added to `org-indent-post-buffer-init-functions'."
+  (when (buffer-live-p buf) ; org-capture buffers vanish fast
+   (with-current-buffer buf
+ (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
+ (font-lock-flush
+
 (defun org-modern-indent--refresh ()
   "Unfontify entire buffer and refresh line prefix."
   (with-silent-modifications
@@ -229,20 +234,25 @@ END, and R are its arguments."
   "Org-modern-like block brackets within org-indent."
   :global nil
   :group 'org-modern-indent
-  
   (if org-modern-indent-mode
   (progn
(advice-add 'org-indent-refresh-maybe :around
#'org-modern-indent--refresh-watch)
(advice-add 'org-indent-add-properties :filter-args
#'org-modern-indent--store-refresh-args)
-   (org-modern-indent--wait-and-refresh (current-buffer)))
+   (if (boundp 'org-indent-post-buffer-init-functions)
+ (add-hook 'org-indent-post-buffer-init-functions
+ #'org-modern-indent--add-keywords)
+ (org-modern-indent--wait-and-refresh (current-buffer
 ;; Disabling
 (advice-remove 'org-indent-refresh-maybe
   #'org-modern-indent--refresh-watch)
 (advice-remove 'org-indent-add-properties
   #'org-modern-indent--store-refresh-args)
 (font-lock-remove-keywords nil org-modern-indent--font-lock-keywords)
+(if (boundp 'org-indent-post-buffer-init-functions)
+   (remove-hook 'org-indent-post-buffer-init-functions
+#'org-modern-indent--add-keywords))
 (org-modern-indent--refresh)))
 
 (provide 'org-modern-indent)



[elpa] externals/org-modern b14f01e926 035/105: org-indent refresh watching added

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit b14f01e92605c8dfd448ed74d7c39ce84b383c2d
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

org-indent refresh watching added

This is required for changed to headlines, which in principle can
alter the indentation of their entire contents.
---
 org-modern-indent.el | 73 ++--
 1 file changed, 71 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 73579cebe2..bb99f73873 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -31,6 +31,7 @@
 
 ;;; Code:
 (require 'compat)
+(require 'org-indent)
 (eval-when-compile (require 'cl-lib))
 
 (defgroup org-modern-indent nil
@@ -153,14 +154,82 @@ of the returned vector.  If PREFIX is nil or empty, nil 
is returned."
  (put-text-property (1- block-indent) block-indent
 'display org-modern-indent-guide))
  t
+
+(defun org-modern-indent--wait-and-refresh (buf)
+  "Wait for org-indent to finish initializing BUF, then refresh."
+  (if (or (not (bound-and-true-p org-indent-agentized-buffers))
+ (not (memq buf org-indent-agentized-buffers)))
+  (progn
+   (font-lock-add-keywords nil org-modern-indent--font-lock-keywords t)
+   ;; (org-unfontify-region (point-min) (point-max))
+   (font-lock-flush))
+(run-with-idle-timer 0.25 nil #'org-modern-indent--wait-and-refresh buf)))
+
+(defun org-modern-indent--refresh ()
+  "Unfontify entire buffer and refresh line prefix."
+  (with-silent-modifications
+(if org-indent-mode
+   (org-indent-refresh-maybe (point-min) (point-max) nil))
+;; (org-unfontify-region (point-min) (point-max))
+(font-lock-flush)))
+
+(defun org-modern-indent--unfontify-wrap (fun)
+  "Wrap FUN with extra font lock keywords."
+  (lambda (beg end)
+(let* ((font-lock-extra-managed-props
+   (append '(display invisible) font-lock-extra-managed-props)))
+  (funcall fun beg end
+
+(defvar org-modern-indent--refresh-args nil)
+(defun org-modern-indent--store-refresh-args (args)
+  "Store the arguments ARGS for `org-indent-add-properties'.
+To be added as :filter-args advice."
+  (setq org-modern-indent--refresh-args args))
+
+(defun org-modern-indent--refresh-watch (fun beg end &rest r)
+  "Watch for org-indent heading refreshes and rebuild prefixes as needed.
+FUN is the wrapped function `org-indent-refresh-maybe', and BEG,
+END, and R are its arguments."
+  (let ((hmod org-indent-modified-headline-flag) p end2 is-flush)
+(apply fun beg end r)
+;; Recover the args passed to org-indent-add-properties
+(setq end2 (cadr org-modern-indent--refresh-args))
+(when (or hmod (/= end end2))
+  (setq p (1- beg))
+  (save-excursion
+   (while (< (setq p (next-single-property-change
+  (1+ p) 'org-modern-indent-block-type nil end2))
+ end2)
+ (goto-char p)
+ (setq is-flush
+   (eq (get-text-property p 'org-modern-indent-block-type) 'flush))
+ (when (looking-at org-modern-indent-begin-re)
+   (if is-flush
+   (org-modern-indent--block-bracket-flush)
+ (org-modern-indent--block-bracket-indented
+
+(defvar org-modern-indent--initted nil)
+(defvar org-modern-indent--old-unfontify-function nil)
 ;;;###autoload
 (define-minor-mode org-modern-indent-mode
   "Org-modern-like block brackets within org-indent."
   :global nil
   :group 'org-modern-indent
+  
   (if org-modern-indent-mode
-  (font-lock-add-keywords nil org-modern-indent--font-lock-keywords)
-(font-lock-remove-keywords nil org-modern-indent--font-lock-keywords)))
+  (progn
+   (advice-add 'org-indent-refresh-maybe :around
+   #'org-modern-indent--refresh-watch)
+   (advice-add 'org-indent-add-properties :filter-args
+   #'org-modern-indent--store-refresh-args)
+   (org-modern-indent--wait-and-refresh (current-buffer)))
+;; Disabling
+(advice-remove 'org-indent-refresh-maybe
+  #'org-modern-indent--refresh-watch)
+(advice-remove 'org-indent-add-properties
+  #'org-modern-indent--store-refresh-args)
+(font-lock-remove-keywords nil org-modern-indent--font-lock-keywords)
+(org-modern-indent--refresh)))
 
 (provide 'org-modern-indent)
 ;;; org-modern-indent.el ends here



[elpa] externals/org-modern bf318d53b0 097/105: Updated README's to mention org-modern-indent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit bf318d53b06cd21250dbb3d8f0a330fcd4025527
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Updated README's to mention org-modern-indent
---
 CHANGELOG.org|  4 +++-
 README-indent.md | 39 ++-
 README.org   | 33 ++---
 3 files changed, 39 insertions(+), 37 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 59f4d9acf3..3cf6b87f3e 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -1,9 +1,11 @@
 #+title: org-modern.el - Changelog
-#+author: Daniel Mendler
+#+author: Daniel Mendler & J.D. Smith
 #+language: en
 
 * Development
 
+- Merged [[https://github.com/jdtsmith/org-modern-indent][org-modern-indent]] 
as a new extension.
+- Automatically provide code block bracket styling when ~org-indent~ is 
enabled using ~org-modern-indent-mode~.
 - Add ~org-modern-habit~ face to improve habit progress fontification.
 
 * Version 1.7 (2025-03-11)
diff --git a/README-indent.md b/README-indent.md
index 42d595002d..1dad3e5cc6 100644
--- a/README-indent.md
+++ b/README-indent.md
@@ -4,12 +4,15 @@ Modern block styling with `org-indent`.
 
 [`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nicely 
decorated.  But when `org-indent` is enabled, the block "bracket", which uses 
the fringe area, is disabled.
 
-This small package approximately reproduces the block styling of `org-modern` 
when using `org-indent`.  It can be used with or without `org-modern`.  Recent 
versions support "bulk-indented" blocks nested within lists:
+This small package reproduces the block styling of `org-modern` when using 
`org-indent`. Recent versions support "bulk-indented" blocks nested within 
lists:
 
 https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
 
+>[!NOTE]
+> Non-nil `line-spacing` is not recommended with this extension, as it leads 
to gap in the vertical bars drawn alongside blocks.
 
 ## Updates
+- **v0.6**: Merged as an `org-modern` extension.
 - **v0.5.1**: Small simplifications for block drawing.
 - **v0.5**: Another complete rewrite which substantially improves
   performance and accuracy.  Now block detection uses `org-element`
@@ -34,17 +37,6 @@ This small package approximately reproduces the block 
styling of `org-modern` wh
   3. Enables in-text bracket decorations for "bulk-indented" blocks, for 
example blocks situated
  in an arbitrarily-nested plain list item.
 
-## Configure
-
-```elisp
-(use-package org-modern-indent
-  :load-path "~/code/emacs/org-modern-indent/"
-  ; or
-  ; :straight (org-modern-indent :type git :host github :repo 
"jdtsmith/org-modern-indent"))
-  :config ; add late to hook
-  (add-hook 'org-mode-hook #'org-modern-indent-mode 90))
-```
-
 >[!IMPORTANT]
 > `org-modern-indent` uses `org-indent`, and expects it to be enabled to 
 > achieve its formatting.  To activate `org-indent-mode` by default in all org 
 > files, set `org-startup-indented=t`.
 
@@ -88,26 +80,9 @@ The default `fixed-pitch` font (from which `org-meta-line` 
inherits) has line sp
 
 If you'd like a different face than `org-meta-line` for the "bracket", 
configure the `org-modern-indent-bracket-line` face.
 
-### Related config
+### Related configuration
 
-Optionally, if you want to use 
[org-modern](https://github.com/minad/org-modern) too (I do), a suggested 
config:
-
-```elisp
-(use-package org-modern
-  :ensure t
-  :custom
-  (org-modern-hide-stars nil)  ; adds extra indentation
-  (org-modern-table nil)
-  (org-modern-list 
-   '(;; (?- . "-")
- (?* . "•")
- (?+ . "‣")))
-  :hook
-  (org-mode . org-modern-mode)
-  (org-agenda-finalize . org-modern-agenda))
-```
-
-Also optional; use org-bullets instead for nicely aligned bullet stars. 
+Optional; use org-bullets instead for nicely aligned bullet stars. 
 
 ```elisp
 (use-package org-bullets-mode
@@ -116,9 +91,7 @@ Also optional; use org-bullets instead for nicely aligned 
bullet stars.
   :hook org-mode)
 ```
 
-
 ## Related packages
 
-- [`org-modern`](https://github.com/minad/org-modern): A modern org styling.  
Works best without org-indent.
 - [`org-bullets`](https://github.com/sabof/org-bullets): Unicode heading 
bullet replacement.
 - [`org-superstar`](https://github.com/integral-dw/org-superstar-mode): 
Prettify headings and plain lists.
diff --git a/README.org b/README.org
index 1409c4983c..c3496a0485 100644
--- a/README.org
+++ b/README.org
@@ -22,7 +22,9 @@ syntax element individually via the =org-modern= 
customization group.
 [[https://github.com/minad/org-modern/blob/screenshots/example.gif?raw=true]]
 
 The screenshots shows [[file:example.org][example.org]] with =org-modern-mode= 
turned on and off. The
-elegant theme featured in the screenshot is 
[[https://protesilaos.com/emacs/modus-themes][modus-operandi]].
+elegant the

[elpa] externals/org-modern 1a1c9785c6 088/105: draw-block: simplify property modification + add indent field

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1a1c9785c6ed4bd0f54f10641eb25d5ef0b4
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

draw-block: simplify property modification + add indent field

Some renaming and use of `cl-macrolet'.  The field is used to allow
more convenient editing for indented blocks.  E.g C-a moves back and
M-\ deletes back to the field (guide bar).  We use `pos-bol' for block
navigation, since it ignores fields.
---
 org-modern-indent.el | 80 ++--
 1 file changed, 40 insertions(+), 40 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index a1a6f7b11d..35de70d218 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -57,7 +57,7 @@
  Utility
 (defsubst omi/-lbp (p &optional n)
   "Return the line beginning position N at point P."
-  (save-excursion (goto-char p) (line-beginning-position n)))
+  (save-excursion (goto-char p) (pos-bol n)))
 
  Block prefix cache
 (defvar omi/-prefixes (make-hash-table :test #'equal)
@@ -149,50 +149,50 @@ partially overlaps the region."
   (setq finished t)))
 
  Drawing block brackets
-(defun omi/-draw-block (beg end beg0 end0 org-indent real-block-indent)
+(defun omi/-draw-block (beg end beg0 end0 org-indent real-indent)
   "Insert brackets for block between BEG and END.
 BEG0 and END0 represents the block's full range, corresponding to the
 line beginning/end positions of the block's #+BEGIN/END header/footer
 lines.  The `org-indent' prefix length at block header is ORG-INDENT,
-and REAL-BLOCK-INDENT is the amount of \"real\" (hard space) block
-indentation.  REAL-BLOCK-INDENT may be zero."
+and REAL-INDENT is the amount of \"real\" (hard space) block
+indentation.  REAL-INDENT may be zero."
   (with-silent-modifications
-(pcase-let*
-   (((seq beg-str guide-str end-str)
- (omi/-prefix org-indent real-block-indent))
-((seq beg-ind-str guide-ind-str end-ind-str)
- (and (> real-block-indent 0) (omi/-prefix real-block-indent 0)))
-(beg-bol (omi/-lbp beg))
-(body-start (max (omi/-lbp beg0 2) beg-bol))
-(lp-begin (and (= real-block-indent 0) `(line-prefix ,beg-str)))
-(lp-guide (and (= real-block-indent 0) `(line-prefix ,guide-str
-  (when (> body-start beg) ;; BEGIN
-   (add-text-properties beg-bol body-start
-`(,@lp-begin wrap-prefix ,guide-str))
-   (when (> real-block-indent 0)
- (put-text-property beg-bol (+ beg-bol real-block-indent)
-'omi/display beg-ind-str)))
-  (when (> end body-start)
-   (let* ((end-bol (omi/-lbp end))
-  (end0-bol (omi/-lbp end0))
-  (after-end (omi/-lbp end 2))
-  (body-final (if (= end-bol end0-bol) end-bol after-end)))
- (add-text-properties body-start body-final ;; GUIDE BODY
-  `(,@lp-guide wrap-prefix ,guide-str))
- (when (> real-block-indent 0)
-   (goto-char body-start)
-   (while (< (point) body-final)
- (when (>= (current-indentation) real-block-indent)
-   (put-text-property (point) (+ (point) real-block-indent)
-  'omi/display guide-ind-str))
- (forward-line)))
- (when (= end-bol end0-bol) ;; END
-   (if (= real-block-indent 0)
-   (put-text-property end-bol after-end 'line-prefix end-str)
- (goto-char end-bol)
- (when (>= (current-indentation) real-block-indent)
-   (put-text-property end-bol (+ end-bol real-block-indent)
-  'omi/display end-ind-str)
+(pcase-let* (((seq beg-prefix guide-prefix end-prefix)
+ (omi/-prefix org-indent real-indent))
+((seq beg-display guide-display end-display)
+ (and (> real-indent 0) (omi/-prefix real-indent 0)))
+(beg-bol (omi/-lbp beg))
+(body-start (max (omi/-lbp beg0 2) beg-bol)))
+  (cl-macrolet ((add-prefixes (pbeg pend line-prefix wrap-prefix)
+ `(add-text-properties ,pbeg ,pend
+   `(,@(and (= real-indent 0) `(line-prefix ,,line-prefix))
+ wrap-prefix ,,wrap-prefix)))
+   (add-guides (pbeg pend display-str)
+ `(add-text-properties ,pbeg ,pend
+   `( omi/display ,,display-str field org-modern-indent
+  rear-nonsticky t
+   (when (> body-start beg)  ;; BEGIN
+ (add-prefixes beg-bol body-start beg-prefix guide-prefix)
+ (when (> real-indent 0)
+   (add-guides beg-bol (+ beg-bol real-indent) beg-display)))
+   (when (> end body-start)  ;; GUIDE BODY
+ (let* ((end-bol (omi/-lbp end))
+(end0-bol

[elpa] externals/org-modern 881cfaf734 103/105: Remove vestigial README-indent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 881cfaf7345b6fc2d7ae261caa97c9bc20165715
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Remove vestigial README-indent
---
 README-indent.md | 97 
 1 file changed, 97 deletions(-)

diff --git a/README-indent.md b/README-indent.md
deleted file mode 100644
index 598a951da0..00
--- a/README-indent.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# org-modern-indent
-
-Modern block styling with `org-indent`.
-
-[`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nicely 
decorated.  But when `org-indent` is enabled, the block "bracket", which uses 
the fringe area, is disabled.
-
-This small package reproduces the block styling of `org-modern` when using 
`org-indent`. Recent versions support "bulk-indented" blocks nested within 
lists:
-
-https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
-
->[!NOTE]
-> Non-nil `line-spacing` is not recommended with this extension, as it leads 
to gaps in the vertical bars drawn to indicate blocks.
-
-## Updates
-- **v0.6**: Merged as an `org-modern` extension.
-- **v0.5.1**: Small simplifications for block drawing.
-- **v0.5**: Another complete rewrite which substantially improves
-  performance and accuracy.  Now block detection uses `org-element`
-  and the block styling is implemented in
-  `before/after-change-functions`. Benefits include:
-  1. Higher performance and more reliable fontification.
-  2. Ability to detect and correctly treat _damaged_ blocks
- (header/footer line altered or removed) as well as _merged_ blocks.
-  2. Caches all prefix strings for lower memory usage/GC churn.
-  3. No more "runaway" formatting when partial blocks are created:
- only _real_ blocks (according to `org-element`) are fontified.
-  
-  Note that v0.5 implements indented block styling using display
-  properties on the indentation text, so navigation will "skip over"
-  it.
-- **v0.1**: features a complete re-write to use font-lock directly.  This
-  has a few benefits:
-  1. No longer relies on org-mode face names for recognizing
- blocks, so `org-src-block-faces` can have arbitrary faces
- applied, e.g. for different `src` languages, as in the screenshot.
-  2. Eliminates the "race" between font-locking and applying the prefix text 
properties.
-  3. Enables in-text bracket decorations for "bulk-indented" blocks, for 
example blocks situated
- in an arbitrarily-nested plain list item.
-
->[!IMPORTANT]
-> `org-modern-indent` uses `org-indent`, and expects it to be enabled to 
achieve its formatting.  To activate `org-indent-mode` by default in all org 
files, set `org-startup-indented=t`.
-
-## Hints
-
-### Bulk-indented blocks (e.g. within lists):
-
-Bulk-indented blocks have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is applied by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.
-
-As an important principle, `org-modern-indent` does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
-
-- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level:
-   ```org
-   - This list item contains a:
-   - sublist, which holds a block:
-[C-c C-,] here
-   ```
-- **Move flush left**: Note: `M-{` will get you to the start of a block 
quickly.  `M-\` at block start will move the block's first header line to 
column 0.  Then `M-S-left` (or `right`) will indent the full block.
-- **Indent rigidly**: `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, after which left/right moves the entire block.
-- **Re-indent a block**: If you have a block that is partially aligned, 
perhaps with a "hanging end", like so:
-   ```org
-   - List 1
-   - List 2
-#+begin_src lang
-  foo_lang(x)
-  #+end_src
-   ```
-  you can simply use `M-S-left/right` at block start (or in fact anywhere on 
the block header/footer) to `org-indent-block`.  Note that 
`org-src-preserve-indentation=nil` is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from `org-indent-region`): 
-
-> **Note**
-> The function will not indent contents of example blocks, verse blocks 
and export blocks as leading white spaces

[elpa] externals/org-modern 8710dada43 092/105: beg-end: simplify skipping post-blank lines

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 8710dada4388f4acb3df44e8a9585f18ccb3a14c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

beg-end: simplify skipping post-blank lines

The value of :post-blank is variable, depending on whether the element
ends at EOB or on another element (heading, block, paragraph, etc.).
So just skip tab/space/newline backwards.
---
 org-modern-indent.el | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 155f529125..2a6814884d 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -120,11 +120,10 @@ affiliated content like title as part of the block."
 BEG is at the beginning of the #+BEGIN line, and END is at the end of
 the #+END line."
   (let* ((bbeg (org-element-property :post-affiliated node)) ; on #+begin
-(blank-lines (org-element-property :post-blank node))
 (bend (save-excursion
 (goto-char (org-element-property :end node))
-(if (eobp) (point)
-  (line-end-position (- blank-lines))
+(skip-chars-backward "\n\t ")
+(point
 (cons bbeg bend)))
 
 (defun omi/-walk-blocks (beg end fun)



[elpa] externals/org-modern f2b859bc53 074/105: Update copyright+version

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit f2b859bc53107b2a1027b76dbf4aaebf14c03433
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Update copyright+version
---
 org-modern-indent.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index a70aa77cdb..685fc493a0 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -1,10 +1,10 @@
 ;;; org-modern-indent.el --- org-indent blocks like org-modern -*- 
lexical-binding: t; -*-
-;; Copyright (C) 2022-2023  J.D. Smith
+;; Copyright (C) 2022-2024  J.D. Smith
 
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
 ;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
-;; Version: 0.1.3
+;; Version: 0.1.4
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -



[elpa] externals/org-modern 24ce7f35f7 076/105: Make `org-indent` requirement more prominent

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 24ce7f35f764de6da3cda72f8eaa4d8a9b70fdf5
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Make `org-indent` requirement more prominent
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4ec1aff4b9..d144bddc1d 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,9 @@ This small package approximately reproduces the block styling 
of `org-modern` wh
   :config ; add late to hook
   (add-hook 'org-mode-hook #'org-modern-indent-mode 90))
 ```
-Also, be sure to enable `org-indent` (see the variable `org-startup-indented`).
+
+>[!IMPORTANT]
+> `org-modern-indent` uses and expects `org-indent` is enabled to achieve its 
formatting.  To activate `org-indent-mode` by default in all org files, set 
`org-startup-indented=t`.
 
 ## Hints
 



[elpa] externals/org-modern 9874203365 013/105: Add autoload

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 9874203365d373df1ac291c38df0d7f75fd53d8c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Add autoload
---
 org-modern-indent.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index e3ab9e150b..9f7c2cde2a 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -112,6 +112,7 @@ guide unicode character."
   :group 'org
   :prefix "org-modern-indent")
 
+;;;###autoload
 (define-minor-mode org-modern-indent-mode
   "Org-modern with org-indent"
   :global nil



[elpa] externals/org-modern 1abf8c7ba4 001/105: Initial commit

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1abf8c7ba4a73b01629440c2273bd96f0b09ac53
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Initial commit
---
 LICENSE   | 674 ++
 README.md |   2 +
 2 files changed, 676 insertions(+)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00..f288702d2f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+GNU GENERAL PUBLIC LICENSE
+   Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+   TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it

[elpa] externals/org-modern 022400a0f6 030/105: Initial implementation of font-lock-only in-text and prefix brackets

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 022400a0f637e8e7fd8ac74c5fbc22a3b1dc91a2
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Initial implementation of font-lock-only in-text and prefix brackets
---
 org-modern-indent.el | 239 ++-
 1 file changed, 123 insertions(+), 116 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index f752cb8728..bf1bbb7e2f 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -1,10 +1,10 @@
 ;;; org-modern-indent.el --- org-indent blocks like org-modern -*- 
lexical-binding: t; -*-
-;; Copyright (C) 2022  J.D. Smith
+;; Copyright (C) 2022-2023  J.D. Smith
 
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
-;; Package-Requires: ((emacs "27.2") (org "9.5.2"))
-;; Version: 0.0.3
+;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
+;; Version: 0.1.0
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -
@@ -25,131 +25,138 @@
 ;;; Commentary:
 
 ;; org-modern-indent provides the block highlighting of org-modern,
-;; even when org-indent is enabled.
-;; Requires:
-;;   - org-indent-mode enabled
+;; when org-indent is enabled.
 ;;   
-;; Can be used with or without org-modern.   
+;; Can be used with or without org-modern.
 
 ;;; Code:
-(require 'org-indent)
-(require 'seq)
-
-;; Add face for org-modern-indent line
-(defface org-modern-indent-line '((t (:inherit (org-meta-line) :weight light)))
-  "Face for line in org-modern-indent."
-  :group 'faces)
-
-(defun org-modern-indent--face-in (faces element)
-  "Determine if any of FACES are present in ELEMENT.
-FACES must be a list.  A face can be 'present' by being named
-explicitly, or inherited."
-  (cl-loop for face in faces
-  if (cond ((consp element)
-(or (memq face element)
-(if-let ((inh (plist-get element :inherit))) 
-(if (consp inh)
-(memq face inh) (eq inh face)
-   (t (eq element face)))
-  return t))
-
-(defun org-modern-indent--add-props (beg end line extra-pad &optional guide 
wrap-guide)
-  (with-silent-modifications
-(add-text-properties beg end
-`(line-prefix
-  ,(concat line guide)
-  wrap-prefix
-  ,(concat line (or wrap-guide guide) extra-pad)
-
-(defvar org-modern-indent-begin nil)
-(defvar org-modern-indent-guidenil)
-(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
-specially, by extending the line and wrap prefixes with a box
-guide unicode character."
-  (let ((line (aref (pcase heading
- (`nil org-indent--text-line-prefixes)
- (`inlinetask org-indent--inlinetask-line-prefixes)
- (_ org-indent--heading-line-prefixes))
-   level))
-   (extra-pad (if (> indentation 0)
-  (org-add-props
-  (if heading (concat (make-string level ?*) " ")
-(make-string indentation ?\s))
-  nil 'face 'org-indent)))
-   (change-beg (line-beginning-position))
-   (change-end (line-beginning-position 2))
-   (line-end (line-end-position)))
-(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
-  ((org-modern-indent--face-in '(org-block-begin-line) face)
-   (org-modern-indent--add-props change-beg line-end line extra-pad
- org-modern-indent-begin 
org-modern-indent-guide)
-   ;; possible blank line following
-   (org-modern-indent--add-props line-end change-end line extra-pad
- org-modern-indent-guide))
-
-  ;; Block body: use guide prefix
-  ((org-modern-indent--face-in '(org-block org-quote org-verse) face)
-   (org-modern-indent--add-props change-beg change-end line extra-pad
- org-modern-indent-guide))
-
-  ;; Block end: use end prefix
-  ((org-modern-indent--face-in '(org-block-end-line) face)
-   (org-modern-indent--add-props change-beg line-end line extra-pad
-   

[elpa] externals/org-modern 952abf3a54 041/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 952abf3a54d0589fd2a25e007d67254a6a30276a
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 2ee6f38d6b..e4fc90303d 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ Also, be sure to enable `org-indent` (see the variable 
`org-startup-indented`).
 
 ### Bulk-indented blocks (e.g. within lists):
 
-Bulk-indented blocks can have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is appled by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks withing such 
indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same level as the list element's text.  To help achieve this, 
here are a few ways to move blocks around in terms of their indentation:
+Bulk-indented blocks can have "real" (space/tab) indent applied and managed by 
org.  This extra indentation is appled by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks within such 
indented content, e.g. in plain list items, you only have to begin the 
`#+begin` at the same column as the list element's text.  To help achieve this, 
here are a few ways to move blocks around in terms of their indentation:
 
 - **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit `C-c C,` to create the desired block.  It will 
be indented at the right level.
 - **Move flush left** `M-{` gets you to the start of a block quickly.  `M-\` 
there block will move the blocks first header to the very left.  Then 
`M-S-left` (or `right`) will indent the full block.  
`org-src-preserve-indentation=t` will help with indenting `example` blocks.



[elpa] externals/org-modern e118f7edf0 019/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit e118f7edf011a6e3df0ca21f0762ced399f3683e
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index cc51da40ce..8c8389ac9a 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,13 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
   (org-mode . org-modern-indent-mode))
 ```
 
-The default `fixed-pitch` font on Mac (and perhaps elsewhere) has line spacing 
>1.0, introducing gaps _even if you change the default font_.  To correct it, 
add: 
+The default `fixed-pitch` font (from which `org-meta-line` inherits) has line 
spacing >1.0 on some systems. This will introduce gaps _even if your default 
font is changed_, and `line-space` is nil.  To correct it, add: 
 
 ```elisp
 (set-face-attribute 'fixed-pitch nil :family "Hack" :height 1.0) ; or whatever 
font family
 ```
 
-Optional, if you want to use org-modern too:
+Optionally, if you want to use org-modern too:
 
 ```elisp
 (use-package org-modern
@@ -43,6 +43,7 @@ Optional, if you want to use org-modern too:
   (org-mode . org-modern-mode)
   (org-agenda-finalize . org-modern-agenda))
 ```
+
 Also optional; use org-bullets instead for nicely aligned bullet stars. 
 
 ```elisp
@@ -52,7 +53,6 @@ Also optional; use org-bullets instead for nicely aligned 
bullet stars.
   :hook org-mode)
 ```
 
-
 ## Related packages
 
 - [`org-modern`](https://github.com/minad/org-modern): A modern org styling.  
Works best without org-indent.



[elpa] externals/org-modern 42fcc6af54 089/105: -init -> init, make command

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 42fcc6af541642459f86580ce63dc312e1d3c8f1
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

-init -> init, make command

Can be called interactively on the current buffer to initialize, which
may be necessary if the post-buffer-init-functions have already run.
---
 org-modern-indent.el | 33 +
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 35de70d218..121d3fce8b 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -217,7 +217,7 @@ END, and R are its arguments."
   "Wait for org-indent to finish initializing BUF, then refresh."
   (if (or (not (bound-and-true-p org-indent-agentized-buffers))
  (not (memq buf org-indent-agentized-buffers)))
-  (omi/-init buf)
+  (omi/init buf)
 ;; still waiting
 (when (buffer-live-p buf)
   (with-current-buffer buf
@@ -322,21 +322,22 @@ To be added after `org-indent-refresh-maybe' on
 (remove-text-properties bl-beg bl-end '(omi/display nil
 (omi/-draw-block bl-beg bl-end beg0 end0 (length pf) ci))
 
-
  Mode/setup
-(defun omi/-init (buf)
+(defun omi/init (&optional buf)
   "Register buffer BUF and refresh.
 To be added to `org-indent-post-buffer-init-functions'."
-  (when (buffer-live-p buf) ; org-capture buffers vanish fast
-(with-current-buffer buf
-  (add-hook 'before-change-functions #'omi/-before-change nil t)
-  (or (memq #'omi/-after-change after-change-functions)
- (cl-loop for func on after-change-functions
-  if (eq (car func) 'org-indent-refresh-maybe) do
-  (setcdr func (cons #'omi/-after-change (cdr func))) and 
return t)
- (add-hook 'after-change-functions #'omi/-after-change 98 t))
-  (setq omi/-init t)
-  (org-with-wide-buffer (omi/-after-change (point-min) (point-max) nil)
+  (interactive)
+  (let ((buf (or buf (current-buffer
+(when (buffer-live-p buf)   ; org-capture buffers vanish fast
+  (with-current-buffer buf
+   (add-hook 'before-change-functions #'omi/-before-change nil t)
+   (or (memq #'omi/-after-change after-change-functions)
+   (cl-loop for func on after-change-functions
+if (eq (car func) 'org-indent-refresh-maybe) do
+(setcdr func (cons #'omi/-after-change (cdr func))) and 
return t)
+   (add-hook 'after-change-functions #'omi/-after-change 98 t))
+   (setq omi/-init t)
+   (org-with-wide-buffer (omi/-after-change (point-min) (point-max) 
nil))
 
 ;;;###autoload
 (define-minor-mode omi/mode
@@ -349,10 +350,10 @@ To be added to `org-indent-post-buffer-init-functions'."
#'omi/-refresh-maybe-watch)
(cond
 ;; already registered before, just toggle
-(omi/-init (omi/-init (current-buffer)))
+(omi/-init (omi/init))
 ;; Register with buffer init
 ((boundp 'org-indent-post-buffer-init-functions)
- (add-hook 'org-indent-post-buffer-init-functions #'omi/-init nil t))
+ (add-hook 'org-indent-post-buffer-init-functions #'omi/init nil t))
 ;; No hook available, use the less reliable method
 (t (omi/-wait-and-refresh (current-buffer
(cl-pushnew 'omi/display
@@ -362,7 +363,7 @@ To be added to `org-indent-post-buffer-init-functions'."
 (remove-hook 'before-change-functions #'omi/-before-change t)
 (remove-hook 'after-change-functions #'omi/-after-change t)
 (if (boundp 'org-indent-post-buffer-init-functions)
-   (remove-hook 'org-indent-post-buffer-init-functions #'omi/-init t)
+   (remove-hook 'org-indent-post-buffer-init-functions #'omi/init t)
   (cancel-timer (car omi/-init))
   (setq omi/-init nil))
 (omi/-refresh)))



[elpa] externals/org-modern 6457c3d0a6 069/105: Add org-indent face to wrap-prefix for indented blocks

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 6457c3d0a6fed45d510e5711ed3a40d09872c293
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Add org-indent face to wrap-prefix for indented blocks
---
 org-modern-indent.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 61a5ed4dc2..a6a04db7d0 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -118,7 +118,9 @@ returned."
 (indent (current-indentation)) ; space up to #+begin_
 (block-indent (+ (point) indent))
 (search (concat "^[[:blank:]]\\{" (number-to-string indent) "\\}"))
-(wrap (concat (make-string (if pf (+ indent (length pf) -1) indent) 
?\s)
+(wrap (concat (propertize
+   (make-string (if pf (+ indent (length pf) -1) indent) 
?\s)
+   'face 'org-indent)
   org-modern-indent-guide))
 orig-prefix)
 (with-silent-modifications



[elpa] externals/org-modern a462be576c 101/105: Merge org-modern-indent README and ChangeLog into org-modern's

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit a462be576ced8405a70116863bbca7c05dc19957
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Merge org-modern-indent README and ChangeLog into org-modern's
---
 CHANGELOG.org | 31 +
 README.org| 64 +++
 2 files changed, 91 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 3cf6b87f3e..359dede5ef 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -69,3 +69,34 @@
 * Version 0.8 (2023-02-15)
 
 - Start of changelog.
+
+* org-modern-indent change history
+
+~org-modern-indent~ was incorporated as an extension to ~org-modern~ in v2.0.  
The prior change history for ~org-modern-indent~ is as follows, based on its 
release versions as a separate package:
+
+- **v0.6**: Merged as an ~org-modern~ extension.
+- **v0.5.1**: Small simplifications for block drawing.
+- **v0.5**: Another complete rewrite which substantially improves
+  performance and accuracy.  Now block detection uses ~org-element~
+  and the block styling is implemented in
+  ~before/after-change-functions~. Benefits include:
+  1. Higher performance and more reliable fontification.
+  2. Ability to detect and correctly treat _damaged_ blocks
+ (header/footer line altered or removed) as well as _merged_ blocks.
+  2. Caches all prefix strings for lower memory usage/GC churn.
+  3. No more "runaway" formatting when partial blocks are created:
+ only _real_ blocks (according to ~org-element~) are
+ 
+  Note that v0.5 implements indented block styling using display
+  properties on the indentation text, so navigation will "skip over"
+  it.
+- **v0.1**: features a complete re-write to use font-lock directly.  This
+  has a few benefits:
+  1. No longer relies on org-mode face names for recognizing
+ blocks, so ~org-src-block-faces~ can have arbitrary faces
+ applied, e.g. for different ~src~ languages, as in the screenshot.
+  2. Eliminates the "race" between font-locking and applying the prefix text 
properties.
+  3. Enables in-text bracket decorations for "bulk-indented" blocks, for 
example blocks situated
+ in an arbitrarily-nested plain list item.
+
+
diff --git a/README.org b/README.org
index e450926b55..fadd3652ae 100644
--- a/README.org
+++ b/README.org
@@ -22,9 +22,7 @@ syntax element individually via the =org-modern= 
customization group.
 [[https://github.com/minad/org-modern/blob/screenshots/example.gif?raw=true]]
 
 The screenshots shows [[file:example.org][example.org]] with =org-modern-mode= 
turned on and off. The
-elegant theme featured in the screenshot is 
[[https://protesilaos.com/emacs/modus-themes][modus-operandi]].  Since version 
2.0,
-this package incorporates ~org-modern-indent~; see [[./README-indent.md][its 
README]] for more information
-and a screenshot.
+elegant theme featured in the screenshot is 
[[https://protesilaos.com/emacs/modus-themes][modus-operandi]].
 
 Since this package adjusts text styling, it depends on your font settings. You
 should ensure that your =variable-pitch= and =fixed-pitch= fonts combine
@@ -122,12 +120,70 @@ An alternative setup, using ~use-package~:
 (org-agenda-finalize . org-modern-agenda))
 #+end_src
 
+
+* Indent
+
+Since version 2.0, this package incorporates ~org-modern-indent~, which 
provides block bracket styling when ~org-indent~ is enabled, including support 
for "bulk-indented" blocks nested within plain lists:
+
+https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5
+
+*Note*: non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.
+
 * Incompatibilities
 
 - =org-num-mode= interferes with the =org-modern= prettification of TODO 
keywords.
 - =visual-wrap-prefix-mode= relies on the =wrap-prefix= text property which is 
also
   used by =org-modern=.
 
+* Indentation Hints
+
+A few hints for managing indented blocks.
+
+** Bulk-indented blocks (e.g. within plain lists):
+
+Bulk-indented blocks have "real" (space/tab) indentation applied and managed 
by org.  This extra indentation is applied by org on _top_ of the (fake, 
prefix-based) indentation used by org-indent.  To nest blocks properly within 
such indented content, e.g. in plain list items, you only have to begin the 
~#+begin~ at the same level as the list element's text.
+
+As an important principle, ~org-modern-indent~ does not alter the contents of 
the text in your org documents, not even indentation.  It just styles what is 
there.  To help achieve proper block bulk-indented alignment, here are a few 
ways to alter blocks indentation using org and other commands:
+
+- **Start things right**: Hit return after your last line of text (e.g in a 
list item), then immediately hit =C-c C,= to create the desired block.  It will 
be indented at the right level:
+  
+  #+begin_sr

[elpa] externals/org-modern edbab4a407 018/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit edbab4a407b7ebf98b8de5fa750971854cbcd820
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 51773450bc..cc51da40ce 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
   (org-mode . org-modern-indent-mode))
 ```
 
-The default `fixed-pitch` font on Mac has line spacing >1.0, introducing gaps 
_even if you change the default font_.  To correct it: 
+The default `fixed-pitch` font on Mac (and perhaps elsewhere) has line spacing 
>1.0, introducing gaps _even if you change the default font_.  To correct it, 
add: 
 
 ```elisp
 (set-face-attribute 'fixed-pitch nil :family "Hack" :height 1.0) ; or whatever 
font family



[elpa] externals/org-modern d237c19185 032/105: improve flush and indented block marking and logic

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit d237c19185f5a8ebbb210c21e4675a31c4be0644
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

improve flush and indented block marking and logic

Saves block type ('flush or 'indent) at # char, restores original
prefix when moving from flush->indent block, and adds the wrap prefix
to the entire range of an indent block at once.
---
 org-modern-indent.el | 105 ++-
 1 file changed, 53 insertions(+), 52 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 83567f1418..4bed6f2ea5 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -85,72 +85,73 @@ of the returned vector."
 (defun org-modern-indent--block-bracket-flush ()
   "Insert brackets for org blocks flush with the line prefix."
   (let* ((lpf (get-text-property (point) 'line-prefix))
+(beg (match-beginning 0))
+(pind (match-beginning 2))
 (vec (org-modern-indent--block-bracket-prefix lpf))
-(pind (match-beginning 2)) ;start of #+begin_
 (block-start (min (line-end-position) (point-max
-(add-text-properties (point) block-start
-`( line-prefix ,(aref vec 0) wrap-prefix ,(aref vec 
1)))
-(put-text-property pind (1+ pind) 'org-modern-block-flush t)
-(while
-   (cond
-((eobp) nil)
-((looking-at "^[ \t]*#\\+\\(?:end\\|END\\)_")
- (add-text-properties (1+ block-start) (point)
-  `(line-prefix ,(aref vec 1) wrap-prefix ,(aref 
vec 1)))
- (add-text-properties (point) (min (line-end-position) (point-max))
-  `(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 2)))
- nil)
-(t (forward-line))
+(with-silent-modifications
+  (put-text-property pind (1+ pind) 'org-modern-indent-block-type 'flush)
+  (when vec
+   (add-text-properties beg block-start
+`( line-prefix ,(aref vec 0)
+   wrap-prefix ,(aref vec 1)))
+   (goto-char (match-end 0))
+   (when (re-search-forward "^[ \t]*#\\+\\(?:end\\|END\\)_" nil 'noerror)
+ (let ((b (line-beginning-position))
+   (p (line-beginning-position 2)))
+   (add-text-properties (1+ block-start) p
+`(line-prefix ,(aref vec 1) wrap-prefix ,(aref 
vec 1)))
+   (add-text-properties b (min (line-end-position) (point-max))
+`(line-prefix ,(aref vec 2) wrap-prefix ,(aref 
vec 2)
 
 (defun org-modern-indent--block-bracket-indented ()
   "Insert brackets on space-indented org blocks, e.g. within plain lists."
   (let* ((pf (get-text-property (point) 'line-prefix)) ; prefix from org-indent
 (pind (match-beginning 2)); at the #
-(flush (get-text-property pind 'org-modern-block-flush))
+(flush (eq (get-text-property pind 'org-modern-indent-block-type) 
'flush))
 (indent (current-indentation)) ; space up to #+begin_
 (block-indent (+ (point) indent))
 (search (concat "^[[:blank:]]\\{" (number-to-string indent) "\\}"))
 (wrap (concat (make-string (if pf (+ indent (length pf) -1) indent) 
?\s)
   org-modern-indent-guide))
 orig-prefix)
-(message "PINd: %S" pind)
-(when flush ; formerly this block was flush left
-  (message "Dealing with formerly flush left")
-  (setq pf (aref (org-modern-indent--block-bracket-prefix pf) 3)
-   orig-prefix `(line-prefix ,pf)) ; for resetting prefix to saved
-  (add-text-properties (point) (min (line-end-position) (point-max))
-  `(line-prefix ,pf wrap-prefix ,pf))
-  (put-text-property pind (1+ pind) 'org-modern-block-flush nil))
-
-(put-text-property (point) block-indent 'face nil)
-(put-text-property (1- block-indent) block-indent
-  'display org-modern-indent-begin)
-(while
-   (progn
- (add-text-properties
-   (point) (min (line-end-position) (point-max))
-   `(wrap-prefix ,wrap ,@orig-prefix))
- (forward-line)
- (setq block-indent (+ (point) indent))
- (let ((lep (line-end-position)))
-   (when (< block-indent lep)
- (put-text-property (point) block-indent 'face nil))
-   (cond
-((eobp) nil)
-((looking-at "^\\([ \t]*\\)#\\+\\(?:end\\|END\\)_")
- (if (>= (length (match-string 1)) indent)
- (put-text-property (1- block-indent) block-indent
-'display org-modern-indent-end))
- (when flush
-   (add-text-properties
-(point) (min (line-end-position) (point-max))
-`(wrap-prefix ,pf ,@orig-prefix)))
- nil)
-(

[elpa] externals/org-modern a2deeae174 014/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit a2deeae174a189cdb7b554a320b778bf62b518cf
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 6ef277b973..9313ca18d1 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
 # org-modern-indent
-`org-modern` and `org-indent`, working together
+Modern block styling with `org-indent`.
 
-[`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nice.  
But when `org-indent` is enabled, the block "bracket", which uses the fringe, 
is disabled.  
+[`org-modern`](https://github.com/minad/org-modern) provides a clean and 
efficient org style.  The blocks (e.g. source, example) are particularly nice.  
But when `org-indent` is enabled, the block "bracket", which uses the fringe 
area, is disabled.
 
-This small package reproduces the block styling of `org-modern`, even when 
`org-indent` is enabled. 
+This small package reproduces the block styling of `org-modern` when using 
`org-indent`:
 
 
 https://user-images.githubusercontent.com/93749/172438142-d4090856-dea8-43d0-a68a-bba29198575f.png>
@@ -11,7 +11,9 @@ This small package reproduces the block styling of 
`org-modern`, even when `org-
 
 ## Notes
 
-This package is only for users of `org-indent-mode`, and will enable indent if 
not set.  Non-zero `line-spacing` will introduce gaps between the block bracket 
characters.  Can be used _with or without_ `org-modern`. 
+- This package is only for users of `org-indent-mode`, and will _enable_ 
org-indent if it is not already.  
+- Can be used _with or without_ `org-modern`. 
+- Non-zero `line-spacing` will introduce gaps between the block bracket 
characters.  
 
 ## Configure
 
@@ -21,7 +23,7 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
 (use-package org-modern-indent
   ;; :straight or :load-path here, to taste
   :hook
-  (org-modern-mode . org-modern-indent-mode))
+  (org-mode . org-modern-indent-mode))
 ```
 
 ## Related packages



[elpa] externals/org-modern ca440cd414 084/105: major rewrite using org-element + before/after-change-functions

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit ca440cd41499ccbc664eb42ab457f177267fce33
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

major rewrite using org-element + before/after-change-functions

Includes an updated prefix string cache, and the use of a display
property alias `org-modern-indent-display' for indented block styling.
Note that the shorthand omi/ and :omi/ are also now adopted.
---
 README.md|  17 +-
 org-modern-indent.el | 509 +++
 2 files changed, 323 insertions(+), 203 deletions(-)

diff --git a/README.md b/README.md
index 556a331fd2..ee6f663dd9 100644
--- a/README.md
+++ b/README.md
@@ -10,8 +10,21 @@ This small package approximately reproduces the block 
styling of `org-modern` wh
 
 
 ## Updates
-
-- v0.1 features a complete re-write to use font-lock directly.  This has a few 
benefits: 
+- v0.5 Another complete rewrite which dramatically improves
+  performance and accuracy.  Now based on `org-element` and
+  implemented via `before/after-change-functions`. Benefits include:
+  1. Higher performance and more reliable fontification.
+  2. Ability to detect and correctly treat _damaged_ blocks
+ (header/footer line altered or removed) as well as _merged_ blocks.
+  2. Caches all prefix strings for lower memory usage/GC churn.
+  3. No more "runaway" formatting when partial blocks are created:
+ only _real_ blocks (according to `org-element`) are fontified.
+  
+  Note that v0.5 implements indented block styling using display
+  properties on the indentation text, so navigation will "skip over"
+  it.
+- v0.1 features a complete re-write to use font-lock directly.  This
+  has a few benefits:
   1. No longer relies on org-mode face names for recognizing
  blocks, so `org-src-block-faces` can have arbitrary faces
  applied, e.g. for different `src` languages, as in the screenshot.
diff --git a/org-modern-indent.el b/org-modern-indent.el
index 4d3cdd49a1..a294c5b469 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -1,10 +1,10 @@
-;;; org-modern-indent.el --- org-indent blocks like org-modern -*- 
lexical-binding: t; -*-
-;; Copyright (C) 2022-2024  J.D. Smith
+;;; org-modern-indent.el --- Indent blocks like org-modern -*- 
lexical-binding: t -*-
+;; Copyright (C) 2022-2025  J.D. Smith
 
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
-;; Package-Requires: ((emacs "27.1") (org "9.5.2") (compat "29.1.4.0"))
-;; Version: 0.1.4
+;; Package-Requires: ((emacs "27.1") (org "9.6.1") (compat "30.0"))
+;; Version: 0.5.0
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -
@@ -24,247 +24,354 @@
 
 ;;; Commentary:
 
-;; org-modern-indent provides the block highlighting of org-modern,
-;; when org-indent is enabled.
+;; org-modern-indent approximates the block highlighting style of
+;; org-modern, when org-indent is enabled.
 ;;   
-;; Can be used with or without org-modern enabled.
+;; Can be used with or without org-modern.
 
 ;;; Code:
 (require 'compat)
 (require 'org-indent)
+(require 'org-element)
 (eval-when-compile (require 'cl-lib))
 
+ Face and style
 (defgroup org-modern-indent nil
   "Org-modern style blocks which works with org-indent."
   :group 'org
   :prefix "org-modern-indent-")
 
 ;; Face for org-modern-indent line
-(defface org-modern-indent-bracket-line
+(defface omi/bracket-line
   '((t (:inherit (org-meta-line) :weight light)))
   "Face for bracket line in org-modern-indent."
   :group 'faces)
 
-(defconst org-modern-indent-begin (propertize "╭" 'face 
'org-modern-indent-bracket-line))
-(defconst org-modern-indent-guide (propertize "│" 'face 
'org-modern-indent-bracket-line))
-(defconst org-modern-indent-end   (propertize "╰" 'face 
'org-modern-indent-bracket-line))
+(defconst omi/begin (propertize "╭" 'face 'omi/bracket-line))
+(defconst omi/guide (propertize "│" 'face 'omi/bracket-line))
+(defconst omi/end   (propertize "╰" 'face 'omi/bracket-line))
 
-(defvar org-modern-indent-begin-re
+(defvar omi/begin-re
   "\\([ \t]*\\)\\(#\\+\\)\\(?:begin\\|BEGIN\\)_\\S-")
-(defvar org-modern-indent--font-lock-keywords
-  `((,(concat "^" org-modern-indent-begin-re)
- (0 (org-modern-indent--block-bracket)
-
-(defun org-modern-indent--block-bracket ()
-  "Prettify blocks with in-text brackets.
-For use with `org-indent'.  Uses either in-text brackets, for
-auto-indented org text (with real spaces in the buffer, e.g. in
-plain lists), or `line-prefix' brackets, when the #+begin part of
-the block is flush left in the buffer."
-  (save-excursion
-(goto-char (match-beginning 0))
-(if (= (length (match-string 1)) 0)
-   (org-modern-indent--block-bracket-flush)
-  (org-modern-indent--block-bracket-indented)))
-  nil)
-
-(defvar org-modern-indent--block-prefixes (make-hash-table :test 'eq))
-(defun org-modern-indent--block-bracket-prefix (prefi

[elpa] externals/org-modern 38d2cef27b 102/105: Improve README.org

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 38d2cef27b83bec53de32f711932dcb56acd6448
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Improve README.org
---
 README.org | 26 ++
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/README.org b/README.org
index fadd3652ae..9753947dc6 100644
--- a/README.org
+++ b/README.org
@@ -93,7 +93,7 @@ screenshot above after the installation of =org-modern=.
 (global-org-modern-mode)
 #+end_src
 
-An alternative setup, using ~use-package~:
+An alternative setup, using ~use-package~ and modifying some of the display 
entities:
 
 #+begin_src emacs-lisp
   (use-package org-modern
@@ -125,9 +125,11 @@ An alternative setup, using ~use-package~:
 
 Since version 2.0, this package incorporates ~org-modern-indent~, which 
provides block bracket styling when ~org-indent~ is enabled, including support 
for "bulk-indented" blocks nested within plain lists:
 
-https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5
+#+html: https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5";
 />
 
-*Note*: non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.
+~org-modern-indent~ is enabled by ~org-modern~ by default if you use 
~org-indent~; configure ~org-modern-indent-block=nil~ to disable this behavior. 
To activate ~org-indent-mode~ in all org files, set ~org-startup-indented=t~.  
+
+*Note*: Non-nil ~line-spacing~ is not recommended with ~org-modern-indent~, as 
it leads to gaps in the vertical bars drawn to indicate blocks.  
 
 * Incompatibilities
 
@@ -135,7 +137,7 @@ 
https://github.com/user-attachments/assets/7ca42ce7-dcfb-4c66-b5f4-1798a4fd4df5
 - =visual-wrap-prefix-mode= relies on the =wrap-prefix= text property which is 
also
   used by =org-modern=.
 
-* Indentation Hints
+* Block Indentation Hints
 
 A few hints for managing indented blocks.
 
@@ -150,20 +152,20 @@ As an important principle, ~org-modern-indent~ does not 
alter the contents of th
   #+begin_src org
  - This list item contains a:
- sublist, which holds a block:
-   [C-c C-,] here
+ [C-c C-,] here
   #+end_src

-- **Move flush left**: Note: =M-{= will get you to the start of a block 
quickly.  =M-\= at block start will move the block's first header line to 
column 0.  Then =M-S-left= (or =right=) will indent the full block.
-- **Indent rigidly**: =M-h= selects the entire block. Then =C-x TAB= enters 
"rigid indent" mode, after which left/right moves the entire block.
-- **Re-indent a block**: If you have a block that is partially aligned, 
perhaps with a "hanging end", like so:
+- *Move flush left*: Note: =M-{= will get you to the start of a block quickly. 
 =M-\= at block start will move the block's first header line to column 0.  
Then =M-S-left= (or =right=) will indent the full block.
+- *Indent rigidly*: =M-h= selects the entire block. Then =C-x TAB= enters 
"rigid indent" mode, after which left/right moves the entire block.
+- *Re-indent a block*: If you have a block that is partially aligned, perhaps 
with a "hanging end", like so:
   
   #+begin_src org

- List 1
- List 2
-,#+begin_src lang
- foo_lang(x)
-,#+end_src
+ ,#+begin_src lang
+foo_lang(x)
+ ,#+end_src
   #+end_src

   you can simply use =M-S-left/right= at block start (or in fact anywhere on 
the block header/footer) to ~org-indent-block~.  Note that 
~org-src-preserve-indentation=nil~ is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from ~org-indent-region~): 
@@ -180,7 +182,7 @@ The default ~fixed-pitch~ font (from which ~org-meta-line~ 
inherits) has line sp
 (set-face-attribute 'fixed-pitch nil :family "Hack" :height 1.0) ; or whatever 
font family
 #+end_src
 
-### The bracket style 
+*** The bracket style 
 
 If you'd like a different face than ~org-meta-line~ for the "bracket", 
configure the ~org-modern-indent-bracket-line~ face.
 



[elpa] externals/denote-sequence fd938da755 3/3: Update to denote-sequence 0.1.0

2025-04-15 Thread ELPA Syncer
branch: externals/denote-sequence
commit fd938da75573cc8b70e77ea00248c0c446613d43
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update to denote-sequence 0.1.0

The release notes will be available in the change log of Denote
version 4.0.0, which I will publish in a few minutes.
---
 denote-sequence.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/denote-sequence.el b/denote-sequence.el
index 9f8ca68348..c9499b76df 100644
--- a/denote-sequence.el
+++ b/denote-sequence.el
@@ -5,7 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Protesilaos Stavrou 
 ;; URL: https://github.com/protesilaos/denote-sequence
-;; Version: 0.0.0.1
+;; Version: 0.1.0
 ;; Package-Requires: ((emacs "28.1") (denote "3.1.0"))
 
 ;; This file is NOT part of GNU Emacs.



[elpa] externals/denote-sequence updated (c41c3dea4d -> fd938da755)

2025-04-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/denote-sequence.

  from  c41c3dea4d Make denote-sequence--get-files work with 
'denote-use-directory'
   new  93bcebc7ca Make denote-sequence--get-start return "1" when there is 
no sequence and the scheme is alphanumeric
   new  0d4ed45891 Update to denote-sequence 0.1.0
   new  fd938da755 Update to denote-sequence 0.1.0


Summary of changes:
 README.md  |  2 +-
 README.org |  8 
 denote-sequence.el | 10 ++
 3 files changed, 11 insertions(+), 9 deletions(-)



[elpa] externals/denote-sequence 93bcebc7ca 1/3: Make denote-sequence--get-start return "1" when there is no sequence and the scheme is alphanumeric

2025-04-15 Thread ELPA Syncer
branch: externals/denote-sequence
commit 93bcebc7ca3731e86808fb99d2c05e6901d938e4
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make denote-sequence--get-start return "1" when there is no sequence and 
the scheme is alphanumeric

Otherwise we cannot create the first parent when we are getting started.
---
 denote-sequence.el | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/denote-sequence.el b/denote-sequence.el
index 4679fc6986..9f8ca68348 100644
--- a/denote-sequence.el
+++ b/denote-sequence.el
@@ -517,9 +517,11 @@ optional PREPEND-DELIMITER is non-nil, prepend the equals 
sign to the
 number if `denote-sequence-scheme' is numeric."
   (pcase denote-sequence-scheme
 ('numeric (if prepend-delimiter "=1" "1"))
-('alphanumeric (if (denote-sequence--alphanumeric-partial-p (substring 
sequence -1))
-   "1"
- "a"
+('alphanumeric
+ (cond
+  ((null sequence) "1")
+  ((and sequence (denote-sequence--alphanumeric-partial-p (substring 
sequence -1))) "1")
+  (t "a")
 
 (defun denote-sequence--get-new-parent (&optional sequences)
   "Return a new to increment largest among sequences.



[elpa] externals/org-modern 8afea0fec4 065/105: disable org-modern-indent if 5 init tries exceeded in a buffer

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 8afea0fec48b998ae828a3170c1da5f49fbd8141
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

disable org-modern-indent if 5 init tries exceeded in a buffer
---
 org-modern-indent.el | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index c19771a080..17e7ee3586 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -170,8 +170,10 @@ returned."
   (if org-modern-indent--init
  (let ((cnt (cl-incf (cadr org-modern-indent--init
(if (> cnt 5)
-   (user-error
-"org-modern-indent: Gave up waiting for %s to initialize" buf)
+   (progn
+ (org-modern-indent-mode -1)
+ (user-error
+  "org-modern-indent: Gave up waiting for %s to initialize" 
buf))
  (timer-activate (timer-set-time (car org-modern-indent--init)
  (time-add (current-time) 0.2)
(setq



[elpa] externals/org-modern 52b46c6ecd 080/105: Merge pull request #19 from btobolaski/patch-1

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 52b46c6ecd63e627ab5bfb83c580b51f68a23774
Merge: 3793964555 664cff0dd1
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Merge pull request #19 from btobolaski/patch-1
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index d72c89f41f..6beebd6a1d 100644
--- a/README.md
+++ b/README.md
@@ -71,7 +71,7 @@ The default `fixed-pitch` font (from which `org-meta-line` 
inherits) has line sp
 ```
 ### The bracket style 
 
-If you'd like a different face than `org-meta-line` for the "bracket", 
configure the `org-modern-bracket-line` face.
+If you'd like a different face than `org-meta-line` for the "bracket", 
configure the `org-modern-indent-bracket-line` face.
 
 ### Related config
 



[elpa] externals/org-modern 9973bd3b91 093/105: Bump version

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 9973bd3b91e4733a3edd1fca232208c837c05473
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Bump version
---
 README.md| 10 ++
 org-modern-indent.el |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index ee6f663dd9..42d595002d 100644
--- a/README.md
+++ b/README.md
@@ -10,9 +10,11 @@ This small package approximately reproduces the block 
styling of `org-modern` wh
 
 
 ## Updates
-- v0.5 Another complete rewrite which dramatically improves
-  performance and accuracy.  Now based on `org-element` and
-  implemented via `before/after-change-functions`. Benefits include:
+- **v0.5.1**: Small simplifications for block drawing.
+- **v0.5**: Another complete rewrite which substantially improves
+  performance and accuracy.  Now block detection uses `org-element`
+  and the block styling is implemented in
+  `before/after-change-functions`. Benefits include:
   1. Higher performance and more reliable fontification.
   2. Ability to detect and correctly treat _damaged_ blocks
  (header/footer line altered or removed) as well as _merged_ blocks.
@@ -23,7 +25,7 @@ This small package approximately reproduces the block styling 
of `org-modern` wh
   Note that v0.5 implements indented block styling using display
   properties on the indentation text, so navigation will "skip over"
   it.
-- v0.1 features a complete re-write to use font-lock directly.  This
+- **v0.1**: features a complete re-write to use font-lock directly.  This
   has a few benefits:
   1. No longer relies on org-mode face names for recognizing
  blocks, so `org-src-block-faces` can have arbitrary faces
diff --git a/org-modern-indent.el b/org-modern-indent.el
index 2a6814884d..4ea13ebb5a 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -4,7 +4,7 @@
 ;; Author: J.D. Smith
 ;; Homepage: https://github.com/jdtsmith/org-modern-indent
 ;; Package-Requires: ((emacs "27.1") (org "9.6.1") (compat "30.0"))
-;; Version: 0.5.0
+;; Version: 0.5.1
 ;; Keywords: convenience
 ;; Prefix: org-modern-indent
 ;; Separator: -



[elpa] externals/org-modern 9bbe591c58 008/105: Store set-line-properties function def on load

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 9bbe591c585104dbcd6131733b8ac5418d743622
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Store set-line-properties function def on load
---
 org-modern-indent.el | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 7ced8215b2..722f918e9e 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -97,16 +97,17 @@ with a box guide unicode character."
(org-modern-indent--add-props change-beg change-end line extra-pad)))
   (forward-line))
 
-(defvar org-modern-indent-set-line-properties--orig nil)
+(defvar org-modern-indent-set-line-properties--orig
+  (symbol-function 'org-indent-set-line-properties)
+  "Original `org-indent-set-line-properties' function.")
+
 (define-minor-mode org-modern-indent-mode
   "Org-modern with org-indent"
   :global nil
   :group 'org-modern
   (if org-modern-indent-mode
   (progn
-   (setq org-modern-indent-set-line-properties--orig
- (symbol-function 'org-indent-set-line-properties)
- org-modern-indent-begin
+   (setq org-modern-indent-begin
  (propertize "╭" 'face 'org-meta-line)
  org-modern-indent-guide
  (propertize "│" 'face 'org-meta-line)



[elpa] externals/org-modern 1d020fcda0 002/105: Initial import

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 1d020fcda0bee9ac21ad7347ec825934a8076a34
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Initial import
---
 org-modern-indent.el | 122 +++
 1 file changed, 122 insertions(+)

diff --git a/org-modern-indent.el b/org-modern-indent.el
new file mode 100644
index 00..128f81c7d8
--- /dev/null
+++ b/org-modern-indent.el
@@ -0,0 +1,122 @@
+;;; org-modern-indent.el -*- lexical-binding: t; -*-
+;; Copyright (C) 2022  J.D. Smith
+
+;; Author: J.D. Smith
+;; Homepage: https://github.com/jdtsmith/org-modern-indent
+;; Package-Requires: ((emacs "27.2") (org "9.5.2") (org-modern)
+;; Version: 0.0.1
+;; Keywords: convenience
+;; Prefix: org-modern-indent
+;; Separator: -
+
+;; org-modern-indent is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation, either version 3 of the
+;; License, or (at your option) any later version.
+
+;; org-modern-indent is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see .
+
+;;; Commentary:
+
+;; org-modern-indent enables the block highlighting of org-modern,
+;; even when org-indent is enabled.
+;; Requires:
+;;   - org-modern
+;;   - org-indent-mode enabled
+
+;;; Code:
+(eval-when-compile
+  (require 'cl-lib))
+(require 'org-indent)
+(require 'org-modern)
+
+(defsubst org-modern-indent--face-in (face element)
+  (if (consp element)
+  (or (memq face element)
+ (if-let ((inh (plist-get element :inherit))) ; check inherited faces
+ (if (consp inh)
+ (memq face inh) (eq inh face
+(eq element face)))
+
+(defsubst org-modern-indent--add-props (beg end line extra-pad &optional guide 
wrap-guide)
+  (add-text-properties beg end
+  `(line-prefix
+,(concat line guide)
+wrap-prefix
+,(concat line (or wrap-guide guide) extra-pad
+
+(defvar org-modern-indent-begin nil)
+(defvar org-modern-indent-guidenil)
+(defvar org-modern-indent-end   nil)
+(defun org-modern-indent-set-line-properties (level indentation &optional 
heading)
+  "A redefinition of `org-indent-set-line-properties' for org-modern block 
style.
+Treats blocks specially, by extending the line and wrap prefixes
+with a box guide unicode character."
+  (let ((line (aref (pcase heading
+ (`nil org-indent--text-line-prefixes)
+ (`inlinetask org-indent--inlinetask-line-prefixes)
+ (_ org-indent--heading-line-prefixes))
+   level))
+   (extra-pad (if (> indentation 0)
+  (org-add-props
+  (if heading (concat (make-string level ?*) " ")
+(make-string indentation ?\s))
+  nil 'face 'org-indent)))
+   (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
+(or (when-let (((eq heading nil))
+  (face (get-text-property (point) 'face)))
+ (cond
+  ;; Block begin: use begin prefix, use guide for following blank line 
+ wrap
+  ((org-modern-indent--face-in 'org-block-begin-line face)
+   (org-modern-indent--add-props change-beg line-end line extra-pad
+ org-modern-indent-begin 
org-modern-indent-guide)
+   ;; possible blank line following
+   (org-modern-indent--add-props line-end change-end line extra-pad
+ org-modern-indent-guide))
+
+  ;; Block body: use guide prefix
+  ((org-modern-indent--face-in 'org-block face)
+   (org-modern-indent--add-props change-beg change-end line extra-pad
+ org-modern-indent-guide))
+
+  ;; Block end: use end prefix
+  ((org-modern-indent--face-in 'org-block-end-line face)
+   (org-modern-indent--add-props change-beg change-end line extra-pad
+ org-modern-indent-end
+   ;; Non-block line:  pad normally
+   (org-modern-indent--add-props change-beg change-end line extra-pad)))
+  (forward-line))
+
+(defvar org-modern-indent-set-line-properties--orig nil)
+(define-minor-mode org-moder

[elpa] externals/org-modern c8671f2af0 067/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit c8671f2af0537776762e17457fdbd04d9195d7ed
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 0493b422ea..47abdf5c2c 100644
--- a/README.md
+++ b/README.md
@@ -57,8 +57,8 @@ As an important principle, `org-modern-indent` does not alter 
the contents of th
```
   you can simply use `M-S-left/right` at block start (or in fact anywhere on 
the block header/footer) to `org-indent-block`.  Note that 
`org-src-preserve-indentation=nil` is an important setting, to allow org to 
(re-)indent blocks to respect the local indentation inside list and other 
elements.  Also note that (from `org-indent-region`): 
 
-  > [!NOTE]
-  > The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
+> [!NOTE]
+> The function will not indent contents of example blocks, verse blocks and 
export blocks as leading white spaces are assumed to be significant there.
 
 ### Font spacing
 



[elpa] externals/org-modern 3793964555 078/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 37939645552668f0f79a76c9eccc5654f6a3ee6c
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/README.md b/README.md
index 0cdb088f43..d72c89f41f 100644
--- a/README.md
+++ b/README.md
@@ -108,4 +108,3 @@ Also optional; use org-bullets instead for nicely aligned 
bullet stars.
 - [`org-modern`](https://github.com/minad/org-modern): A modern org styling.  
Works best without org-indent.
 - [`org-bullets`](https://github.com/sabof/org-bullets): Unicode heading 
bullet replacement.
 - [`org-superstar`](https://github.com/integral-dw/org-superstar-mode): 
Prettify headings and plain lists.
-- [`nano-emacs`](https://github.com/rougier/nano-emacs): Beautiful and simple 
SVG-based theme for much of emacs, including org. 



[elpa] externals/org-modern 747fa7ef2b 046/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit 747fa7ef2bc5e6145dd0d0e497c6b0c433c4b53b
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 7c6ec8655b..aefac1b81e 100644
--- a/README.md
+++ b/README.md
@@ -70,7 +70,7 @@ If you'd like a different face than `org-meta-line` for the 
"bracket", configure
 
 ### Related config
 
-Optionally, if you want to use org-modern too:
+Optionally, if you want to use 
[org-modern](https://github.com/minad/org-modern) too (I do), a suggested 
config:
 
 ```elisp
 (use-package org-modern



[elpa] externals/org-modern b722c64062 045/105: Update README.md

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit b722c64062f2d4d015358e59f81153fb1c47c7d5
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

Update README.md
---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 63b3138b1f..7c6ec8655b 100644
--- a/README.md
+++ b/README.md
@@ -45,9 +45,9 @@ As an important principle, `org-modern-indent` does not alter 
the contents of th
- sublist, which holds a block:
 [C-c C-,] here
```
-- **Move flush left** Note: `M-{` will get you to the start of a block 
quickly.  `M-\` at block start will move the block's first header line to 
column 0.  Then `M-S-left` (or `right`) will indent the full block.  
`org-src-preserve-indentation=t` will help with indenting `example` blocks 
(where org considers whitespace significant).
-- **Indent rigidly** `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, where left/right moves the entire block.
-- **Fix a block** If you have a block with a mis-aligned or "hanging end", 
like so:
+- **Move flush left**: Note: `M-{` will get you to the start of a block 
quickly.  `M-\` at block start will move the block's first header line to 
column 0.  Then `M-S-left` (or `right`) will indent the full block.  
`org-src-preserve-indentation=t` will help with indenting `example` blocks 
(where org considers whitespace significant).
+- **Indent rigidly**: `M-h` selects the entire block. Then `C-x TAB` enters 
"rigid indent" mode, after which left/right moves the entire block.
+- **Fix a block**: If you have a block with a misaligned or "hanging end", 
like so:
```org
- List 1
- List 2



[elpa] externals/org-modern baad0b6bde 020/105: Docs: hook to org-indent-mode instead of org-mode

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit baad0b6bde1b39568ad27b7f7c9b510087684b28
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Docs: hook to org-indent-mode instead of org-mode
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 8c8389ac9a..2f3a472438 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Be sure to enable `org-indent` (see `org-startup-indented`).
 (use-package org-modern-indent
   ;; :straight or :load-path here, to taste
   :hook
-  (org-mode . org-modern-indent-mode))
+  (org-indent-mode . org-modern-indent-mode))
 ```
 
 The default `fixed-pitch` font (from which `org-meta-line` inherits) has line 
spacing >1.0 on some systems. This will introduce gaps _even if your default 
font is changed_, and `line-space` is nil.  To correct it, add: 



[elpa] externals/org-modern d36dc621d8 021/105: Handle markup for block insertion correctly

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit d36dc621d8b2981b7d29ca6a9bf60279f15dae1e
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@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-guidenil)
 (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 e436abc3d4 009/105: Treat quote and verse blocks as well

2025-04-15 Thread ELPA Syncer
branch: externals/org-modern
commit e436abc3d43f58941c7f2d2fe7d2bed05f31f75a
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

Treat quote and verse blocks as well
---
 org-modern-indent.el | 29 ++---
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/org-modern-indent.el b/org-modern-indent.el
index 722f918e9e..01e81be4f3 100644
--- a/org-modern-indent.el
+++ b/org-modern-indent.el
@@ -35,14 +35,20 @@
   (require 'cl-lib))
 (require 'org-indent)
 (require 'org-modern)
+(require 'seq)
 
-(defsubst org-modern-indent--face-in (face element)
-  (if (consp element)
-  (or (memq face element)
- (if-let ((inh (plist-get element :inherit))) ; check inherited faces
- (if (consp inh)
- (memq face inh) (eq inh face
-(eq element face)))
+(defun org-modern-indent--face-in (faces element)
+  "Determine if any of FACES are present in ELEMENT.
+FACES must be a list.  A face can be 'present' by being named
+explicitly, or inherited."
+  (cl-loop for face in faces
+  if (cond ((consp element)
+(or (memq face element)
+(if-let ((inh (plist-get element :inherit))) 
+(if (consp inh)
+(memq face inh) (eq inh face)
+   (t (eq element face)))
+  return t))
 
 (defsubst org-modern-indent--add-props (beg end line extra-pad &optional guide 
wrap-guide)
   (add-text-properties beg end
@@ -77,7 +83,7 @@ with a box guide unicode character."
   (face (get-text-property (point) 'face)))
  (cond
   ;; Block begin: use begin prefix, use guide for following blank line 
+ wrap
-  ((org-modern-indent--face-in 'org-block-begin-line face)
+  ((org-modern-indent--face-in '(org-block-begin-line) face)
(org-modern-indent--add-props change-beg line-end line extra-pad
  org-modern-indent-begin 
org-modern-indent-guide)
;; possible blank line following
@@ -85,15 +91,15 @@ with a box guide unicode character."
  org-modern-indent-guide))
 
   ;; Block body: use guide prefix
-  ((org-modern-indent--face-in 'org-block face)
+  ((org-modern-indent--face-in '(org-block org-quote org-verse) face)
(org-modern-indent--add-props change-beg change-end line extra-pad
  org-modern-indent-guide))
 
   ;; Block end: use end prefix
-  ((org-modern-indent--face-in 'org-block-end-line face)
+  ((org-modern-indent--face-in '(org-block-end-line) face)
(org-modern-indent--add-props change-beg line-end line extra-pad
  org-modern-indent-end
-   ;; Non-block line:  pad normally
+   ;; Non-block line: pad normally
(org-modern-indent--add-props change-beg change-end line extra-pad)))
   (forward-line))
 
@@ -113,6 +119,7 @@ with a box guide unicode character."
  (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)))
 (setf (symbol-function 'org-indent-set-line-properties)



  1   2   >