[nongnu] elpa/magit 1b169115ba 1/2: magit-am: Remove duplicated binding for --signoff

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 1b169115ba0e5d2a758aa8b54c221adfabeb6917
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-am: Remove duplicated binding for --signoff
---
 lisp/magit-sequence.el | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lisp/magit-sequence.el b/lisp/magit-sequence.el
index 530e44363b..209b00e894 100644
--- a/lisp/magit-sequence.el
+++ b/lisp/magit-sequence.el
@@ -439,7 +439,6 @@ without prompting."
("-b" "Limit removal of email cruft"  "--keep-non-patch")
("-d" "Use author date as committer date" "--committer-date-is-author-date")
("-t" "Use current time as author date"   "--ignore-date")
-   ("-s" "Add Signed-off-by lines"   ("-s" "--signoff"))
(magit:--gpg-sign)
(magit:--signoff)]
   ["Apply"



[nongnu] elpa/magit 689716648c 2/2: magit:--signoff: Use different key to avoid conflicts

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 689716648c883d546a018c9bb550f1179941c94b
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit:--signoff: Use different key to avoid conflicts
---
 CHANGELOG | 3 +++
 lisp/magit.el | 1 +
 2 files changed, 4 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index bf6b6b040f..1117135f57 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,9 @@ Bugfixes:
 - Some arguments were missing from diff menus when invoked from
   the status buffer.  #5309
 
+- In some menus the bindings for ~--signoff~ conflicted with those for
+  other arguments.  #5312
+
 * v4.3.02025-02-04
 
 - Added new option ~magit-refs-show-branch-descriptions~.  42ed6c1966
diff --git a/lisp/magit.el b/lisp/magit.el
index 3f721acf46..c076f4dbf4 100644
--- a/lisp/magit.el
+++ b/lisp/magit.el
@@ -504,6 +504,7 @@ is run in the top-level directory of the current working 
tree."
 (transient-define-argument magit:--signoff ()
   :description "Add Signed-off-by trailer"
   :class 'transient-switch
+  :key "+s"
   :shortarg "-s"
   :argument "--signoff"
   :level 6)



[nongnu] branch elpa/magit-section created (now 689716648c)

2025-02-09 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/magit-section.

at  689716648c magit:--signoff: Use different key to avoid conflicts

No new revisions were added by this update.



[nongnu] elpa/magit updated (085baa2ac9 -> 689716648c)

2025-02-09 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/magit.

  from  085baa2ac9 magit-{previous,next}-reference: New commands
   new  1b169115ba magit-am: Remove duplicated binding for --signoff
   new  689716648c magit:--signoff: Use different key to avoid conflicts


Summary of changes:
 CHANGELOG  | 3 +++
 lisp/magit-sequence.el | 1 -
 lisp/magit.el  | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)



[nongnu] branch elpa/magit-section deleted (was 689716648c)

2025-02-09 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/magit-section.

   was  689716648c magit:--signoff: Use different key to avoid conflicts

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] elpa/haskell-mode 80054782bf 3/3: Merge pull request #1863 from zaz/load-and-run-expr

2025-02-09 Thread ELPA Syncer
branch: elpa/haskell-mode
commit 80054782bf1f981d448e542975ea59ea6407f5d1
Merge: 495fb9688e 238bb62622
Author: Steve Purcell 
Commit: GitHub 

Merge pull request #1863 from zaz/load-and-run-expr

Load and run expr
---
 haskell.el | 12 
 1 file changed, 12 insertions(+)

diff --git a/haskell.el b/haskell.el
index 1b358051c9..eae8d2b9f8 100644
--- a/haskell.el
+++ b/haskell.el
@@ -38,6 +38,7 @@
 (defvar interactive-haskell-mode-map
   (let ((map (make-sparse-keymap)))
 (define-key map (kbd "C-c C-l") 'haskell-process-load-file)
+(define-key map (kbd "C-c RET") 'haskell-load-and-run)  ;; == C-c C-m
 (define-key map (kbd "C-c C-r") 'haskell-process-reload)
 (define-key map (kbd "C-c C-t") 'haskell-process-do-type)
 (define-key map (kbd "C-c C-i") 'haskell-process-do-info)
@@ -397,6 +398,17 @@ Give optional NEXT-P parameter to override value of
 nil
 (current-buffer)))
 
+(defvar haskell-load-and-run-expr-history nil
+  "History of expressions used in `haskell-load-and-run'.")
+
+(defun haskell-load-and-run (expr)
+  "Load the current buffer and run EXPR, e.g. \"main\"."
+  (interactive (list (read-string "Run expression: "
+  (car haskell-load-and-run-expr-history)
+  'haskell-load-and-run-expr-history)))
+  (haskell-process-load-file)
+  (haskell-interactive-mode-run-expr expr))
+
 ;;;###autoload
 (defun haskell-process-reload ()
   "Re-load the current buffer file."



[nongnu] elpa/haskell-mode 8ab625efe9 1/3: add function: C-c RET loads & runs current buffer

2025-02-09 Thread ELPA Syncer
branch: elpa/haskell-mode
commit 8ab625efe94aeffeb9e6427cb0af5329c52ab389
Author: Zaz Brown 
Commit: Zaz Brown 

add function: C-c RET loads & runs current buffer

Alternatively, C-c C-m can be used.
---
 haskell.el | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/haskell.el b/haskell.el
index 1b358051c9..3bb546b8df 100644
--- a/haskell.el
+++ b/haskell.el
@@ -38,6 +38,7 @@
 (defvar interactive-haskell-mode-map
   (let ((map (make-sparse-keymap)))
 (define-key map (kbd "C-c C-l") 'haskell-process-load-file)
+(define-key map (kbd "C-c RET") 'haskell-load-and-run)  ;; == C-c C-m
 (define-key map (kbd "C-c C-r") 'haskell-process-reload)
 (define-key map (kbd "C-c C-t") 'haskell-process-do-type)
 (define-key map (kbd "C-c C-i") 'haskell-process-do-info)
@@ -397,6 +398,12 @@ Give optional NEXT-P parameter to override value of
 nil
 (current-buffer)))
 
+(defun haskell-load-and-run ()
+  "Loads the current buffer and runs the main function."
+  (interactive)
+  (haskell-process-load-file)
+  (haskell-interactive-mode-run-expr "main"))
+
 ;;;###autoload
 (defun haskell-process-reload ()
   "Re-load the current buffer file."



[nongnu] elpa/haskell-mode 238bb62622 2/3: add haskell-load-and-run-expr-history

2025-02-09 Thread ELPA Syncer
branch: elpa/haskell-mode
commit 238bb6262218d5eed02ce7a9cec54c07f9c8cad4
Author: Steve Purcell 
Commit: Zaz Brown 

add haskell-load-and-run-expr-history
---
 haskell.el | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/haskell.el b/haskell.el
index 3bb546b8df..eae8d2b9f8 100644
--- a/haskell.el
+++ b/haskell.el
@@ -398,11 +398,16 @@ Give optional NEXT-P parameter to override value of
 nil
 (current-buffer)))
 
-(defun haskell-load-and-run ()
-  "Loads the current buffer and runs the main function."
-  (interactive)
+(defvar haskell-load-and-run-expr-history nil
+  "History of expressions used in `haskell-load-and-run'.")
+
+(defun haskell-load-and-run (expr)
+  "Load the current buffer and run EXPR, e.g. \"main\"."
+  (interactive (list (read-string "Run expression: "
+  (car haskell-load-and-run-expr-history)
+  'haskell-load-and-run-expr-history)))
   (haskell-process-load-file)
-  (haskell-interactive-mode-run-expr "main"))
+  (haskell-interactive-mode-run-expr expr))
 
 ;;;###autoload
 (defun haskell-process-reload ()



[nongnu] elpa/haskell-mode updated (495fb9688e -> 80054782bf)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch elpa/haskell-mode.

  from  495fb9688e Merge pull request #1806 from cnngimenez/master
   new  8ab625efe9 add function: C-c RET loads & runs current buffer
   new  238bb62622 add haskell-load-and-run-expr-history
   new  80054782bf Merge pull request #1863 from zaz/load-and-run-expr


Summary of changes:
 haskell.el | 12 
 1 file changed, 12 insertions(+)



[nongnu] elpa/gptel d57eb9896e: gptel-transient: Improve parsing of crowdsourced prompts CSV file (#615)

2025-02-09 Thread ELPA Syncer
branch: elpa/gptel
commit d57eb9896eb1d1f9dc19a420c3e88498f2898780
Author: Henrik Ahlgren 
Commit: GitHub 

gptel-transient: Improve parsing of crowdsourced prompts CSV file (#615)

* gptel-transient.el (gptel--crowdsourced-prompts): Improve parsing by
supporting CSV fields that are not quoted.

(gptel--read-csv-column): Function to read next CSV column in the
current buffer.
---
 gptel-transient.el | 28 
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/gptel-transient.el b/gptel-transient.el
index ae7f2e5a73..b3b9dffe68 100644
--- a/gptel-transient.el
+++ b/gptel-transient.el
@@ -215,6 +215,22 @@ OBJ is a tool-infix of type `gptel--switch'."
   (make-hash-table :test #'equal)
   "Crowdsourced LLM system prompts.")
 
+(defun gptel--read-csv-column ()
+  "Read next CSV column in the current buffer.
+
+Supports both quoted and non-quoted columns (RFC 4180)."
+  (let ((start (point)))
+(unless (eolp)
+  (let ((column
+(if (eq (char-after) ?\")
+(when (re-search-forward "\",\\|\"$" nil t)
+  (let ((end (match-beginning 0)))
+(buffer-substring-no-properties (+ start 1) (if (eolp) (- 
end 1) end
+  (when (search-forward "," (line-end-position) t)
+(let ((end (match-beginning 0)))
+  (buffer-substring-no-properties start end))
+   (string-replace "\"\"" "\"" column)
+
 (defun gptel--crowdsourced-prompts ()
   "Acquire and read crowdsourced LLM system prompts.
 
@@ -252,14 +268,10 @@ which see."
   (goto-char (point-min))
   (forward-line 1)
   (while (not (eobp))
-(when-let ((act (read (current-buffer
-  (forward-char)
-  (save-excursion
-(while (re-search-forward "\"\"" (line-end-position) t)
-  (replace-match "\"")))
-  (when-let ((prompt (read (current-buffer
-(puthash act prompt gptel--crowdsourced-prompts)))
-(forward-line 1)
+   (when-let* ((act (gptel--read-csv-column))
+   (prompt (gptel--read-csv-column)))
+   (puthash act prompt gptel--crowdsourced-prompts))
+ (forward-line 1)
 gptel--crowdsourced-prompts))
 
 



[nongnu] elpa/dirvish 7bb9d81f8a 04/18: refactor(core): rename `dirvish--window-selected-p`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 7bb9d81f8a993aaee917b0990ba736301befe6e2
Author: Alex Lu 
Commit: Alex Lu 

refactor(core): rename `dirvish--window-selected-p`
---
 dirvish-widgets.el |  3 +--
 dirvish.el | 10 ++
 extensions/dirvish-fd.el   |  3 +--
 extensions/dirvish-side.el |  2 +-
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/dirvish-widgets.el b/dirvish-widgets.el
index 13de8643c5..f7fbe2ebd9 100644
--- a/dirvish-widgets.el
+++ b/dirvish-widgets.el
@@ -307,9 +307,8 @@ GROUP-TITLES is a list of group titles."
 (dirvish-define-mode-line path
   "Path of file under the cursor."
   (let* ((directory-abbrev-alist nil) ; TODO: support custom 
`directory-abbrev-alist'
- (dv (dirvish-curr))
  (index (dired-current-directory))
- (face (if (dirvish--window-selected-p dv) 'dired-header 'shadow))
+ (face (if (dirvish--selected-p) 'dired-header 'shadow))
  (rmt (dirvish-prop :remote))
  (abvname (if rmt (file-local-name index) (abbreviate-file-name 
index)))
  (host (propertize (if rmt (concat " " (substring rmt 1)) "")
diff --git a/dirvish.el b/dirvish.el
index b060ff714a..a8e608a2ba 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -431,10 +431,12 @@ ALIST is window arguments passed to 
`window--display-buffer'."
   entry
 (complete-with-action action completions string pred)
 
-(defun dirvish--window-selected-p (dv)
-  "Return t if session DV is selected."
-  (eq (if (car (dv-layout dv)) (dv-root-window dv) (frame-selected-window))
-  dirvish--selected-window))
+(defun dirvish--selected-p (&optional dv)
+  "Return t if session DV is selected.
+DV defaults to `dirvish-curr'."
+  (let ((dv (or dv (dirvish-curr
+(eq (if (car (dv-layout dv)) (dv-root-window dv) (frame-selected-window))
+dirvish--selected-window)))
 
 (defun dirvish--scopes ()
   "Return computed scopes according to `dirvish-scopes'."
diff --git a/extensions/dirvish-fd.el b/extensions/dirvish-fd.el
index 933a5a3374..a638113d99 100644
--- a/extensions/dirvish-fd.el
+++ b/extensions/dirvish-fd.el
@@ -218,8 +218,7 @@ Raise an error if fd executable is not available."
   "Return a formatted string showing the DIRVISH-FD-ACTUAL-SWITCHES."
   (pcase-let ((`(,globp ,casep ,ign-range ,types ,exts ,excludes)
(dirvish-prop :fd-arglist))
-  (face (if (dirvish--window-selected-p (dirvish-curr))
-'dired-header 'shadow)))
+  (face (if (dirvish--selected-p) 'dired-header 'shadow)))
 (format "  %s | %s"
 (propertize "FD" 'face face)
 (if (not (dirvish-prop :fd-time))
diff --git a/extensions/dirvish-side.el b/extensions/dirvish-side.el
index 96699d9660..6571ef761a 100644
--- a/extensions/dirvish-side.el
+++ b/extensions/dirvish-side.el
@@ -145,7 +145,7 @@ filename until the project root when opening a side 
session."
 (dirvish-define-mode-line project
   "Return a string showing current project."
   (let ((project (dirvish--get-project-root))
-(face (if (dirvish--window-selected-p (dirvish-curr)) 'dired-header 
'shadow)))
+(face (if (dirvish--selected-p) 'dired-header 'shadow)))
 (if project
 (setq project (file-name-base (directory-file-name project)))
   (setq project "-"))



[elpa] branch externals/lv deleted (was 54e9db2b02)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch externals/lv.

   was  54e9db2b02 Fix packaging of `lv` and use lexical-binding and 
nadvice everywhere

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] main dde46e3d82: elpa-packages (base32, flx-ido, magit-section, stylus-mode): Make subpackages

2025-02-09 Thread Stefan Monnier via
branch: main
commit dde46e3d82a33b2f50ed9725b447a6b7ab70d19b
Author: Stefan Monnier 
Commit: Stefan Monnier 

elpa-packages (base32, flx-ido, magit-section, stylus-mode): Make 
subpackages
---
 elpa-packages | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/elpa-packages b/elpa-packages
index 80df6f597d..71dc5254f7 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -51,7 +51,7 @@
  (autothemer   :url "https://github.com/jasonm23/autothemer.git";
   :readme "README.md")
 
- (base32   :url "https://gitlab.com/fledermaus/totp.el";
+ (base32   :url totp-auth
   :ignored-files ("totp-auth*.el" "Makefile" "*.md" "*.html" "tests" "README")
   :readme ignore ;; The README is for `totp-auth'.
   :version-map   (("0.2" "1.0" "v1.0")))
@@ -273,7 +273,7 @@
   :ignored-files (".travis.yml" "LICENSE"
   "flx-ido.el" "misc/flx-ido-demo.el" "misc/flx-test-list.el"))
 
- (flx-ido  :url "https://github.com/lewang/flx";
+ (flx-ido  :url flx
   :readme ignore
   :ignored-files (".travis.yml" "Cask" "LICENSE" "tests" "Makefile"
   "flx.el" "misc/flx-helm-demo.el" "misc/flx-test-list.el"))
@@ -506,7 +506,7 @@
"default.mk" "Makefile" "lisp/Makefile"
"lisp/magit-section.el"))
 
- (magit-section:url "https://github.com/magit/magit";
+ (magit-section:url magit
   ;; The author of this package views its branch in the NonGNU ELPA
   ;; repository as nothing but a distribution mechanism, and requests
   ;; that you make no changes whatsoever to that branch, and instead
@@ -824,7 +824,7 @@
  (sqlite3   :url "https://github.com/pekingduck/emacs-sqlite3-api";
   :ignored-files ("LICENSE" "tests" "tools"))
 
- (stylus-mode  :url "https://github.com/brianc/jade-mode";
+ (stylus-mode  :url jade-mode
   :ignored-files ("test" "Cask" "Makefile" "example.jade" "example.json"
  "jade-mode.el"))
 



[nongnu] branch elpa/flx-ido deleted (was 4b1346eb9a)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch elpa/flx-ido.

   was  4b1346eb9a Merge pull request #116 from 
LemonBreezes/enable-lexical-binding

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] branch elpa/base32 deleted (was af2ca2f062)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch elpa/base32.

   was  af2ca2f062 totp-auth-add-secret: Use read-passwd to read the secret

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] branch elpa/magit-section deleted (was 085baa2ac9)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch elpa/magit-section.

   was  085baa2ac9 magit-{previous,next}-reference: New commands

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] branch elpa/stylus-mode deleted (was 1ad7c51f3c)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch elpa/stylus-mode.

   was  1ad7c51f3c Merge pull request #72 from he-la/master

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[elpa] externals/blist 51525677f6 4/9: blist: Fix a defcustom type.

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit 51525677f685e39e2bec1a68847c52ade63b2189
Author: JSDurand 
Commit: JSDurand 

blist: Fix a defcustom type.

* blist.el (blist-show-item-num-p): A call of defcustom should specify
  its type.  Fix this issue now.
---
 blist.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/blist.el b/blist.el
index 290bb53a81..3273e1742d 100644
--- a/blist.el
+++ b/blist.el
@@ -435,7 +435,8 @@ list; they are simply ignored."
  Whether to show the number of items
 
 (defcustom blist-show-item-num-p nil
-  "If non-nil, the number of items is shown in the group header.")
+  "If non-nil, the number of items is shown in the group header."
+  :type 'boolean)
 
 ;;; Variables
 



[elpa] externals/blist ec1b6bd2fa 6/9: blist: Bump version to 0.5

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit ec1b6bd2fa110a0ac9484145d4a8df9c261877ce
Author: JSDurand 
Commit: JSDurand 

blist: Bump version to 0.5
---
 blist.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/blist.el b/blist.el
index 3273e1742d..b57d024e39 100644
--- a/blist.el
+++ b/blist.el
@@ -6,7 +6,7 @@
 ;; Keywords: convenience
 ;; URL: https://gitlab.com/mmemmew/blist
 ;; Package-Requires: ((ilist "0.4") (emacs "24"))
-;; Version: 0.4
+;; Version: 0.5
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by



[elpa] externals/blist a41af4fc54 3/9: Add documentation.

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit a41af4fc54fc7cae564591dc15d2396400ba9436
Author: JSDurand 
Commit: JSDurand 

Add documentation.

Now the documentation also records the option `blist-select-manner`
and its various options.  It also contains a detailed description of
the tab naming process now.
---
 README.org| 123 +-
 blist.texinfo | 169 +-
 2 files changed, 290 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index 02f45f7f27..bad5822d15 100644
--- a/README.org
+++ b/README.org
@@ -327,7 +327,128 @@ group) at point.
 - =o=: Open the bookmark in another window.
 - =v=: Select the bookmarks (the MG0-convention).  How multiple
   bookmarks are opened is controlled by the variable
-  =blist-select-manner=.  See its documentation for details.
+  =blist-select-manner=.  This will be detailed in the following
+  subsection.
+  
+*** Opening multiple bookmarks
+
+The function =blist-select= can open multiple bookmarks at the same
+time.  It opens the bookmarks selected according to the
+MG0-convention, as the above already said.  Now we will see how these
+multiple bookmarks are opened.
+
+If the finction =blist-select= is invoked without prefix argument, the
+variable =blist-select-manner= will be used to determine the way
+multiple bookmarks are opened; otherwise, it will prompt the user and
+read a list of opening options.
+
+As a quick summary, if the list does not contain /left/, it means to
+use /right/; if no /up/, it means /down/; if no /vertical/, it means
+/horizontal/.
+
+There will be no errors if there are unrecognized symbols in the list:
+they are simply ignored.
+
+To be more precise, the variable =blist-select-manner= controls how
+the windows that hold the opened bookmarks will be placed, as follows:
+
+- /vertical/: The windows will be placed in a /vertical/ direction.
+  Its direction is upwards or downwards, according to further options
+  below.
+- /horizontal/: The windows will be placed in a /horizontal/
+  direction.  Its direction is leftwards or rightwards, according to
+  further options below.
+
+  If both /vertical/ and /horizontal/ are present, /vertical/ take
+  precedence.
+- /spiral/: The windows are opened in a spiral manner: first a window
+  is opened below (or above) the reference window, then another window
+  is opened to the left (or right) of the first window, with size half
+  that of the first window.  This process of vertical / horizontal
+  alteration continues afterwards.
+
+  The up / down / left / right direction is determined by the
+  options below.
+- /main-side/: The first window is opened as the main window, and the
+  other windows are put in side slides.  If /vertical/ is present, the
+  side windows are either at the bottom or at the top; otherwise the
+  side windows are either at the left or at the right.  This takes
+  precedence over /spiral/.
+- /left/, /right/, /up/, /down/: Determines the direction of opening
+  windows.  The precedence relation is that /left/ takes precedence
+  over /right/ and /up/ over /down/.
+- /onetab/: All the windows and bookmarks are opened in a new tab.
+
+  If =blist-select= is invoked with a prefix argument, the function
+  will prompt the user for a name of the new tab.  The user can leave
+  the name empty, and then the name of the new tab will be determined
+  automatically.  The bookmark names of the selected items will be
+  available through the histories while entering the name of the new
+  tab.
+
+  Note that this requires the package =tab-bar=.
+- /one-per-tab/: A new tab will be created for each bookmark.  If this
+  option is present, all other options will be ignored, as each
+  bookmark is opened as the only window in the dedicated tab, and
+  there is no need to bother with the window directions.  The tab for
+  the first item will be selected after the execution of this
+  function.
+
+  The names of the new tabs will be determined in the following
+  manner:
+
+  After creating a tab and jumping to the corresponding bookmark in
+  that tab, the user will be prompted for how to name the tab.  The
+  user has the following options.
+  + =y=: The user will be prompted for the name of the new tab.  The
+user can leave the name empty for automatic naming.
+
+  + =Y=: For each following item, it will be assumed that the user
+will enter =y=.
+
+  + =n=: The tab name will not be modified.
+
+The user can also enter some (possibly negative) number before
+entering =n=, and that number of tabs will be skipped.
+
+  + =N=, =!=: For each following item, it will be assumed that the
+user will enter =n=.
+
+  + =b=: The name of the new tab will be the name of the corresponding
+bookmark.
+
+  + =B=, ===: For each following item, it will be assumed that the
+user will enter =b=.
+
+  + =p=: The function will jump to the previous tab and run the same
+

[elpa] externals/blist updated (abf7cc1d6d -> e3894193fd)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/blist.

  from  abf7cc1d6d ChangeLog: Document the new feature.
   new  03d0807e4f gitignore: Ignore synctex files as well.
   new  49f11d95aa blist.el: Refine the process of asking for tab names
   new  a41af4fc54 Add documentation.
   new  51525677f6 blist: Fix a defcustom type.
   new  a47da63fed ChangeLog: Update changelog.
   new  ec1b6bd2fa blist: Bump version to 0.5
   new  3e6947c00f blist: Fix wrong handling of negative arguments
   new  999ce63066 Update changelog
   new  e3894193fd blist: Bump version to 0.6


Summary of changes:
 .gitignore|   1 +
 ChangeLog |  24 
 README.org| 123 -
 blist.el  | 414 ++
 blist.texinfo | 169 +++-
 5 files changed, 645 insertions(+), 86 deletions(-)



[elpa] externals/blist 49f11d95aa 2/9: blist.el: Refine the process of asking for tab names

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit 49f11d95aa576f98115fc02db88498d735bb2e9e
Author: JSDurand 
Commit: JSDurand 

blist.el: Refine the process of asking for tab names

Now the tab names are determined at the same time bookmarks are jumped
to, so that we do not risk opening the same bookmark twice, causing
some unwanted consequences.

Also the user experience of giving names to new tabs is refined as
well: the user can either choose manual names, the bookmark names, or
the automatic naming for the new tabs.  The user can even roll back a
tab if the user wants to undo some names.
---
 blist.el | 406 ++-
 1 file changed, 324 insertions(+), 82 deletions(-)

diff --git a/blist.el b/blist.el
index fe56f8fcc3..290bb53a81 100644
--- a/blist.el
+++ b/blist.el
@@ -813,35 +813,26 @@ bookmark before jumping."
 
 ; Prepare windows
 
-(defun blist-prepare-select-windows (num manner)
+(defun blist-prepare-select-windows (num manner name)
   "Create and return NUM windows according to MANNER.
 
 NUM should be a positive integer.
 
 See `blist-select-manner' for what MANNER should look like.
 
-Return a list of cons cells of the form
+If NAME is a string and if `onetab' belongs to MANNER, then the
+new tab created to hold the created windows will be named NAME.
 
-(WINDOW . TAB-INDEX)
+NOTE that it is undefined behaviour, if `one-per-tab' belongs to
+MANNER.
 
-where WINDOW is the prepared window and TAB-INDEX is the index of
-the prepared tab that can be fed to the function
-`tab-bar-select-tab'.  If no tab is prepared, this returned index
-is nil."
+Return the list of created windows."
   (cond
((or (not (integerp num))
 (<= num 0))
 (error "NUM should be a positive integer, but got %S" num)))
-  ;; tab bar index starts from 1, but `tab-bar--current-tab-index'
-  ;; starts from 0.
-  (let* ((one-per-tab (memq 'one-per-tab manner))
- (mainp (memq 'main-side manner))
+  (let* ((mainp (memq 'main-side manner))
  (tabp (cond (mainp nil) ((memq 'onetab manner
- (orig-tab-index
-  (cond
-   ((or one-per-tab tabp)
-(require 'tab-bar)
-(1+ (tab-bar--current-tab-index)
  (verticalp (memq 'vertical manner))
  (leftp (memq 'left manner))
  (upp (memq 'up manner))
@@ -860,66 +851,304 @@ is nil."
  (orig-window (selected-window))
  temp-window windows main-side-splitted-p)
 (cond (tabp
+   (require 'tab-bar)
(tab-bar-new-tab)
-   (setq orig-tab-index (1+ (tab-bar--current-tab-index)
-(cond
- (one-per-tab
-  (let ((firstp t))
-(while (> num 0)
-  (tab-bar-new-tab)
-  (cond
-   (firstp
-(select-window
- (split-window (frame-root-window) nil 'below))
-(delete-other-windows)
-(setq firstp nil)))
-  (setq windows (cons
- (cons (selected-window)
-   (1+ (tab-bar--current-tab-index)))
- windows))
-  (setq num (1- num)
- (t
-  ;; create a new window so that we are not inside some window
-  ;; that cannot be splitted, like a side window
-  (select-window (split-window (frame-root-window) nil 'below))
-  (delete-other-windows)
-  (setq orig-window (selected-window))
-  (setq windows (cons (cons orig-window orig-tab-index) windows))
-  (setq temp-window orig-window)
-  (setq num (1- num))
-  (while (> num 0)
-(setq
- temp-window
- (split-window temp-window
-   (cond
-((and mainp (not main-side-splitted-p))
- nil)
-(size))
-   (cond
-(current-direction
- ;; vertical
- (cond (upp 'above) ('below)))
-;; horizontal
-(leftp 'left)
-('right
-(setq windows
-  (cons (cons temp-window orig-tab-index) windows))
-;; change direction for spirals and change direction only once
-;; for main-side
-(cond (spiralp
-   (setq current-direction (not current-direction))
-   ;; spirals change the horizontal / vertical directions
-   ;; as well
-   (cond
-(current-direction
- (setq leftp (not leftp)))
-((setq upp (not upp)
-  ((and mainp (not main-side-splitted-p))
-   (setq current-direction (not current-direction))
-   (setq main-side-splitted-p t)))
-(setq num (1- num)
+   (cond ((and name (stringp name))
+  (tab-bar-rename-tab name)
+;; Create a new window so that we are not inside s

[elpa] externals/blist a47da63fed 5/9: ChangeLog: Update changelog.

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit a47da63fed3c71767886d072871183a25627c46c
Author: JSDurand 
Commit: JSDurand 

ChangeLog: Update changelog.
---
 ChangeLog | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 9d80867995..785ca713d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2025-02-10  Durand  
+
+   * blist.el: Refine the process of naming new tabs.  Now the tab
+   names are determined at the same time bookmarks are jumped to, so
+   that we do not risk opening the same bookmark twice, causing some
+   unwanted consequences.
+
+Also the user experience of giving names to new tabs is refined as
+   well: the user can either choose manual names, the bookmark names,
+   or the automatic naming for the new tabs.  The user can even roll
+   back a tab name or skip some tabs at wish.
+
+   This process is inspired by the multi-file searches, by the way.
+
+   * README.org:
+   * blist.texinfo: Include the descriptions of the variable
+   `blist-select-manner` and its various options in the documentation
+   now.
+
 2025-02-07  Durand  
 
* blist.el: Add an option to open each bookmark in a new tab.  Now



[elpa] externals/blist 3e6947c00f 7/9: blist: Fix wrong handling of negative arguments

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit 3e6947c00f16cf9a56b3bcdb817a1c323bc7a8fc
Author: JSDurand 
Commit: JSDurand 

blist: Fix wrong handling of negative arguments

* blist.el (blist-prepare-select-tabs): Previously negative numbers
  were handled inappropriately.  Now this is supposed to be fixed.
---
 blist.el | 37 -
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/blist.el b/blist.el
index b57d024e39..e3ad15942b 100644
--- a/blist.el
+++ b/blist.el
@@ -1000,7 +1000,7 @@ question will be asked again."
 (orig-prompt "How to name the tab %s? ")
 (prompt "How to name the tab %s? ")
 help-pressed do-not-jump history first-tab key temp
-pre-key keep-pre-key)
+pre-key keep-pre-key temp-sign)
 (while (or do-not-jump (consp bookmarks))
   (cond
((not do-not-jump)
@@ -1043,7 +1043,10 @@ question will be asked again."
orig-prompt))
 (setq do-not-jump t))
((memq key digit-keys)
-(setq temp-num (+ (- key ?0) (* 10 temp-num)))
+(cond
+ ((eq key ?-)
+  (setq temp-sign (cond ((null temp-sign) '-
+ ((setq temp-num (+ (- key ?0) (* 10 temp-num)
 (setq do-not-jump t))
((and (numberp key) (= key ?y))
 (tab-bar-rename-tab (read-string "Name: "))
@@ -1058,7 +1061,7 @@ question will be asked again."
 (setq do-not-jump t))
((and (numberp key) (= key ?n))
 (cond
- ((and (numberp temp-num) (>= temp-num 0))
+ ((null temp-sign)
   (setq temp-num (1- temp-num))
   (setq history
 (cons
@@ -1077,27 +1080,29 @@ question will be asked again."
  (blist-prepare-select-tabs--normalize-history
   temp)
  history)))
- ((setq temp-num 0)
- ((and (numberp temp-num) (< temp-num 0))
-  (setq temp-num (- temp-num))
+ ((setq temp-num 0
+  (setq temp-num 0))
+ ((eq temp-sign '-)
   (setq bookmarks
 (cons
  (blist-prepare-select-tabs--normalize-history
   temp)
  bookmarks))
-  (while (> temp-num 0)
+  (while (>= temp-num 0)
 (setq temp-num (1- temp-num))
 (setq temp (car-safe history))
 (setq history (cdr-safe history))
 (cond
  (temp
   (setq bookmarks (cons temp bookmarks)))
- ((setq temp-num 0))
-(setq temp-num 0))
+ ((setq temp-num -1))
+(setq temp-num 0)
+(setq temp-sign nil))
((memq key (list ?N ?!))
 (setq pre-key ?N)
 (setq keep-pre-key t)
-(setq temp-num 0))
+(setq temp-num 0)
+(setq temp-sign nil))
((and (numberp key) (= key ?b))
 (tab-bar-rename-tab
  (blist-prepare-select-tabs--name temp))
@@ -1115,9 +1120,7 @@ question will be asked again."
history)))
((and (numberp key) (= key ?p))
 (setq do-not-jump t)
-(cond
- ((= temp-num 0) (setq temp-num -1))
- ((setq temp-num (- temp-num
+(setq temp-sign (cond ((null temp-sign) '-)))
 (setq pre-key ?n))
((and (numberp key) (= key ?\C-g))
 (setq bookmarks nil))
@@ -1126,9 +1129,7 @@ question will be asked again."
 (cond
  (help-pressed
   (with-selected-window (get-buffer-window (help-buffer))
-(ignore-errors
-  (scroll-up-command (cond ((< temp-num 0) '-)
-  (setq temp-num 0))
+(ignore-errors (scroll-up-command temp-sign
  (t
   (with-help-window (help-buffer)
 (let ((inhibit-read-only t)
@@ -1141,7 +1142,9 @@ question will be asked again."
   (search-forward (make-string 70 ?-))
   (delete-region (point-min) (point))
   (kill-line 2)))
-  (setq help-pressed t))
+  (setq help-pressed t)))
+(setq temp-num 0)
+(setq temp-sign nil
 (tab-bar-select-tab first-tab))
 (cond
  ((window-live-p (get-buffer-window (help-buffer)))



[elpa] externals/blist e3894193fd 9/9: blist: Bump version to 0.6

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit e3894193fd7602483e0132b82f1b0afbcebe654d
Author: JSDurand 
Commit: JSDurand 

blist: Bump version to 0.6

I remember that elpa does not update if the version does not change.
To avoid the user getting a bugged version, I decide to bump version
for a minor fix.
---
 blist.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/blist.el b/blist.el
index e3ad15942b..e1e5064b9c 100644
--- a/blist.el
+++ b/blist.el
@@ -6,7 +6,7 @@
 ;; Keywords: convenience
 ;; URL: https://gitlab.com/mmemmew/blist
 ;; Package-Requires: ((ilist "0.4") (emacs "24"))
-;; Version: 0.5
+;; Version: 0.6
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by



[elpa] externals/blist 999ce63066 8/9: Update changelog

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit 999ce630663d3c62f24f435faab4963a6a2e4c82
Author: JSDurand 
Commit: JSDurand 

Update changelog
---
 ChangeLog | 5 +
 1 file changed, 5 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 785ca713d7..798e31aa1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2025-02-10  Durand  
+
+   * blist: Fix handling of negative numbers in
+   `blist-prepare-select-tabs`.
+
 2025-02-10  Durand  
 
* blist.el: Refine the process of naming new tabs.  Now the tab



[elpa] externals/blist 03d0807e4f 1/9: gitignore: Ignore synctex files as well.

2025-02-09 Thread ELPA Syncer
branch: externals/blist
commit 03d0807e4f1c8e05dd054ec5fbadb24ae4b6a1c5
Author: JSDurand 
Commit: JSDurand 

gitignore: Ignore synctex files as well.
---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 3119810497..f441818965 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
 *.kys
 *.log
 *.toc
+*.synctex.gz
 *.elc
 *.pdf
 *.info



[nongnu] elpa/dirvish 51ab5fa884 17/18: doc: document `dirvish-rsync.el` and adjust `dirvish-dispatch`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 51ab5fa884fd1c2289befd51d695a6afaf01d400
Author: Alex Lu 
Commit: Alex Lu 

doc: document `dirvish-rsync.el` and adjust `dirvish-dispatch`
---
 dirvish.el  | 18 ++
 docs/COMPARISON.org |  4 +---
 docs/EXTENSIONS.org | 43 ---
 extensions/dirvish-rsync.el | 14 +++---
 4 files changed, 50 insertions(+), 29 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index 121e1397f7..368417d8bd 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -1353,7 +1353,14 @@ If `one-window-p' returns nil, open PATH using regular 
Dired."
   [:description
(lambda () (dirvish--format-menu-heading
   "Dirvish main menu"
-  "Press ? to see more info for the current menu"))
+  "NOTICE: these commands require relevant Dirvish extensions"))
+   "" "Actions & Essential commands"
+   ("u" "User interface setup"   dirvish-setup-menu)
+   ("c" "Dired cheatsheet"   dirvish-dired-cheatsheet)
+   ("/" "Perform fd search"  dirvish-fd)
+   ("@" "Find all dirs by fd"dirvish-fd-jump)
+   ("R" "Rsync marked files" dirvish-rsync)
+   ("n" "Live narrowing" dirvish-narrow)
"Transient commands"
("a" "Quick access"   dirvish-quick-access)
("h" "Go to history entries"  dirvish-history-menu)
@@ -1361,19 +1368,14 @@ If `one-window-p' returns nil, open PATH using regular 
Dired."
("l" "Setup listing switches" dirvish-ls-switches-menu)
("f" "Setup fd-find switches" dirvish-fd-switches-menu
 :if (lambda () (dirvish-prop :fd-arglist)))
+   ("S" "Setup rsync switches"   dirvish-rsync-switches-menu)
("m" "Manage marks"   dirvish-mark-menu)
("e" "Manage emerged groups"  dirvish-emerge-menu)
("t" "Manage subtrees"dirvish-subtree-menu)
("r" "Rename files"   dirvish-renaming-menu)
("v" "Version control system" dirvish-vc-menu)
("y" "Yank marked files"  dirvish-yank-menu)
-   ("i" "Get file information"   dirvish-file-info-menu)
-   "" "Actions | Essential commands"
-   ("/" "Perform fd search"  dirvish-fd)
-   ("@" "Find all dirs by fd"dirvish-fd-jump)
-   ("n" "Live narrowing" dirvish-narrow)
-   ("u" "User interface setup"   dirvish-setup-menu)
-   ("c" "Dired cheatsheet"   dirvish-dired-cheatsheet)])
+   ("i" "Get file information"   dirvish-file-info-menu)])
 
 (provide 'dirvish)
 ;;; dirvish.el ends here
diff --git a/docs/COMPARISON.org b/docs/COMPARISON.org
index adb68f64b1..850bacf9a3 100644
--- a/docs/COMPARISON.org
+++ b/docs/COMPARISON.org
@@ -139,6 +139,4 @@ mesh well with =dirvish-subtree= nor =dired-subtree=.
 
 * dired-rsync
 
-~dirvish-rsync~ command has feature parity of ~dired-rsync~.  A exclusive 
feature in
-~dirvish-rsync~ is that it can collect all marked files across different Dired
-buffers as the source files.
+See: [[file:EXTENSIONS.org][dirvish-rsync section in Extensions.org]]
diff --git a/docs/EXTENSIONS.org b/docs/EXTENSIONS.org
index 6bcef682cf..0082c0bd42 100644
--- a/docs/EXTENSIONS.org
+++ b/docs/EXTENSIONS.org
@@ -33,25 +33,46 @@ buffers into a single "clipboard", then copy or move all of 
them to the target
 location.
 #+end_quote
 
-Multi-stage copy/paste, asynchronous I/O, work with TRAMP, =dirvish-yank= has 
all
-of them.  This package also provides the ~dirvish-rsync~ command, which can be
-seen as a alternative to =dired-rsync= package.  =dirvish-yank= and friends 
also
-handles file operations on the same remote host, see:
-https://github.com/stsquad/dired-rsync/issues/24.
-
-To copy/move/symlink/hardlink files from A to B, just mark the files in A, go 
to
-B, and paste them with ~dirvish-yank/move/symlink/hardlink~.
+In addition to implementing the core logic described above, this extension also
+supports several frequently used commands.  To transfer files from source to
+destination, mark the desired files, navigate to the destination, and use one 
of
+the =dirvish-yank=, =dirvish-move=, =dirvish-symlink=, 
=dirvish-relative-symlink= or
+=dirvish-hardlink= commands to complete the transfer.  All of these commands 
are
+executed *ASYNCHRONOUSLY* without any extra setups.
 
 See also: 
[[https://github.com/alexluigit/dirvish/blob/main/docs/FAQ.org#dired-ranger][comparison
 with dired-ranger]]
 
 * Integration with *rsync* command (dirvish-rsync.el)
 
 This extension introduces =dirvish-rsync=, which requires 
[[https://github.com/RsyncProject/rsync][rsync]] executable,
-mirroring the functionality of Alex Bennée's =dired-rsync=.  Uniquely,
-=dirvish-rsync= gathers marked files from multiple Dired buffers.  It also
-provides a transient menu =dirvish-rsync-menu=, for temporary adjustments to
+mirroring the functionality of Alex Bennée's =dired-rsync=.  It also provides a
+transient menu =dirvish-rsync-switches-menu=, for temporary adjustments to
 =dirvish-rsync-args=.
 
+** Compare to =dired-rsync=
+
++ =dirvish-rsync= also handles file operations on the

[nongnu] elpa/dirvish fa17e5588f 01/18: fix: prevent killing emacsclient started on a directory (#293)

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit fa17e5588f1ca4cce5de496abea180813cfa0682
Author: Pratyush Yadav 
Commit: Alex Lu 

fix: prevent killing emacsclient started on a directory (#293)

When an emacsclient frame is created by visitng directory A, and then
the user goes into subdirectory B and opens a file using
dirvish-find-entry-a, the buffer for A no longer has a window and gets
killed by dirvish-kill. Since this was the original buffer the client
was opened with, this causes the client frame to be killed along with
it, resulting in the frame going away instead of showing the file. This
has been reported earlier in [0] and [1].

This can be reproduced by following the below steps mentioned in [0]:

mkdir tmp && cd tmp
mkdir dir
touch dir/foo

emacsclient -nw .
# RET -- open `dir`
# RET -- try to open `foo`

This will cause the frame to close instead of opening foo.

For buffers tied with a client, the variable server-buffer-clients is
non-nil. Use that to detect such buffers and avoid killing them. Those
buffers will be killed by the user when they wish to close their
session.

[0] https://github.com/doomemacs/doomemacs/issues/8253
[1] https://github.com/alexluigit/dirvish/issues/232
---
 dirvish.el | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index e8c974747f..c1e2d9e15e 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -265,6 +265,7 @@ input for `dirvish-redisplay-debounce' seconds."
 (defvar dirvish--working-attrs '())
 (defvar dirvish--working-preview-dispathchers '())
 (defvar image-dired-thumbnail-buffer)
+(defvar server-buffer-clients)
 (defvar-local dirvish--props '())
 (defvar-local dirvish--attrs-hash nil)
 
@@ -502,8 +503,10 @@ ARGS is a list of keyword arguments for `dirvish' struct."
   "Kill the dirvish instance DV."
   (let ((index (cdr (dv-index dv
 (if (not (car (dv-layout dv)))
-(cl-loop for (_d . b) in (dv-roots dv) when
- (not (get-buffer-window b)) do (kill-buffer b)
+(cl-loop for (_d . b) in (dv-roots dv)
+ when (and (not (get-buffer-window b))
+   (not (with-current-buffer b server-buffer-clients)))
+ do (kill-buffer b)
  finally (setf (dv-index dv) (car (dv-roots dv
   (when dirvish-use-header-line
 (with-current-buffer index



[nongnu] elpa/dirvish f66cb051c9 09/18: fix(core): remove redundant session initialization

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit f66cb051c9e89a1e19bd1533ed64615f2f646dbe
Author: Alex Lu 
Commit: Alex Lu 

fix(core): remove redundant session initialization
---
 dirvish.el | 33 -
 1 file changed, 12 insertions(+), 21 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index ec079fe37d..65e315a410 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -367,6 +367,10 @@ A dirvish preview dispatcher is a function consumed by
 
  Helpers
 
+(defsubst dirvish-curr ()
+  "Return Dirvish session attached to current buffer, if there is any."
+  (gethash (dirvish-prop :dv) dirvish--session-hash))
+
 (defun dirvish--hide-dired-header ()
   "Hide the Dired header."
   (remove-overlays (point-min) (point) 'dired-header t)
@@ -432,11 +436,9 @@ ALIST is window arguments passed to 
`window--display-buffer'."
 (complete-with-action action completions string pred)
 
 (defun dirvish--selected-p (&optional dv)
-  "Return t if session DV is selected.
-DV defaults to `dirvish-curr'."
+  "Return t if session DV (defaults to `dirvish-curr') is selected."
   (let ((dv (or dv (dirvish-curr
-(eq (if (car (dv-layout dv)) (dv-root-window dv) (frame-selected-window))
-dirvish--selected-window)))
+(eq (dv-root-window dv) dirvish--selected-window)))
 
 (defun dirvish--scopes ()
   "Return computed scopes according to `dirvish-scopes'."
@@ -454,12 +456,6 @@ When NOTE is non-nil, append it the next line."
 'display '(space :align-to right))
 (propertize (if note (concat "\n" note) "") 'face 
'font-lock-doc-face
 
- Core
-
-(defsubst dirvish-curr ()
-  "Get selected Dirvish session."
-  (gethash (dirvish-prop :dv) dirvish--session-hash))
-
 (defun dirvish--util-buffer (type &optional dv no-create inhibit-hiding)
   "Return session DV's utility buffer of TYPE (defaults to `temp').
 If NO-CREATE is non-nil, do not create the buffer.
@@ -468,6 +464,8 @@ If INHIBIT-HIDING is non-nil, do not hide the buffer."
  (name (format "%s*Dirvish-%s%s" (if inhibit-hiding "" " ") type id)))
 (if no-create (get-buffer name) (get-buffer-create name
 
+ Core
+
 (cl-defstruct (dirvish (:conc-name dv-))
   "Define dirvish data type."
   (type () :documentation "is the (TYPE FIXED-WIDTH DEDICATED ROOT-WIN-FN 
FILE-OPEN-FN) struct.")
@@ -789,16 +787,10 @@ When FORCE, ensure the preview get refreshed."
do (dirvish--kill-buffer b))
   (setq dirvish--this nil
 
-(defun dirvish-selection-change-h (&optional _frame-or-window)
-  "Save current session to frame parameters."
-  (let* ((w (frame-selected-window)) (b (window-buffer w)) (dv (dirvish-curr)))
-(cond ((and dv (minibufferp (window-buffer dirvish--selected-window)))
-   (with-selected-window (dirvish--create-root-window dv)
- (dirvish--switch-to-buffer b)
- (dirvish--init-session dv)))
-  ((active-minibuffer-window))
-  (t (setq dirvish--this dv)))
-(setq dirvish--selected-window w)))
+(defun dirvish-selection-change-h (&rest _)
+  "Record `dirvish--selected-window' and `dirvish--this'."
+  (unless (active-minibuffer-window) (setq dirvish--this (dirvish-curr)))
+  (setq dirvish--selected-window (frame-selected-window)))
 
 (defun dirvish-winconf-change-h ()
   "Restore hidden sessions on buffer switching."
@@ -1244,7 +1236,6 @@ Run `dirvish-setup-hook' afterwards when SETUP is 
non-nil."
(footer (side . below) (window-height . -2)
(window-parameters . ((no-other-window . t))
  (w-order (and layout (dirvish--window-split-order))) util-windows)
-(setq dirvish--selected-window (selected-window))
 (dirvish--init-util-buffers dv)
 (dirvish--setup-mode-line dv)
 (when w-order (let ((ignore-window-parameters t)) (delete-other-windows)))



[nongnu] elpa/dirvish 6df1a9cb97 02/18: fix(core): error on `dirvish-winbuf-change-h`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 6df1a9cb979350a6406d3ee89713ab568c98a7d0
Author: Alex Lu 
Commit: Alex Lu 

fix(core): error on `dirvish-winbuf-change-h`
---
 dirvish.el | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/dirvish.el b/dirvish.el
index c1e2d9e15e..926074aaa6 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -810,7 +810,18 @@ When FORCE, ensure the preview get refreshed."
 (defun dirvish-winbuf-change-h (window)
   "Rebuild layout once buffer in WINDOW changed."
   (with-current-buffer (window-buffer window)
-(when-let* ((dv (dirvish-curr))) (dirvish--init-session dv
+(when-let* ((dv (dirvish-curr)))
+  (let ((saved-layout (car (dv-layout dv)))
+(saved-winconf (dv-winconf dv)))
+;; rebuild a fullframe session as a single pane session temporarily, 
for
+;; cases when a buried dirvish buffers is selected by minibuffer
+;; commands such as `consult-buffer'.
+(cond ((and (active-minibuffer-window) saved-layout)
+   (setcar (dv-layout dv) nil)
+   (dirvish--init-session dv)
+   (setcar (dv-layout dv) saved-layout)
+   (setf (dv-winconf dv) saved-winconf))
+  (t (dirvish--init-session dv)))
 
 (defun dirvish-tab-new-post-h (_tab)
   "Do not reuse sessions from other tabs."



[nongnu] elpa/dirvish 913922ea2a 12/18: refactor: rename `dirvish-new/kill`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 913922ea2af1c38928f8303be914187adc54993e
Author: Alex Lu 
Commit: Alex Lu 

refactor: rename `dirvish-new/kill`
---
 dirvish.el | 38 +++---
 extensions/dirvish-peek.el |  4 ++--
 extensions/dirvish-side.el |  6 +++---
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index a953311760..47e1ec5e96 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -487,16 +487,7 @@ If INHIBIT-HIDING is non-nil, do not hide the buffer."
   (index ()   :documentation "is the current (cwd-str . 
buffer-obj) cons within ROOT-WINDOW.")
   (roots ()   :documentation "is all the history INDEX entries in 
DV."))
 
-(defun dirvish--find-reusable (&optional type)
-  "Return the first matched reusable session with TYPE."
-  (when dirvish-reuse-session
-(cl-loop with scopes = (dirvish--scopes)
- for dv in (hash-table-values dirvish--session-hash)
- when (and (eq type (dv-type dv))
-   (equal (dv-scopes dv) scopes))
- collect dv)))
-
-(defun dirvish-new (&rest args)
+(defun dirvish--new (&rest args)
   "Create and save a new dirvish struct to `dirvish--session-hash'.
 ARGS is a list of keyword arguments for `dirvish' struct."
   (let (slots new)
@@ -506,8 +497,17 @@ ARGS is a list of keyword arguments for `dirvish' struct."
 (dirvish--check-deps)
 (dirvish--create-root-window new) new))
 
-(defun dirvish-kill (dv)
-  "Kill the dirvish instance DV."
+(defun dirvish--find-reusable (&optional type)
+  "Return the first matched reusable session with TYPE."
+  (when dirvish-reuse-session
+(cl-loop with scopes = (dirvish--scopes)
+ for dv in (hash-table-values dirvish--session-hash)
+ when (and (eq type (dv-type dv))
+   (equal (dv-scopes dv) scopes))
+ collect dv)))
+
+(defun dirvish--clear-session (dv)
+  "Reset DV's slot and kill its buffers."
   (let ((index (cdr (dv-index dv
 (if (not (dv-curr-layout dv))
 (cl-loop for (_d . b) in (dv-roots dv)
@@ -669,7 +669,7 @@ buffer, it defaults to filename under the cursor when it is 
nil."
 (if ex (apply #'start-process "" nil "nohup"
   (cl-substitute file "%f" ex :test 'string=))
   (let* ((dv (dirvish-curr)) (fn (dv-open-file-fn dv)))
-(if fn (funcall fn) (dirvish-kill dv)))
+(if fn (funcall fn) (dirvish--clear-session dv)))
   (find-file file))
 
 (defun dirvish-insert-subdir-a (dirname &rest _)
@@ -705,8 +705,8 @@ buffer, it defaults to filename under the cursor when it is 
nil."
   (let* ((dir (if (consp dir-or-list) (car dir-or-list) dir-or-list))
  (key (file-name-as-directory (expand-file-name dir)))
  (this dirvish--this)
- (dv (if (and this (eq this-command 'dired-other-frame)) (dirvish-new)
-   (or this (car (dirvish--find-reusable)) (dirvish-new
+ (dv (if (and this (eq this-command 'dired-other-frame)) (dirvish--new)
+   (or this (car (dirvish--find-reusable)) (dirvish--new
  (bname buffer-file-name)
  (remote (file-remote-p dir))
  (flags (or flags (dv-ls-switches dv)))
@@ -990,7 +990,7 @@ If HEADER, set the `dirvish--header-line-fmt' instead."
  (setq str-r (format-mode-line (funcall expand ',right) nil nil buf))
  (setq len-r (string-width str-r)))
(concat
-(dirvish--bar-image fullframe-p ,header)
+(dirvish--mode-line-bar-img fullframe-p ,header)
 (if (< (+ (string-width str-l) len-r) win-width)
 str-l
   (let ((trim (1- (- win-width len-r
@@ -1003,7 +1003,7 @@ If HEADER, set the `dirvish--header-line-fmt' instead."
 str-r)
 
 ;; Thanks to `doom-modeline'.
-(defun dirvish--bar-image (fullframe-p header)
+(defun dirvish--mode-line-bar-img (fullframe-p header)
   "Create a bar image with height of `dirvish-mode-line-height'.
 If FULLFRAME-P, use the `cdr' of the value as height, otherwise
 use `car'.  If HEADER, use `dirvish-header-line-height' instead."
@@ -1272,7 +1272,7 @@ Run `dirvish-setup-hook' afterwards when SETUP is 
non-nil."
  (if (or path (not (eq dirvish-reuse-session 'resume))) dir
(car (dv-index dv
 (dirvish--init-session dv)))
-  (t (dirvish-new :curr-layout layout)
+  (t (dirvish--new :curr-layout layout)
  (dirvish-find-entry-a dir)
 
 (define-derived-mode dirvish-directory-view-mode
@@ -1292,7 +1292,7 @@ the selected window are buried."
   (interactive)
   (let ((dv (dirvish-curr)) (ct 0) (lst (window-list))
 (win (selected-window)) (frame (selected-frame)))
-(dirvish-kill dv)
+(dirvish--clear-session dv)
 (while (and (dirvish-curr) (eq (selected-window) win)
 (<= (cl-incf ct) (length lst)))
   (quit-window))
diff --git a/ext

[nongnu] elpa/dirvish 78e74b05a2 11/18: refactor: more declarative `dirvish` struct

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 78e74b05a2629313527940e0d5e95b793c01b3ed
Author: Alex Lu 
Commit: Alex Lu 

refactor: more declarative `dirvish` struct
---
 dirvish-extras.el  | 17 +--
 dirvish-widgets.el |  2 +-
 dirvish.el | 72 +-
 extensions/dirvish-fd.el   |  2 +-
 extensions/dirvish-peek.el |  4 +--
 extensions/dirvish-side.el | 17 ++-
 extensions/dirvish-vc.el   |  6 ++--
 7 files changed, 66 insertions(+), 54 deletions(-)

diff --git a/dirvish-extras.el b/dirvish-extras.el
index b7be70d3b4..dc4b8d607a 100644
--- a/dirvish-extras.el
+++ b/dirvish-extras.el
@@ -129,13 +129,13 @@ predicate for that infix."
  [:description (lambda () (dirvish--format-menu-heading "Setup Dirvish 
UI"))
["Attributes:" ,@attrs]]
  ["Switch layouts:"
-  :if (lambda () (car (dv-layout (dirvish-curr ,@layouts]
+  :if (lambda () (dv-curr-layout (dirvish-curr))) ,@layouts]
  ["Actions:"
   ("M-t" "Toggle fullscreen" dirvish-layout-toggle)
   ("RET" "Apply current settings to future sessions"
(lambda () (interactive)
  (setq-default dirvish-attributes dirvish-attributes)
- (setq dirvish-default-layout (cdr (dv-layout (dirvish-curr
+ (setq dirvish-default-layout (dv-ff-layout (dirvish-curr)))
  (dirvish--init-session (dirvish-curr))
  (revert-buffer)))])
 
@@ -221,12 +221,12 @@ A session with layout means it has a companion preview 
window and
 possibly one or more parent windows."
   (interactive)
   (let* ((dv (or (dirvish-curr) (user-error "Not a dirvish buffer")))
- (old-layout (car (dv-layout dv)))
- (new-layout (unless old-layout (cdr (dv-layout dv
+ (old-layout (dv-curr-layout dv))
+ (new-layout (unless old-layout (dv-ff-layout dv)))
  (buf (current-buffer)))
 (if old-layout (set-window-configuration (dv-winconf dv))
   (with-selected-window (dv-root-window dv) (quit-window)))
-(setcar (dv-layout dv) new-layout)
+(setf (dv-curr-layout dv) new-layout)
 (with-selected-window (dirvish--create-root-window dv)
   (dirvish--switch-to-buffer buf)
   (dirvish--init-session dv
@@ -240,10 +240,10 @@ current layout defined in `dirvish-layout-recipes'."
   (cl-loop
with dv = (let ((dv (dirvish-curr)))
(unless dv (user-error "Not in a Dirvish session"))
-   (unless (car (dv-layout dv))
+   (unless (dv-curr-layout dv)
  (dirvish-layout-toggle)
  (user-error "Dirvish: entering fullscreen")) dv)
-   with old-recipe = (car (dv-layout dv))
+   with old-recipe = (dv-curr-layout dv)
with recipes = (if recipe (list recipe) dirvish-layout-recipes)
with l-length = (length recipes)
for idx from 1
@@ -252,7 +252,8 @@ current layout defined in `dirvish-layout-recipes'."
return
(let* ((new-idx (if (> idx (1- l-length)) 0 idx))
   (new-recipe (nth new-idx recipes)))
- (setf (dv-layout dv) (cons new-recipe new-recipe))
+ (setf (dv-curr-layout dv) new-recipe)
+ (setf (dv-ff-layout dv) new-recipe)
  (dirvish--init-session dv
 
 (defun dirvish-rename-space-to-underscore ()
diff --git a/dirvish-widgets.el b/dirvish-widgets.el
index f7fbe2ebd9..d150959b15 100644
--- a/dirvish-widgets.el
+++ b/dirvish-widgets.el
@@ -433,7 +433,7 @@ GROUP-TITLES is a list of group titles."
   "Cache image/video-thumbnail when `DISPLAY-GRAPHIC-P'."
   (when-let* ((dv (dirvish-curr))
   ((not (dirvish-prop :remote)))
-  ((car (dv-layout dv)))
+  ((dv-curr-layout dv))
   (win (dv-preview-window dv))
   ((window-live-p win))
   (width (window-width win))
diff --git a/dirvish.el b/dirvish.el
index 3f872d9e94..a953311760 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -467,25 +467,32 @@ If INHIBIT-HIDING is non-nil, do not hide the buffer."
  Core
 
 (cl-defstruct (dirvish (:conc-name dv-))
-  "Define dirvish data type."
-  (type () :documentation "is the (TYPE FIXED-WIDTH DEDICATED ROOT-WIN-FN 
FILE-OPEN-FN) struct.")
-  (layout (cons nil dirvish-default-layout) :documentation "is the working 
layouts.")
-  (ls-switches dired-listing-switches :documentation "is the listing 
switches.")
-  (root-window nil :documentation "is the main window created by 
ROOT-WINDOW-FN.")
-  (scopes () :documentation "are the \"environments\" such as init frame of 
this session.")
-  (preview-buffers () :documentation "holds all file preview buffers in this 
session.")
-  (preview-window nil :documentation "is the window to display preview 
buffer.")
-  (name (cl-gensym) :documentation "is an unique symbol for every session.")
-  (winconf (current-window-configuration) :documentation "is the saved window 
configuration.")
-  (index () :documentation "is a (DIR . CORRESPONDING-BUFFE

[nongnu] elpa/dirvish 2eb0118681 16/18: refactor(rsync): extract rsync code to `dirvish-rsync.el`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 2eb0118681dd65836bfa7e3442f5ed152615b533
Author: Alex Lu 
Commit: Alex Lu 

refactor(rsync): extract rsync code to `dirvish-rsync.el`
---
 dirvish.el  |   1 +
 docs/EXTENSIONS.org |  14 +-
 extensions/dirvish-rsync.el | 379 
 extensions/dirvish-yank.el  | 410 
 4 files changed, 429 insertions(+), 375 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index a23c17a67a..121e1397f7 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -23,6 +23,7 @@
 
 (require 'dired)
 (require 'transient)
+(eval-when-compile (require 'subr-x))
 (declare-function ansi-color-apply-on-region "ansi-color")
 (declare-function dirvish-fd-find "dirvish-fd")
 (declare-function dirvish-tramp-noselect "dirvish-tramp")
diff --git a/docs/EXTENSIONS.org b/docs/EXTENSIONS.org
index 8e53efc111..6bcef682cf 100644
--- a/docs/EXTENSIONS.org
+++ b/docs/EXTENSIONS.org
@@ -44,6 +44,14 @@ B, and paste them with ~dirvish-yank/move/symlink/hardlink~.
 
 See also: 
[[https://github.com/alexluigit/dirvish/blob/main/docs/FAQ.org#dired-ranger][comparison
 with dired-ranger]]
 
+* Integration with *rsync* command (dirvish-rsync.el)
+
+This extension introduces =dirvish-rsync=, which requires 
[[https://github.com/RsyncProject/rsync][rsync]] executable,
+mirroring the functionality of Alex Bennée's =dired-rsync=.  Uniquely,
+=dirvish-rsync= gathers marked files from multiple Dired buffers.  It also
+provides a transient menu =dirvish-rsync-menu=, for temporary adjustments to
+=dirvish-rsync-args=.
+
 * Group files with custom filter stack (dirvish-emerge.el)
 
 This extension lets you split the file list into different groups by various
@@ -87,7 +95,7 @@ of the peek window.
 
 ~dirvish-peek-mode~ currently supports =vertico=, =selectrum=, =ivy= and 
=icomplete[-vertical]=.
 
-* Version-control (git) integration (dirvish-vc.el)
+* Version-control (*git*) integration (dirvish-vc.el)
 
 This extension gives Dirvish the ablity to display version-control data in
 different ways.  For now we have:
@@ -149,7 +157,7 @@ breeze. No manual editing anymore!
 
 *Figure 3*. left: ~dirvish-quicksort~  right: ~dirvish-ls-switches-menu~
 
-* Dirvish as the interface of fd (dirvish-fd.el)
+* Dirvish as the interface of *fd* command (dirvish-fd.el)
 
 This is the BEST =fd= frontend, period.
 
@@ -188,7 +196,7 @@ You can use ~dirvish-subtree-toggle~ to toggle the 
directory under the cursor as
 subtree.  Add ~subtree-state~ to ~dirvish-attributes~ gives you an indicator 
about
 whether the directory is expanded or not.
 
-* History navigation commands (dirvish-history.el)
+* History navigation (dirvish-history.el)
 
 |-+---|
 | Command | Description   |
diff --git a/extensions/dirvish-rsync.el b/extensions/dirvish-rsync.el
new file mode 100644
index 00..8b54a92060
--- /dev/null
+++ b/extensions/dirvish-rsync.el
@@ -0,0 +1,379 @@
+;;; dirvish-rsync.el --- Rsync integration for Dirvish -*- lexical-binding: t 
-*-
+
+;; Copyright (C) 2021-2025 Alex Lu
+;; Author : Alex Lu 
+;; Version: 2.0.53
+;; Keywords: files, convenience
+;; Homepage: https://github.com/alexluigit/dirvish
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;;; Commentary:
+
+;; This extension introduces `dirvish-rsync' command (which requires `rsync'
+;; executable), mirroring the functionality of Alex Bennée's `dired-rsync'.
+;; Uniquely, `dirvish-rsync' gathers marked files from multiple Dired buffers.
+;; It also provides a transient menu `dirvish-rsync-menu', for temporary
+;; adjustments to `dirvish-rsync-args'.
+
+;;; Code:
+
+(require 'dirvish-yank)
+(require 'tramp)
+
+(define-obsolete-variable-alias 'dirvish-yank-rsync-program 
'dirvish-rsync-program "Fed 9, 2025")
+(defcustom dirvish-rsync-program "rsync"
+  "The rsync binary that we are going to use."
+  :type 'string :group 'dirvish)
+
+(define-obsolete-variable-alias 'dirvish-yank-rsync-args 'dirvish-rsync-args 
"Fed 9, 2025")
+(defcustom dirvish-rsync-args
+  '("--archive" "--verbose" "--compress" "--info=progress2")
+  "The default options for the rsync command."
+  :type '(repeat string) :group 'dirvish)
+
+(defcustom dirvish-rsync-r2r-ssh-port "22"
+  "Default ssh port of receiver when yanking in remote to remote scenario.
+In this scenario rsync will be run on remote host, so it has no access
+to your ~/.ssh/config file.  If you have some settings there you have to
+specify them somehow.  One way is to set global default values and other
+way is to set them locally before copying, using rsync-transient menu."
+  :type 'string :group 'dirvish)
+
+(defcustom dirvish-rsync-r2r-ssh-user nil
+  "Default ssh user of receiver when yanking in remote to remote scenario.
+When it is nil, do not specify any user.  See
+`dirvish-rsync-r2r-ssh-port' for more details."
+  :type '(ch

[nongnu] elpa/dirvish 9b08061dfd 15/18: chore: compiler warnings

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 9b08061dfdcecaf5e61be5b8f587a9d6bf2f7c87
Author: Alex Lu 
Commit: Alex Lu 

chore: compiler warnings
---
 dirvish.el |  20 +++---
 extensions/dirvish-fd.el   |   2 +-
 extensions/dirvish-side.el |   3 +-
 extensions/dirvish-yank.el | 164 +++--
 4 files changed, 95 insertions(+), 94 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index 0d1dd39f34..a23c17a67a 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -26,6 +26,7 @@
 (declare-function ansi-color-apply-on-region "ansi-color")
 (declare-function dirvish-fd-find "dirvish-fd")
 (declare-function dirvish-tramp-noselect "dirvish-tramp")
+(declare-function project-roots "project")
 
  User Options
 
@@ -427,8 +428,8 @@ ALIST is window arguments passed to 
`window--display-buffer'."
 (defun dirvish--get-project-root (&optional directory)
   "Get project root path of DIRECTORY."
   (when-let* ((pj (project-current nil directory))
-  (pj-root (car (with-no-warnings (project-roots pj)
-(expand-file-name pj-root)))
+  (pj-roots (project-roots pj)))
+(expand-file-name (car pj-roots
 
 (defun dirvish--get-parent-path (path)
   "Get parent directory of PATH."
@@ -587,7 +588,7 @@ ARGS is a list of keyword arguments for `dirvish' struct."
 (defun dirvish--render-attrs-1 (height width pos remote fns ov align-to)
   "HEIGHT WIDTH POS REMOTE FNS OV ALIGN-TO."
   (forward-line (- 0 height))
-  (cl-dotimes (_ (* (if (eq major-mode 'dired-mode) 2 5) height))
+  (cl-dotimes (_ (* 2 height))
 (when (eobp) (cl-return))
 (let ((f-beg (dired-move-to-filename))
   (f-end (dired-move-to-end-of-filename t))
@@ -965,7 +966,7 @@ This attribute is enabled when `dirvish-hide-cursor' is 
non-nil."
 
 (dirvish-define-attribute symlink-target
   "Hide symlink target."
-  :when (or (eq major-mode 'dirvish-directory-view-mode)
+  :when (or (derived-mode-p 'dirvish-directory-view-mode)
 (and dired-hide-details-mode
  (default-value 'dired-hide-details-hide-symlink-targets)))
   (when (< (+ f-end 4) l-end)
@@ -1177,7 +1178,7 @@ LEVEL is the depth of current window."
(bk ,(and (featurep 'dirvish-vc)
  `(ignore-errors (vc-responsible-backend ,dir)
;; keep this until `vc-git' fixed upstream.  See: #224 and #273
-   (advice-add 'vc-git--git-status-to-vc-state :around
+   (advice-add #'vc-git--git-status-to-vc-state :around
(lambda (fn code-list)
  (apply fn (list (delete-dups code-list)
(dolist (file (directory-files ,dir t nil t))
@@ -1294,11 +1295,10 @@ Run `dirvish-setup-hook' afterwards when SETUP is 
non-nil."
 
 (defun dirvish-quit ()
   "Quit current Dirvish session.
-If the session is a full-framed one, the window layout is
-restored.  If `dirvish-reuse-session' is nil, all Dired buffers
-in the session are killed, otherwise only the invisible Dired
-buffers within the session are killed and the Dired buffer(s) in
-the selected window are buried."
+If the session is a full-framed one, the window layout is restored.  If
+`dirvish-reuse-session' is nil, all Dired buffers in the session are
+killed, otherwise only the invisible Dired buffers within the session
+are killed and the Dired buffer(s) in the selected window are buried."
   (interactive)
   (let ((dv (dirvish-curr)) (ct 0) (lst (window-list))
 (win (selected-window)) (frame (selected-frame)))
diff --git a/extensions/dirvish-fd.el b/extensions/dirvish-fd.el
index 4c78fba6f8..bfb3693717 100644
--- a/extensions/dirvish-fd.el
+++ b/extensions/dirvish-fd.el
@@ -456,7 +456,7 @@ The command run is essentially:
 
 ;;;###autoload
 (defun dirvish-fd-ask (dir pattern)
-  "The same as `dirvish-fd' but ask initial `pattern' via prompt. "
+  "The same as `dirvish-fd' but ask initial DIR and PATTERN via prompt."
   (interactive (list (and current-prefix-arg
   (read-directory-name "Fd target directory: " nil "" 
t))
  (read-from-minibuffer "Pattern: ")))
diff --git a/extensions/dirvish-side.el b/extensions/dirvish-side.el
index cf296b500f..57c36b98d1 100644
--- a/extensions/dirvish-side.el
+++ b/extensions/dirvish-side.el
@@ -120,8 +120,7 @@ filename until the project root when opening a side 
session."
(dired-goto-file curr))
  (dirvish-prop :cus-header 'dirvish-side-header)
  (dirvish-update-body-h)
- (setq dirvish--this nil))
-   (set-window-dedicated-p win t)
+ (setq dirvish--this nil))
 
 (defun dirvish-side--new (path)
   "Open a side session in PATH."
diff --git a/extensions/dirvish-yank.el b/extensions/dirvish-yank.el
index 38fe62f4f1..94d859f8b5 100644
--- a/extensions/dirvish-yank.el
+++ b/extensions/dirvish-yank.el
@@ -81,8 +81,8 @@ kept alive."
 ("r" "Make relative symlinks here" dirvish-relative-symlink)
 ("h" "Make hardlinks here" dirvish-

[nongnu] elpa/dirvish 829a624a92 13/18: fix(core): window dedication issues, per #258, #262

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 829a624a92d15415192c22c560ac2b0cee0062fa
Author: Alex Lu 
Commit: Alex Lu 

fix(core): window dedication issues, per #258, #262

closes #258
closes #262
---
 dirvish.el | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index 47e1ec5e96..60027301b6 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -712,7 +712,6 @@ buffer, it defaults to filename under the cursor when it is 
nil."
  (flags (or flags (dv-ls-switches dv)))
  (buffer (alist-get key (dv-roots dv) nil nil #'equal))
  (new-buffer-p (not buffer)))
-(if this (set-window-dedicated-p nil nil) (setf (dv-curr-layout dv) nil))
 (when new-buffer-p
   (if (not remote)
   (let ((dired-buffers nil)) ; disable reuse from dired
@@ -781,8 +780,6 @@ When FORCE, ensure the preview get refreshed."
 (defun dirvish-kill-buffer-h ()
   "Remove buffer from session's buffer list."
   (when-let* ((dv (dirvish-curr)) (buf (current-buffer)))
-(let ((win (get-buffer-window buf)))
-  (when (window-live-p win) (set-window-dedicated-p win nil)))
 (setf (dv-roots dv) (cl-remove-if (lambda (i) (eq (cdr i) buf)) (dv-roots 
dv)))
 (unless (dv-roots dv)
   (when-let* ((layout (dv-curr-layout dv))
@@ -1122,8 +1119,8 @@ LEVEL is the depth of current window."
  (depth (or (car (dv-curr-layout dv)) 0))
  (i 0))
 (when-let* ((fixed (dv-size-fixed dv))) (setq window-size-fixed fixed))
-(set-window-dedicated-p
- nil (and (or (dv-curr-layout dv) (dv-dedicated dv)) t))
+(when (or (dv-curr-layout dv) (dv-dedicated dv))
+  (set-window-dedicated-p nil t))
 (set-window-fringes nil dirvish-window-fringe dirvish-window-fringe)
 (while (and (< i depth) (not (string= current parent)))
   (cl-incf i)



[nongnu] elpa/dirvish 9980645ff3 08/18: perf(side): get previous index from `dirvish-prop`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 9980645ff34db645798eb1c1d7f641d9db067c23
Author: Alex Lu 
Commit: Alex Lu 

perf(side): get previous index from `dirvish-prop`
---
 extensions/dirvish-side.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/extensions/dirvish-side.el b/extensions/dirvish-side.el
index e2e64ebca2..5970f4e73e 100644
--- a/extensions/dirvish-side.el
+++ b/extensions/dirvish-side.el
@@ -109,8 +109,9 @@ filename until the project root when opening a side 
session."
  (win (dirvish-side--session-visible-p))
  (dv (with-selected-window win (dirvish-curr)))
  (dir (or (dirvish--get-project-root) default-directory))
- (prev (with-selected-window win (dired-get-filename nil t)))
+ (prev (with-selected-window win (dirvish-prop :index)))
  (curr buffer-file-name)
+ ((not (string-suffix-p "COMMIT_EDITMSG" curr)))
  ((not (equal prev curr
(with-selected-window win
  (setq dirvish--this dv)



[nongnu] elpa/dirvish d5606a1f18 10/18: fix(core): respect `dirvish-preview-environment` on dired preview

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit d5606a1f187c79be7b40143658c52959c393d0c5
Author: Alex Lu 
Commit: Alex Lu 

fix(core): respect `dirvish-preview-environment` on dired preview
---
 dirvish.el | 14 ++
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index 65e315a410..3f872d9e94 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -793,7 +793,7 @@ When FORCE, ensure the preview get refreshed."
   (setq dirvish--selected-window (frame-selected-window)))
 
 (defun dirvish-winconf-change-h ()
-  "Restore hidden sessions on buffer switching."
+  "Record root window and update its UI for current dirvish session."
   (let ((dv (dirvish-curr)))
 (setf (dv-root-window dv) (get-buffer-window (cdr (dv-index dv
 (dirvish-update-body-h 'force-preview-update)))
@@ -856,10 +856,9 @@ When FORCE, ensure the preview get refreshed."
 (cond ((file-directory-p file) ; default directory previewer
(let* ((script
`(with-current-buffer
-(let ((non-essential t)
-  (delay-mode-hooks t)
-  (enable-local-variables :safe)
-  enable-dir-local-variables)
+(let ,(mapcar (lambda (env) `(,(car env) ,(cdr env)))
+  (remove (cons 'inhibit-message t)
+  dirvish-preview-environment))
   (setq insert-directory-program
 ,insert-directory-program)
   (dired-noselect ,file "-AlGh"))
@@ -991,9 +990,8 @@ If HEADER, set the `dirvish--header-line-fmt' instead."
 (substring str-l 0 (min trim (1- (length str-l
   "")))
 (propertize
- " " 'display
- `((space :align-to (- (+ right right-fringe right-margin)
-   ,(ceiling (* scale (string-width str-r)))
+ " " 'display `((space :align-to (- (+ right right-fringe right-margin)
+,(ceiling (* scale len-r))
 str-r)
 
 ;; Thanks to `doom-modeline'.



[nongnu] elpa/dirvish 8002bb9761 03/18: fix(core): rewrite mode line composer (#233)

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 8002bb97619fea549d9a74d6a00e1448a1b6b25a
Author: Alex Lu 
Commit: Alex Lu 

fix(core): rewrite mode line composer (#233)

- ensure the mode-line context buffer is alive, closes #233.

- rename dirvish--mode-line-fmt -> dirvish--mode-line-composer

- dirvish-*-ml no longer takes dv as its argument
  It's unnecessary for most of the segment and may confuse users who need 
define
  their own segments.

- compose mode/header line segments at runtime
  We may allow changing segments on the fly in the future.

- calculate font scale at runtime
  Maybe support text-scale-adjust in the future.
---
 dirvish-widgets.el |  1 +
 dirvish.el | 84 --
 extensions/dirvish-fd.el   |  6 ++--
 extensions/dirvish-side.el |  4 +--
 4 files changed, 49 insertions(+), 46 deletions(-)

diff --git a/dirvish-widgets.el b/dirvish-widgets.el
index 8672155809..13de8643c5 100644
--- a/dirvish-widgets.el
+++ b/dirvish-widgets.el
@@ -307,6 +307,7 @@ GROUP-TITLES is a list of group titles."
 (dirvish-define-mode-line path
   "Path of file under the cursor."
   (let* ((directory-abbrev-alist nil) ; TODO: support custom 
`directory-abbrev-alist'
+ (dv (dirvish-curr))
  (index (dired-current-directory))
  (face (if (dirvish--window-selected-p dv) 'dired-header 'shadow))
  (rmt (dirvish-prop :remote))
diff --git a/dirvish.el b/dirvish.el
index 926074aaa6..b060ff714a 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -363,7 +363,7 @@ A dirvish preview dispatcher is a function consumed by
   "Define a mode line segment NAME with BODY and DOCSTRING."
   (declare (indent defun) (doc-string 2))
   (let ((ml-name (intern (format "dirvish-%s-ml" name
-`(defun ,ml-name (dv) ,docstring (ignore dv) ,@body)))
+`(defun ,ml-name () ,docstring ,@body)))
 
  Helpers
 
@@ -565,8 +565,8 @@ ARGS is a list of keyword arguments for `dirvish' struct."
  (when (or m-attr feat-in-lib) (require lib))
  (and m-attr (setq attrs (append attrs m-attr
finally
-   (setf dirvish--mode-line-fmt (dirvish--mode-line-fmt-setter ml-l ml-r))
-   (setf dirvish--header-line-fmt (dirvish--mode-line-fmt-setter hl-l hl-r t))
+   (setf dirvish--mode-line-fmt (dirvish--mode-line-composer ml-l ml-r))
+   (setf dirvish--header-line-fmt (dirvish--mode-line-composer hl-l hl-r t))
(setf dirvish--working-preview-dispathchers (dirvish--preview-dps-validate))
(setf dirvish--working-attrs (dirvish--attrs-expand attrs
 
@@ -959,52 +959,54 @@ This attribute is enabled when `dirvish-hide-cursor' is 
non-nil."
 (let ((ov (make-overlay f-end l-end)))
   (overlay-put ov 'invisible t) `(ov . ,ov
 
-(defun dirvish--mode-line-fmt-setter (left right &optional header)
-  "Set the `dirvish--mode-line-fmt'.
+(defun dirvish--mode-line-composer (left right &optional header)
+  "Set `dirvish--mode-line-fmt'.
 LEFT and RIGHT are segments aligned to left/right respectively.
 If HEADER, set the `dirvish--header-line-fmt' instead."
-  (cl-labels ((expand (segments)
-(cl-loop for s in segments collect
- (if (stringp s) s
-   `(:eval (,(intern (format "dirvish-%s-ml" s)) 
(dirvish-curr))
-  (get-font-scale ()
-(let* ((face (if header 'header-line 'mode-line-inactive))
-   (default (face-attribute 'default :height))
-   (ml-height (face-attribute face :height)))
-  (cond ((floatp ml-height) ml-height)
-((integerp ml-height) (/ (float ml-height) default))
-(t 1)
-`((:eval
-   (let* ((dv (dirvish-curr))
-  (buf (and (car (dv-layout dv)) (cdr (dv-index dv
-  (scale ,(get-font-scale))
-  (win-width (floor (/ (window-width) scale)))
-  (str-l (format-mode-line
-  ',(or (expand left) mode-line-format) nil nil buf))
-  (str-r (format-mode-line ',(expand right) nil nil buf))
-  (len-r (string-width str-r)))
- (concat
-  (dirvish--bar-image (car (dv-layout dv)) ,header)
-  (if (< (+ (string-width str-l) len-r) win-width)
-  str-l
-(let ((trim (1- (- win-width len-r
-  (if (>= trim 0)
-  (substring str-l 0 (min trim (1- (length str-l
-"")))
-  (propertize
-   " " 'display
-   `((space :align-to (- (+ right right-fringe right-margin)
- ,(ceiling (* scale (string-width str-r)))
-  str-r))
+  `((:eval
+ (let* ((dv (dirvish-curr))
+(buf (and (car (dv-layout dv)) (cdr (dv-index dv
+(expand
+ (lambda (segs)
+   (cl-loop for s in segs collect
+(if (stri

[nongnu] elpa/dirvish updated (4707f99fea -> d945f7c164)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch elpa/dirvish.

  from  4707f99fea Fix killing emacsclient session when created on a 
directory (#293)
   new  fa17e5588f fix: prevent killing emacsclient started on a directory 
(#293)
   new  6df1a9cb97 fix(core): error on `dirvish-winbuf-change-h`
   new  8002bb9761 fix(core): rewrite mode line composer (#233)
   new  7bb9d81f8a refactor(core): rename `dirvish--window-selected-p`
   new  24e612c39d fix(core): respect `dirvish-use-header/mode-line`
   new  15e2cd1925 fix(core): crashes when preview directory w/ the 
`.dir-local` entry
   new  6df7fe856f fix(core): `dirvish--init-session` should only run on 
root-window
   new  9980645ff3 perf(side): get previous index from `dirvish-prop`
   new  f66cb051c9 fix(core): remove redundant session initialization
   new  d5606a1f18 fix(core): respect `dirvish-preview-environment` on 
dired preview
   new  78e74b05a2 refactor: more declarative `dirvish` struct
   new  913922ea2a refactor: rename `dirvish-new/kill`
   new  829a624a92 fix(core): window dedication issues, per #258, #262
   new  5487761d1c feat(core): add `dirvish-ensure-up-dir-undedicated` 
option
   new  9b08061dfd chore: compiler warnings
   new  2eb0118681 refactor(rsync): extract rsync code to `dirvish-rsync.el`
   new  51ab5fa884 doc: document `dirvish-rsync.el` and adjust 
`dirvish-dispatch`
   new  d945f7c164 Merge branch 'elpa/dirvish' of 
https://git.sv.gnu.org/git/emacs/nongnu


Summary of changes:
 dirvish-extras.el   |  19 +-
 dirvish-widgets.el  |   4 +-
 dirvish.el  | 387 ++--
 docs/COMPARISON.org |   4 +-
 docs/EXTENSIONS.org |  51 --
 extensions/dirvish-fd.el|  13 +-
 extensions/dirvish-peek.el  |   6 +-
 extensions/dirvish-rsync.el | 379 +++
 extensions/dirvish-side.el  |  38 ++--
 extensions/dirvish-vc.el|  10 +-
 extensions/dirvish-yank.el  | 420 +---
 11 files changed, 724 insertions(+), 607 deletions(-)
 create mode 100644 extensions/dirvish-rsync.el



[nongnu] elpa/dirvish 5487761d1c 14/18: feat(core): add `dirvish-ensure-up-dir-undedicated` option

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 5487761d1c922491f6d25098187cc5ef9ec5f201
Author: Alex Lu 
Commit: Alex Lu 

feat(core): add `dirvish-ensure-up-dir-undedicated` option
---
 dirvish-extras.el  |  2 +-
 dirvish.el | 41 +++--
 extensions/dirvish-fd.el   |  4 ++--
 extensions/dirvish-side.el |  6 +++---
 4 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/dirvish-extras.el b/dirvish-extras.el
index dc4b8d607a..a3ac39afb7 100644
--- a/dirvish-extras.el
+++ b/dirvish-extras.el
@@ -228,7 +228,7 @@ possibly one or more parent windows."
   (with-selected-window (dv-root-window dv) (quit-window)))
 (setf (dv-curr-layout dv) new-layout)
 (with-selected-window (dirvish--create-root-window dv)
-  (dirvish--switch-to-buffer buf)
+  (dirvish-save-dedication (switch-to-buffer buf))
   (dirvish--init-session dv
 
 ;;;###autoload
diff --git a/dirvish.el b/dirvish.el
index 60027301b6..0d1dd39f34 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -168,6 +168,10 @@ Set it to nil to use the default `mode-line-format'."
   "Whether to hide cursor in dirvish buffers."
   :group 'dirvish :type 'boolean)
 
+(defcustom dirvish-window-fringe 1
+  "Window fringe for dirvish windows."
+  :group 'dirvish :type 'integer)
+
 (defconst dirvish-emacs-bin
   (cond
((and invocation-directory invocation-name)
@@ -212,9 +216,13 @@ The UI of dirvish is refreshed only when there has not 
been new
 input for `dirvish-redisplay-debounce' seconds."
   :group 'dirvish :type 'float)
 
-(defcustom dirvish-window-fringe 1
-  "Window fringe for dirvish windows."
-  :group 'dirvish :type 'integer)
+(defcustom dirvish-ensure-up-dir-undedicated t
+  "If t, `dired-up-directory' uses the same window when if it is dedicated."
+  :group 'dirvish :type 'boolean
+  :set
+  (lambda (k v) (set k v)
+(if v (advice-add 'dired-up-directory :around #'dirvish-save-dedication-a)
+  (advice-remove 'dired-up-directory #'dirvish-save-dedication-a
 
 (cl-defgeneric dirvish-clean-cache () "Clean cache for selected files." nil)
 (cl-defgeneric dirvish-build-cache () "Build cache for current directory." nil)
@@ -294,6 +302,14 @@ seconds.  DEBOUNCE defaults to 
`dirvish-redisplay-debounce'."
(and (timerp ,timer) (cancel-timer ,timer))
(setq ,timer (run-with-idle-timer ,debounce nil ,fn)
 
+(defmacro dirvish-save-dedication (&rest body)
+  "Run BODY after undedicating window, restore dedication afterwards."
+  (declare (debug (&rest form)))
+  `(progn
+ (let ((dedicated (window-dedicated-p)))
+   (set-window-dedicated-p nil nil)
+   (prog1 ,@body (set-window-dedicated-p nil dedicated)
+
 (defmacro dirvish-define-attribute (name docstring &rest body)
   "Define a Dirvish attribute NAME.
 An attribute contains a pair of predicate/rendering functions
@@ -401,13 +417,6 @@ ALIST is window arguments passed to 
`window--display-buffer'."
  (new-window (split-window-no-error nil size side)))
 (window--display-buffer buffer new-window 'window alist)))
 
-(defun dirvish--switch-to-buffer (buffer)
-  "Switch to BUFFER with window undedicated."
-  (let ((dedicated (window-dedicated-p)) (win (selected-window)))
-(set-window-dedicated-p win nil)
-(prog1 (switch-to-buffer buffer)
-  (set-window-dedicated-p win dedicated
-
 (defun dirvish--kill-buffer (buffer)
   "Kill BUFFER without side effects."
   (and (buffer-live-p buffer)
@@ -467,7 +476,7 @@ If INHIBIT-HIDING is non-nil, do not hide the buffer."
  Core
 
 (cl-defstruct (dirvish (:conc-name dv-))
-  "Define dirvish session ('DV' for short) struct."
+  "Define dirvish session (`DV' for short) struct."
   (type ():documentation "is the type of DV.")
   (root-window () :documentation "is the root/main window of DV.")
   (dedicated ()   :documentation "passes to `set-window-dedicated-p' 
for ROOT-WINDOW.")
@@ -479,7 +488,7 @@ If INHIBIT-HIDING is non-nil, do not hide the buffer."
dirvish-default-layout :documentation "is a full-frame layout recipe.")
   (ls-switches
dired-listing-switches :documentation "is the directory listing switches.")
-  (scopes ()  :documentation "are the 'environments' such as init 
frame of DV.")
+  (scopes ()  :documentation "are the environment of DV such as 
its init frame.")
   (preview-buffers () :documentation "holds all file preview buffers of 
DV.")
   (preview-window ()  :documentation "is the window to display preview 
buffer.")
   (name (cl-gensym)   :documentation "is an unique symbol to identify DV.")
@@ -645,6 +654,10 @@ ARGS is a list of keyword arguments for `dirvish' struct."
 
  Advices
 
+(defun dirvish-save-dedication-a (fn args)
+  "Ensure FN and ARGS applied with window undedicated."
+  (dirvish-save-dedication (apply fn args)))
+
 (defun dirvish-find-entry-a (&optional entry)
   "Find ENTRY in current dirvish session.
 ENTRY can be a filename 

[nongnu] elpa/dirvish 24e612c39d 05/18: fix(core): respect `dirvish-use-header/mode-line`

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 24e612c39de520b713cf8dc1027cd934daf9d28e
Author: Alex Lu 
Commit: Alex Lu 

fix(core): respect `dirvish-use-header/mode-line`

This commit merges scattered mode-line/header-line settings to
dirvish--setup-mode-line, and use the default mode-line/header-line when
dirvish-use-mode/header-line user option is set to nil.

Hope it makes sense.
---
 dirvish.el | 64 +++---
 extensions/dirvish-side.el |  1 -
 2 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index a8e608a2ba..ca11586491 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -510,9 +510,6 @@ ARGS is a list of keyword arguments for `dirvish' struct."
(not (with-current-buffer b server-buffer-clients)))
  do (kill-buffer b)
  finally (setf (dv-index dv) (car (dv-roots dv
-  (when dirvish-use-header-line
-(with-current-buffer index
-  (setq header-line-format dirvish--header-line-fmt)))
   (cl-loop for (_d . b) in (dv-roots dv)
when (not (eq b index)) do (kill-buffer b))
   (when-let* ((wconf (dv-winconf dv))) (set-window-configuration wconf)))
@@ -762,9 +759,9 @@ When FORCE, ensure the preview get refreshed."
 (dirvish-debounce nil
   (if (not (car (dv-layout dv)))
   (and (< emacs-major-version 29) (force-mode-line-update))
-(when (and dirvish-use-mode-line (buffer-live-p f-buf))
+(when (buffer-live-p f-buf)
   (with-current-buffer f-buf (force-mode-line-update)))
-(when (and dirvish-use-header-line (buffer-live-p h-buf))
+(when (buffer-live-p h-buf)
   (with-current-buffer h-buf (force-mode-line-update)))
 (when (or force (not (equal last-index filename)))
   (dirvish--preview-update dv filename
@@ -967,7 +964,8 @@ LEFT and RIGHT are segments aligned to left/right 
respectively.
 If HEADER, set the `dirvish--header-line-fmt' instead."
   `((:eval
  (let* ((dv (dirvish-curr))
-(buf (and (car (dv-layout dv)) (cdr (dv-index dv
+(fullframe-p (car (dv-layout dv)))
+(buf (cdr (dv-index dv)))
 (expand
  (lambda (segs)
(cl-loop for s in segs collect
@@ -1026,14 +1024,28 @@ use `car'.  If HEADER, use `dirvish-header-line-height' 
instead."
(setq-local meow-cursor-type-motion nil
meow-cursor-type-default nil)
 
-(defun dirvish--setup-mode-line (layout)
-  "Setup the mode/header line according to LAYOUT."
-  (setq mode-line-format
-(unless (or layout (not dirvish-use-mode-line))
-  dirvish--mode-line-fmt)
-header-line-format
-(cond ((or layout (not dirvish-use-header-line)) nil)
-  (t (or (dirvish-prop :cus-header) dirvish--header-line-fmt)
+(defun dirvish--setup-mode-line (dv)
+  "Setup the mode/header line for dirvish DV."
+  (let* ((idx-buf (cdr (dv-index dv)))
+ (hl (or (dirvish-prop :cus-header) dirvish--header-line-fmt))
+ (ml dirvish--mode-line-fmt)
+ (fullframe-p (car (dv-layout dv
+(cond ; setup `header-line-format'
+ ((and fullframe-p (not dirvish-use-header-line)))
+ (fullframe-p
+  (with-current-buffer idx-buf (setq header-line-format nil))
+  (with-current-buffer (dirvish--util-buffer 'header dv)
+(setq header-line-format hl)))
+ (dirvish-use-header-line
+  (with-current-buffer idx-buf (setq header-line-format hl
+(cond ; setup `mode-line-format'
+ ((and fullframe-p (not dirvish-use-mode-line)))
+ (fullframe-p
+  (with-current-buffer idx-buf (setq mode-line-format nil))
+  (with-current-buffer (dirvish--util-buffer 'footer dv)
+(setq mode-line-format ml)))
+ (dirvish-use-mode-line
+  (with-current-buffer idx-buf (setq mode-line-format ml))
 
 (defun dirvish-revert (&optional ignore-auto _noconfirm)
   "Reread the Dirvish buffer.
@@ -1106,7 +1118,6 @@ LEVEL is the depth of current window."
  (parent-dirs ())
  (depth (or (caar (dv-layout dv)) 0))
  (i 0))
-(dirvish--setup-mode-line (car (dv-layout dv)))
 (when-let* ((fixed (nth 1 (dv-type dv (setq window-size-fixed fixed))
 (set-window-dedicated-p
  nil (and (or (car (dv-layout dv)) (nth 2 (dv-type dv))) t))
@@ -1139,11 +1150,12 @@ LEVEL is the depth of current window."
 (add-hook 'window-scroll-functions #'dirvish-apply-ansicolor-h nil t))
   (with-current-buffer (dirvish--util-buffer 'header dv)
 (dirvish-prop :dv (dv-name dv))
-(setq cursor-type nil window-size-fixed 'height mode-line-format nil))
+(setq cursor-type nil window-size-fixed 'height
+  mode-line-format nil header-line-format nil))
   (with-current-buffer (dirvish--util-buffer 'footer dv)
 (dirvish-prop :dv (dv-nam

[nongnu] elpa/dirvish 6df7fe856f 07/18: fix(core): `dirvish--init-session` should only run on root-window

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 6df7fe856f2f3267a73f873b7eed58a2a6edbbd8
Author: Alex Lu 
Commit: Alex Lu 

fix(core): `dirvish--init-session` should only run on root-window

dirvish-side--auto-jump sometimes incorrectly init session on wrong windows
because of this mistake.

See: #277
---
 dirvish.el   | 2 +-
 extensions/dirvish-vc.el | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index 14be5a7d10..ec079fe37d 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -808,7 +808,7 @@ When FORCE, ensure the preview get refreshed."
 
 (defun dirvish-winbuf-change-h (window)
   "Rebuild layout once buffer in WINDOW changed."
-  (with-current-buffer (window-buffer window)
+  (with-selected-window window
 (when-let* ((dv (dirvish-curr)))
   (let ((saved-layout (car (dv-layout dv)))
 (saved-winconf (dv-winconf dv)))
diff --git a/extensions/dirvish-vc.el b/extensions/dirvish-vc.el
index 85b2a882ae..6315be0387 100644
--- a/extensions/dirvish-vc.el
+++ b/extensions/dirvish-vc.el
@@ -129,7 +129,7 @@ detail explanation of these states."
 (dirvish-define-attribute vc-state
   "The version control state at left fringe.
 This attribute only works on graphic displays."
-  ;; Avoid setting fringes constantly, which is expensive and slows down Emacs.
+  ;; Avoid setting fringes constantly
   (unless (= (car (window-fringes)) dirvish-vc-state-fringe)
 (set-window-fringes nil dirvish-vc-state-fringe dirvish-window-fringe))
   (let ((ov (make-overlay l-beg l-beg)))
@@ -137,7 +137,7 @@ This attribute only works on graphic displays."
 (state (dirvish-attribute-cache f-name :vc-state))
 (face (alist-get state dirvish-vc-state-face-alist))
 (display `(left-fringe dirvish-vc-gutter . ,(cons face nil
-  (overlay-put
+  (overlay-put ; TODO: very slow when the directory doesn't have any commit
ov 'before-string (propertize " " 'display display)))
 `(ov . ,ov)))
 



[nongnu] elpa/dirvish 15e2cd1925 06/18: fix(core): crashes when preview directory w/ the `.dir-local` entry

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 15e2cd192591e2d01d58bca08be6fe5e4c664b82
Author: Alex Lu 
Commit: Alex Lu 

fix(core): crashes when preview directory w/ the `.dir-local` entry

Reported-by: Henrik Lissner 
---
 dirvish.el | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index ca11586491..14be5a7d10 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -862,12 +862,17 @@ When FORCE, ensure the preview get refreshed."
   (when-let* ((attrs (ignore-errors (file-attributes file)))
   (size (file-attribute-size attrs)))
 (cond ((file-directory-p file) ; default directory previewer
-   (let* ((script `(with-current-buffer
-   (progn (setq insert-directory-program
-,insert-directory-program)
-  (dired-noselect ,file "-AlGh"))
- (buffer-string)))
-  (cmd (format "%S" `(message "\n%s" ,script
+   (let* ((script
+   `(with-current-buffer
+(let ((non-essential t)
+  (delay-mode-hooks t)
+  (enable-local-variables :safe)
+  enable-dir-local-variables)
+  (setq insert-directory-program
+,insert-directory-program)
+  (dired-noselect ,file "-AlGh"))
+  (buffer-string)))
+  (cmd (prin1-to-string `(message "\n%s" ,script
  `(dired . (,dirvish-emacs-bin "-Q" "-batch" "--eval" ,cmd
   ((> size (or large-file-warning-threshold 1000))
`(info . ,(format "File %s is too big for literal preview." file)))



[nongnu] elpa/dirvish d945f7c164 18/18: Merge branch 'elpa/dirvish' of https://git.sv.gnu.org/git/emacs/nongnu

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit d945f7c16469840d126cd1e11fcb9684bf514be0
Merge: 51ab5fa884 4707f99fea
Author: Alex Lu 
Commit: Alex Lu 

Merge branch 'elpa/dirvish' of https://git.sv.gnu.org/git/emacs/nongnu



[nongnu] elpa/dirvish 3bdb7f23b9: feat(core): allow `dirvish-hide-details/cursor` accept a symbol list

2025-02-09 Thread ELPA Syncer
branch: elpa/dirvish
commit 3bdb7f23b94aeebd9c6e6fd218e8135c26f5ec1b
Author: Alex Lu 
Commit: Alex Lu 

feat(core): allow `dirvish-hide-details/cursor` accept a symbol list

Ref: 
https://github.com/doomemacs/doomemacs/blob/2bc052425ca45a41532be0648ebd976d1bd2e6c1/modules/emacs/dired/config.el#L137-L143
---
 dirvish-extras.el|   6 +--
 dirvish.el   | 103 +++
 extensions/dirvish-vc.el |   2 +-
 3 files changed, 72 insertions(+), 39 deletions(-)

diff --git a/dirvish-extras.el b/dirvish-extras.el
index a3ac39afb7..7558ecb922 100644
--- a/dirvish-extras.el
+++ b/dirvish-extras.el
@@ -136,7 +136,7 @@ predicate for that infix."
(lambda () (interactive)
  (setq-default dirvish-attributes dirvish-attributes)
  (setq dirvish-default-layout (dv-ff-layout (dirvish-curr)))
- (dirvish--init-session (dirvish-curr))
+ (dirvish--build-layout (dirvish-curr))
  (revert-buffer)))])
 
 (defun dirvish-find-file-true-path ()
@@ -229,7 +229,7 @@ possibly one or more parent windows."
 (setf (dv-curr-layout dv) new-layout)
 (with-selected-window (dirvish--create-root-window dv)
   (dirvish-save-dedication (switch-to-buffer buf))
-  (dirvish--init-session dv
+  (dirvish--build-layout dv
 
 ;;;###autoload
 (defun dirvish-layout-switch (&optional recipe)
@@ -254,7 +254,7 @@ current layout defined in `dirvish-layout-recipes'."
   (new-recipe (nth new-idx recipes)))
  (setf (dv-curr-layout dv) new-recipe)
  (setf (dv-ff-layout dv) new-recipe)
- (dirvish--init-session dv
+ (dirvish--build-layout dv
 
 (defun dirvish-rename-space-to-underscore ()
   "Rename marked files by replacing space to underscore."
diff --git a/dirvish.el b/dirvish.el
index 368417d8bd..08358f1f11 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -163,12 +163,25 @@ Set it to nil to use the default `mode-line-format'."
   :group 'dirvish :type 'plist)
 
 (defcustom dirvish-hide-details t
-  "Whether to hide detailed information on session startup."
-  :group 'dirvish :type 'boolean)
+  "Whether to hide detailed information in Dirvish buffers.
+When sets to t, it hide detailed listing info for all Dirvish buffers.
+
+Alternatively, the value can be a list of symbols to instruct Dirvish in
+what contexts they should be hided.  The accepted values are:
+ - `dired':when opening a directory using `dired-*' commands.
+ - `dirvish':  when opening full-frame Dirvish.
+ - `dirvish-fd':   when the buffer is create by `dirvish-fd*' commands.
+ - `dirvish-side': when opening Dirvish in the sidebar."
+  :group 'dirvish
+  :type '(choice (boolean :tag "Apply to all Dirvish buffers")
+ (repeat :tag "Apply to a list of buffer types: 'dired, 
'dirvish, 'dirvish-fd or 'dirvish-side" symbol)))
 
 (defcustom dirvish-hide-cursor t
-  "Whether to hide cursor in dirvish buffers."
-  :group 'dirvish :type 'boolean)
+  "Whether to hide cursor in dirvish buffers.
+Works all the same as `dirvish-hide-details' but for cursor."
+  :group 'dirvish
+  :type '(choice (boolean :tag "Apply to all Dirvish buffers")
+ (repeat :tag "Apply to a list of buffer types: 'dired, 
'dirvish, 'dirvish-fd or 'dirvish-side" symbol)))
 
 (defcustom dirvish-window-fringe 1
   "Window fringe for dirvish windows."
@@ -586,8 +599,8 @@ ARGS is a list of keyword arguments for `dirvish' struct."
(setf dirvish--working-preview-dispathchers (dirvish--preview-dps-validate))
(setf dirvish--working-attrs (dirvish--attrs-expand attrs
 
-(defun dirvish--render-attrs-1 (height width pos remote fns ov align-to)
-  "HEIGHT WIDTH POS REMOTE FNS OV ALIGN-TO."
+(defun dirvish--render-attrs-1 (height width pos remote fns ov align-to no-hl)
+  "HEIGHT WIDTH POS REMOTE FNS OV ALIGN-TO NO-HL."
   (forward-line (- 0 height))
   (cl-dotimes (_ (* 2 height))
 (when (eobp) (cl-return))
@@ -595,8 +608,7 @@ ARGS is a list of keyword arguments for `dirvish' struct."
   (f-end (dired-move-to-end-of-filename t))
   (l-beg (line-beginning-position)) (l-end (line-end-position))
   (f-wid 0) f-str f-name f-attrs f-type hl-face left right)
-  (setq hl-face
-(and (eq (or f-beg l-beg) pos) dirvish-hide-cursor 
'dirvish-hl-line))
+  (setq hl-face (and (eq (or f-beg l-beg) pos) no-hl 'dirvish-hl-line))
   (when f-beg
 (setq f-str (buffer-substring f-beg f-end)
   f-wid (string-width f-str)
@@ -639,6 +651,7 @@ ARGS is a list of keyword arguments for `dirvish' struct."
   "Render or CLEAR attributes in DV's dirvish buffer."
   (cl-loop with remote = (dirvish-prop :remote) with gui = (dirvish-prop :gui)
with fns = () with height = (frame-height)
+   with no-hl = (dirvish--apply-hiding-p dirvish-hide-cursor)
with remain = (- (window-width) (if gui 1 2))
for (_ width pred render ov) in di

[elpa] externals/ellama 36f14da0c0 2/3: Merge pull request #207 from s-kostyaev/add-semantic-similarity-with-reasoning

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 36f14da0c0d99bb25279fd0a3ecb4559615a8228
Merge: ad5b03d913 4402eabcc5
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #207 from 
s-kostyaev/add-semantic-similarity-with-reasoning

Add semantic similarity reasoning with context
---
 ellama.el| 40 +++-
 tests/integration-test-ellama.el | 18 ++
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 241cb35963..5cd7f7b536 100644
--- a/ellama.el
+++ b/ellama.el
@@ -382,6 +382,26 @@ is not changed.
   :group 'ellama
   :type 'string)
 
+(defcustom ellama-semantic-identity-reasoning-template "Determine if two texts 
have the same meaning. If they are similar but differ in key aspects, they are 
not the same. Return the answer as a JSON object.
+
+%s
+
+
+%s
+
+
+%s
+
+
+{
+  \"think\": \"Think if texts have same meaning in provided context\",
+  \"same\": true
+}
+"
+  "Extract string list template with context and reasoning."
+  :group 'ellama
+  :type 'string)
+
 (defcustom ellama-extraction-provider nil
   "LLM provider for data extraction."
   :group 'ellama
@@ -2244,6 +2264,24 @@ otherwise prompt user for URL to summarize."
   (kill-region (point) (point-max))
   (ellama-summarize
 
+(defun ellama-make-semantic-similar-p-with-context (context)
+  "Return function for checking semantic similarity of two texts in CONTEXT."
+  (lambda (text1 text2)
+"Check if TEXT1 means the same as TEXT2."
+(plist-get
+ (json-parse-string
+  (llm-chat
+   (or ellama-extraction-provider ellama-provider)
+   (llm-make-chat-prompt
+   (format ellama-semantic-identity-reasoning-template context text1 text2)
+   :response-format '(:type object :properties
+(:think (:type string)
+:same (:type boolean))
+:required ["think" "same"])))
+  :object-type 'plist
+  :false-object nil)
+ :same)))
+
 (defun ellama-semantic-similar-p (text1 text2)
   "Check if TEXT1 means the same as TEXT2."
   (plist-get
@@ -2254,7 +2292,7 @@ otherwise prompt user for URL to summarize."
   (format ellama-semantic-identity-template text1 text2)
   :response-format '(:type object :properties
   (:same (:type boolean))
-  :required (same
+  :required ["same"])))
 :object-type 'plist
 :false-object nil)
:same))
diff --git a/tests/integration-test-ellama.el b/tests/integration-test-ellama.el
index ab329dbc70..aaea94c719 100644
--- a/tests/integration-test-ellama.el
+++ b/tests/integration-test-ellama.el
@@ -48,6 +48,24 @@
   '("How many r's in strawberry?"
 "How many times letter e appears in word strawberry?"
 
+(ert-deftest ellama-semantic-similar-reasoning-test ()
+  "Check if `ellama-make-semantic-similar-p-with-context' works correctly."
+  (let ((testfn (ellama-make-semantic-similar-p-with-context
+"Communication between user and assistant")))
+(should (equal-including-properties
+(let ((res))
+  (dolist (el '("How many r's in strawberry?"
+"How many times letter r appears in word 
strawberry?"
+"How many r's in strawberry?"
+"How many times letter e appears in word 
strawberry?"
+"Define RAPTOR"
+"What does mean RAPTOR?"))
+(cl-pushnew el res :test testfn))
+  (reverse res))
+'("How many r's in strawberry?"
+  "How many times letter e appears in word strawberry?"
+  "Define RAPTOR")
+
 (provide 'integration-test-ellama)
 
 ;;; integration-test-ellama.el ends here



[elpa] main e48486971e: * elpa-packages (scanner): Update URL.

2025-02-09 Thread Stefan Kangas
branch: main
commit e48486971eeb92e383763118f6d26e5e1fb08f26
Author: Stefan Kangas 
Commit: Stefan Kangas 

* elpa-packages (scanner): Update URL.

Ref: https://lists.gnu.org/r/emacs-devel/2025-02/msg00286.html
---
 elpa-packages | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/elpa-packages b/elpa-packages
index b212ad690f..c531bacd06 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -690,7 +690,7 @@
  (rudel:url nil) ;; Was 
bzr::bzr://rudel.bzr.sourceforge.net/bzrroot/rudel/trunk
  (satchel  :url "https://git.sr.ht/~theo/satchel";
   :ignored-files ("LICENSE"))
- (scanner  :url "https://gitlab.com/rstocker/scanner.git";)
+ (scanner  :url "https://codeberg.org/rstocker/scanner.git";)
  (scroll-restore   :url nil)
  (sed-mode :url nil)
  (seq  :url nil)



[elpa] externals/ellama 4402eabcc5 1/3: Add semantic similarity reasoning with context

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 4402eabcc5f728454c20118ee4f66b2d7509ae47
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add semantic similarity reasoning with context

Added a new custom variable
`ellama-semantic-identity-reasoning-template` to define the template
for checking semantic similarity of two texts in a given context.
Implemented the function `ellama-make-semantic-similar-p-with-context`
to create a function that checks if two texts have the same meaning
using the provided context. Updated the test file to include a new
integration test for the semantic similarity reasoning feature.
---
 ellama.el| 40 +++-
 tests/integration-test-ellama.el | 18 ++
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 241cb35963..5cd7f7b536 100644
--- a/ellama.el
+++ b/ellama.el
@@ -382,6 +382,26 @@ is not changed.
   :group 'ellama
   :type 'string)
 
+(defcustom ellama-semantic-identity-reasoning-template "Determine if two texts 
have the same meaning. If they are similar but differ in key aspects, they are 
not the same. Return the answer as a JSON object.
+
+%s
+
+
+%s
+
+
+%s
+
+
+{
+  \"think\": \"Think if texts have same meaning in provided context\",
+  \"same\": true
+}
+"
+  "Extract string list template with context and reasoning."
+  :group 'ellama
+  :type 'string)
+
 (defcustom ellama-extraction-provider nil
   "LLM provider for data extraction."
   :group 'ellama
@@ -2244,6 +2264,24 @@ otherwise prompt user for URL to summarize."
   (kill-region (point) (point-max))
   (ellama-summarize
 
+(defun ellama-make-semantic-similar-p-with-context (context)
+  "Return function for checking semantic similarity of two texts in CONTEXT."
+  (lambda (text1 text2)
+"Check if TEXT1 means the same as TEXT2."
+(plist-get
+ (json-parse-string
+  (llm-chat
+   (or ellama-extraction-provider ellama-provider)
+   (llm-make-chat-prompt
+   (format ellama-semantic-identity-reasoning-template context text1 text2)
+   :response-format '(:type object :properties
+(:think (:type string)
+:same (:type boolean))
+:required ["think" "same"])))
+  :object-type 'plist
+  :false-object nil)
+ :same)))
+
 (defun ellama-semantic-similar-p (text1 text2)
   "Check if TEXT1 means the same as TEXT2."
   (plist-get
@@ -2254,7 +2292,7 @@ otherwise prompt user for URL to summarize."
   (format ellama-semantic-identity-template text1 text2)
   :response-format '(:type object :properties
   (:same (:type boolean))
-  :required (same
+  :required ["same"])))
 :object-type 'plist
 :false-object nil)
:same))
diff --git a/tests/integration-test-ellama.el b/tests/integration-test-ellama.el
index ab329dbc70..aaea94c719 100644
--- a/tests/integration-test-ellama.el
+++ b/tests/integration-test-ellama.el
@@ -48,6 +48,24 @@
   '("How many r's in strawberry?"
 "How many times letter e appears in word strawberry?"
 
+(ert-deftest ellama-semantic-similar-reasoning-test ()
+  "Check if `ellama-make-semantic-similar-p-with-context' works correctly."
+  (let ((testfn (ellama-make-semantic-similar-p-with-context
+"Communication between user and assistant")))
+(should (equal-including-properties
+(let ((res))
+  (dolist (el '("How many r's in strawberry?"
+"How many times letter r appears in word 
strawberry?"
+"How many r's in strawberry?"
+"How many times letter e appears in word 
strawberry?"
+"Define RAPTOR"
+"What does mean RAPTOR?"))
+(cl-pushnew el res :test testfn))
+  (reverse res))
+'("How many r's in strawberry?"
+  "How many times letter e appears in word strawberry?"
+  "Define RAPTOR")
+
 (provide 'integration-test-ellama)
 
 ;;; integration-test-ellama.el ends here



[elpa] externals/ellama updated (ad5b03d913 -> 6fb94007b9)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/ellama.

  from  ad5b03d913 Bump version
   new  4402eabcc5 Add semantic similarity reasoning with context
   new  36f14da0c0 Merge pull request #207 from 
s-kostyaev/add-semantic-similarity-with-reasoning
   new  6fb94007b9 Bump version


Summary of changes:
 NEWS.org |  5 +
 ellama.el| 42 ++--
 tests/integration-test-ellama.el | 18 +
 3 files changed, 63 insertions(+), 2 deletions(-)



[elpa] externals/ellama 6fb94007b9 3/3: Bump version

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 6fb94007b983a81f06e693569faf70513a1e2157
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Bump version
---
 NEWS.org  | 5 +
 ellama.el | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index db635761ca..a24c1ebbcb 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,8 @@
+* Version 0.13.11
+- Add function ~ellama-make-semantic-similar-p-with-context~ that
+  return test function for checking if two provided texts are meaning
+  the same in provided context. It can be useful for creating
+  semantically uniq lists of strings.
 * Version 0.13.10
 - Refactor file name fixing logic. Change the regular expression for
   handling forbidden filename characters to improve efficiency.
diff --git a/ellama.el b/ellama.el
index 5cd7f7b536..3b6d95fca7 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
-;; Version: 0.13.10
+;; Version: 0.13.11
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/org updated (5e17097099 -> 84118cad6b)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  5e17097099 org-babel-execute:emacs-lisp: Do not rely upon 
undocumented return value of `pp'
  adds  8faa5ad64f lisp/org.el (org-open-at-point): Fix typo in the 
docstring
   new  d2e8100b2d org-table-duration-custom-format: Fix type spec
   new  c2627ae273 Merge branch 'bugfix'
   new  84118cad6b Fix icorrect call to `skip-char-backward' in 1517ead2aa


Summary of changes:
 lisp/org-cycle.el |  2 +-
 lisp/org-table.el | 10 +-
 lisp/org.el   |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)



[elpa] externals/org c2627ae273 1/2: Merge branch 'bugfix'

2025-02-09 Thread ELPA Syncer
branch: externals/org
commit c2627ae27376df305bff032f2af85da22db10aaf
Merge: 5e17097099 d2e8100b2d
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Merge branch 'bugfix'
---
 lisp/org-table.el | 10 +-
 lisp/org.el   |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index 21fadd7873..39115bb5f5 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -344,11 +344,11 @@ The `U' flag in a table formula will select this specific 
format for
 a single formula."
   :group 'org-table-calculation
   :version "24.1"
-  :type '(choice (symbol :tag "Seconds" 'seconds)
-(symbol :tag "Minutes" 'minutes)
-(symbol :tag "Hours  " 'hours)
-(symbol :tag "Days   " 'days)
-(symbol :tag "HH:MM  " 'hh:mm)))
+  :type '(choice (symbol :tag "Seconds" seconds)
+(symbol :tag "Minutes" minutes)
+(symbol :tag "Hours  " hours)
+(symbol :tag "Days   " days)
+(symbol :tag "HH:MM  " hh:mm)))
 
 (defcustom org-table-duration-hour-zero-padding t
   "Non-nil means hours in table duration computations should be zero-padded.
diff --git a/lisp/org.el b/lisp/org.el
index 2e82b6e187..d012819a9c 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8653,7 +8653,7 @@ When point is a footnote definition, move to the first 
reference
 found.  If it is on a reference, move to the associated
 definition.
 
-When point is on a src-block of inline src-block, open its result.
+When point is on a src-block or inline src-block, open its result.
 
 When point is on a citation, follow it.
 



[elpa] externals-release/org d2e8100b2d: org-table-duration-custom-format: Fix type spec

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit d2e8100b2db63f3f40464775876ea6ba2671e1a3
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-table-duration-custom-format: Fix type spec

* lisp/org-table.el (org-table-duration-custom-format): Fix type
specification.

Reported-by: Mauro Aranda 
Link: 
https://orgmode.org/list/6432f53c-35a3-416f-9e8c-423af6e08...@gmail.com
---
 lisp/org-table.el | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index 931d14bb4d..a210448b36 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -344,11 +344,11 @@ The `U' flag in a table formula will select this specific 
format for
 a single formula."
   :group 'org-table-calculation
   :version "24.1"
-  :type '(choice (symbol :tag "Seconds" 'seconds)
-(symbol :tag "Minutes" 'minutes)
-(symbol :tag "Hours  " 'hours)
-(symbol :tag "Days   " 'days)
-(symbol :tag "HH:MM  " 'hh:mm)))
+  :type '(choice (symbol :tag "Seconds" seconds)
+(symbol :tag "Minutes" minutes)
+(symbol :tag "Hours  " hours)
+(symbol :tag "Days   " days)
+(symbol :tag "HH:MM  " hh:mm)))
 
 (defcustom org-table-duration-hour-zero-padding t
   "Non-nil means hours in table duration computations should be zero-padded.



[elpa] externals/org 84118cad6b 2/2: Fix icorrect call to `skip-char-backward' in 1517ead2aa

2025-02-09 Thread ELPA Syncer
branch: externals/org
commit 84118cad6ba1da0a9c21464ca0a368fed26223ea
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Fix icorrect call to `skip-char-backward' in 1517ead2aa

* lisp/org-cycle.el (org-cycle-show-empty-lines): Remove incorrect []
inside argument.  They mean searching for literal [ and ], not as in
regexp.
---
 lisp/org-cycle.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-cycle.el b/lisp/org-cycle.el
index c61aa47ec8..3f90701ac5 100644
--- a/lisp/org-cycle.el
+++ b/lisp/org-cycle.el
@@ -784,7 +784,7 @@ Always show empty lines at the end of file."
   ;; Never hide empty lines at the end of the file.
   (save-excursion
 (goto-char (point-max))
-(skip-chars-backward "[ \t\n]")
+(skip-chars-backward " \t\n")
 (org-fold-region (point) (point-max) nil 'outline)))
 
 (defun org-cycle-hide-archived-subtrees (state)



[elpa] main f4226de602: * elpa-packages (embark-consult, lv): Mark them as subpackages

2025-02-09 Thread Stefan Monnier via
branch: main
commit f4226de60240ecf44d05344e5837c1d640b0c854
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (embark-consult, lv): Mark them as subpackages
---
 elpa-packages | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/elpa-packages b/elpa-packages
index c531bacd06..04bdea57c1 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -304,7 +304,7 @@
  (embark   :url "https://github.com/oantolin/embark";
   :doc "embark.texi"
   :ignored-files ("embark-consult.el" "avy-embark-collect.el"))
- (embark-consult   :url "https://github.com/oantolin/embark";
+ (embark-consult   :url embark
   :ignored-files ("embark.el" "embark.texi" "avy-embark-collect.el"
   "embark-org.el"))
  (ement:url "https://github.com/alphapapa/ement.el.git";
@@ -486,7 +486,7 @@
   :ignored-files ("COPYING" "doclicense.texi"))
  (luwak:url "https://g.ypei.me/luwak.git";
   :readme "README.org")
- (lv   :url "https://github.com/abo-abo/hydra";
+ (lv   :url hydra
   :ignored-files ("hydra*" "README.md" "doc" "targets"))
  (m-buffer :url "https://github.com/phillord/m-buffer-el";
   ;; FIXME: This is fairly ugly, we should clean it up.



[elpa] branch externals/embark-consult deleted (was d5df0eff18)

2025-02-09 Thread Stefan Monnier via
monnier pushed a change to branch externals/embark-consult.

   was  d5df0eff18 Merge pull request #749 from minad/fix-last-heading

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[nongnu] elpa/solarized-theme ac09b782f2: Update flymake -error, -warning, and -note to match flycheck

2025-02-09 Thread ELPA Syncer
branch: elpa/solarized-theme
commit ac09b782f26936d72f0cf1bbe1ff8d589ca49b04
Author: Krzysztof Drewniak 
Commit: Bozhidar Batsov 

Update flymake -error, -warning, and -note to match flycheck

This commit updates the faces for Flymake's reported errors, warnings,
and notes to make them more visible in non-GUI environments.
---
 solarized-faces.el | 13 +
 1 file changed, 13 insertions(+)

diff --git a/solarized-faces.el b/solarized-faces.el
index f3f3ec38b8..667400231a 100644
--- a/solarized-faces.el
+++ b/solarized-faces.el
@@ -650,6 +650,19 @@
  :background ,(if solarized-emphasize-indicators
   blue-lc s-fringe-bg) :weight 
bold
 ; flymake
+ `(flymake-error
+   ((,(append '((supports :underline (:style wave))) class)
+ (:underline (:style wave :color ,red) :inherit unspecified))
+(,class (:foreground ,red-hc :background ,red-lc :weight bold 
:underline t
+ `(flymake-warning
+   ((,(append '((supports :underline (:style wave))) class)
+ (:underline (:style wave :color ,yellow) :inherit unspecified))
+(,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold 
:underline t
+ `(flymake-note
+   ((,(append '((supports :underline (:style wave))) class)
+ (:underline (:style wave :color ,(if solarized-emphasize-indicators
+  blue base03)) :inherit 
unspecified))
+(,class (:foreground ,blue-hc :background ,blue-lc :weight bold 
:underline t
  `(flymake-errline
((,(append '((supports :underline (:style wave))) class)
  (:underline (:style wave :color ,red) :inherit unspecified



[elpa] externals/ellama 53a9e08186 1/9: Improve file name handling

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 53a9e08186ad395cdcf688e103d08c535154fda9
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Improve file name handling

Added a new function `ellama--fix-file-name` to replace forbidden
characters in file names with underscores. Updated
`ellama-generate-name` to use this new function for generating session
names. Added a corresponding test case in `test-ellama.el`.
---
 ellama.el| 20 +++-
 tests/test-ellama.el |  5 +
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 775895d626..614b431c58 100644
--- a/ellama.el
+++ b/ellama.el
@@ -643,6 +643,24 @@ EXTRA contains additional information."
   "Return ellama session buffer by provided ID."
   (gethash id ellama--active-sessions))
 
+(defun ellama--fix-file-name (name)
+  "Change forbidden characters in the NAME to acceptable."
+  (replace-regexp-in-string (rx (or (literal "/")
+   (literal "\\")
+   (literal "?")
+   (literal "%")
+   (literal "*")
+   (literal ":")
+   (literal "|")
+   (literal "\"")
+   (literal "<")
+   (literal ">")
+   (literal ".")
+   (literal ";")
+   (literal "=")))
+   "_"
+   name))
+
 (defun ellama-generate-name-by-words (provider action prompt)
   "Generate name for ACTION by PROVIDER by getting first N words from PROMPT."
   (let* ((cleaned-prompt (replace-regexp-in-string "/" "_" prompt))
@@ -687,7 +705,7 @@ EXTRA contains additional information."
 
 (defun ellama-generate-name (provider action prompt)
   "Generate name for ellama ACTION by PROVIDER according to PROMPT."
-  (replace-regexp-in-string "/" "_" (funcall ellama-naming-scheme provider 
action prompt)))
+  (ellama--fix-file-name (funcall ellama-naming-scheme provider action 
prompt)))
 
 (defvar ellama--new-session-context nil)
 
diff --git a/tests/test-ellama.el b/tests/test-ellama.el
index 8c93f6ee03..d4d4c878f5 100644
--- a/tests/test-ellama.el
+++ b/tests/test-ellama.el
@@ -388,6 +388,11 @@ average_score = 
calculate_average_score(student_math_score, student_science_scor
 print(f\"The average score of {student_name} in {class_name} is: 
{average_score:.2f}\")
 #+END_SRC\n\nIn this example:\n- Variable names like ~student/name~, 
~class/name~, and ~grade/level~ use snake/case.\n- The function name 
~calculate/average/score~ also follows the snake_case convention.\n\nSnake case 
helps improve readability, especially in languages that are sensitive to 
capitalization\nlike Python."
 
+(ert-deftest test-ellama--fix-file-name ()
+  (should (string=
+  (ellama--fix-file-name "a/\\?%*:|\"<>.;=")
+  "a_")))
+
 (provide 'test-ellama)
 
 ;;; test-ellama.el ends here



[elpa] externals/ellama e037bbd213 9/9: Bump version

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit e037bbd213a0441c1aa37a72a4c9cb7039df38ef
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Bump version
---
 NEWS.org  | 2 ++
 ellama.el | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index 12e17193f0..a1d13b4979 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,5 @@
+* Version 0.13.9
+- Fix adding buffer to context.
 * Version 0.13.8
 - Fixed file name generation for all operating systems.
 - Fix disable paragraphs filling.
diff --git a/ellama.el b/ellama.el
index ad55f7349d..00e3c0cf6b 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
-;; Version: 0.13.8
+;; Version: 0.13.9
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/ellama a3127089a9 6/9: Bump version

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit a3127089a98a7aff33233848eda08770b0f97b30
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Bump version
---
 NEWS.org  | 6 ++
 ellama.el | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index 4c0e047f4f..12e17193f0 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,9 @@
+* Version 0.13.8
+- Fixed file name generation for all operating systems.
+- Fix disable paragraphs filling.
+- Add ~ellama-define-word~ command to transient menu.
+- Add ~ellama-generate-name-by-reasoning-llm~ funtion to use
+r1 distilled models for naming new sessions.
 * Version 0.13.7
 - Add missing requires for integration tests.
 * Version 0.13.6
diff --git a/ellama.el b/ellama.el
index 066692a06e..67edcd5d27 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
-;; Version: 0.13.7
+;; Version: 0.13.8
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/ellama c14cfee4bf 2/9: Add conditional filling based on `ellama-fill-paragraphs`

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit c14cfee4bfa9c5dae17ab4fcab1ae6134033021c
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add conditional filling based on `ellama-fill-paragraphs`

Added checks for `ellama-fill-paragraphs` to conditionally enable
paragraph filling in various functions. This allows users to control
whether long lines and paragraphs should be automatically filled.
---
 ellama.el | 34 +++---
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/ellama.el b/ellama.el
index 614b431c58..0c21cc8bfc 100644
--- a/ellama.el
+++ b/ellama.el
@@ -467,12 +467,14 @@ Too low value can break generated code by splitting long 
comment lines."
 
 (defun ellama--fill-long-lines (text)
   "Fill long lines only in TEXT."
-  (with-temp-buffer
-(insert (propertize text 'hard t))
-(let ((fill-column ellama-long-lines-length)
- (use-hard-newlines t))
-  (fill-region (point-min) (point-max) nil t t))
-(buffer-substring-no-properties (point-min) (point-max
+  (if ellama-fill-paragraphs
+  (with-temp-buffer
+   (insert (propertize text 'hard t))
+   (let ((fill-column ellama-long-lines-length)
+ (use-hard-newlines t))
+ (fill-region (point-min) (point-max) nil t t))
+   (buffer-substring-no-properties (point-min) (point-max)))
+text))
 
 (defun ellama--replace-first-begin-src (text)
   "Replace first begin src in TEXT."
@@ -532,9 +534,10 @@ Too low value can break generated code by splitting long 
comment lines."
 
   ;; filling long lines
   (goto-char beg)
-  (let ((fill-column ellama-long-lines-length)
-   (use-hard-newlines t))
-(fill-region beg end nil t t)))
+  (when ellama-fill-paragraphs
+(let ((fill-column ellama-long-lines-length)
+ (use-hard-newlines t))
+  (fill-region beg end nil t t
 
 (defun ellama--replace-outside-of-code-blocks (text)
   "Replace markdown elements in TEXT with org equivalents.
@@ -1484,12 +1487,13 @@ failure (with BUFFER current).
(goto-char start)
(delete-region start end)
(insert (funcall filter text))
-(when (pcase ellama-fill-paragraphs
-((cl-type function) (funcall 
ellama-fill-paragraphs))
-((cl-type boolean) ellama-fill-paragraphs)
-((cl-type list) (and (apply #'derived-mode-p
-   ellama-fill-paragraphs)
-(not (equal major-mode 
'org-mode)
+(when (and ellama-fill-paragraphs
+  (pcase ellama-fill-paragraphs
+((cl-type function) (funcall 
ellama-fill-paragraphs))
+((cl-type boolean) ellama-fill-paragraphs)
+((cl-type list) (and (apply #'derived-mode-p
+
ellama-fill-paragraphs)
+ (not (equal major-mode 
'org-mode))
   (fill-region start (point)))
(goto-char pt))
  (when-let ((ellama-auto-scroll)



[elpa] externals/ellama fcb8d04f39 8/9: Merge pull request #205 from s-kostyaev/fix-add-buffer-to-context

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit fcb8d04f39112c978d91e1d41730a1b4ed0a482b
Merge: a3127089a9 e1bd9ecfc6
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #205 from s-kostyaev/fix-add-buffer-to-context

Fix buffer name handling in context addition
---
 ellama.el | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 67edcd5d27..ad55f7349d 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1302,7 +1302,10 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (defun ellama-context-add-buffer (buf)
   "Add BUF to context."
   (interactive "bSelect buffer: ")
-  (let ((element (ellama-context-element-buffer :name buf)))
+  (let* ((buffer-name (if (stringp buf)
+ buf
+   (buffer-name buf)))
+(element (ellama-context-element-buffer :name buffer-name)))
 (ellama-context-element-add element)))
 
 ;;;###autoload



[elpa] externals/ellama e1bd9ecfc6 7/9: Fix buffer name handling in context addition

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit e1bd9ecfc6495bc235efa8d70350edf705c80648
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Fix buffer name handling in context addition

Ensure that the buffer name is correctly extracted and used when
adding a buffer to the context. The code now checks if `buf` is a
string and uses it directly, otherwise, it retrieves the buffer name
using `buffer-name`.
---
 ellama.el | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 67edcd5d27..ad55f7349d 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1302,7 +1302,10 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (defun ellama-context-add-buffer (buf)
   "Add BUF to context."
   (interactive "bSelect buffer: ")
-  (let ((element (ellama-context-element-buffer :name buf)))
+  (let* ((buffer-name (if (stringp buf)
+ buf
+   (buffer-name buf)))
+(element (ellama-context-element-buffer :name buffer-name)))
 (ellama-context-element-add element)))
 
 ;;;###autoload



[elpa] externals/ellama eeb464c21e 5/9: Merge pull request #203 from s-kostyaev/fix-naming

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit eeb464c21e40b1386b65f07e195f1d1c6ed45d32
Merge: cc436ef525 85e9d253c2
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #203 from s-kostyaev/fix-naming

Improve file name handling
---
 ellama.el| 76 +++-
 tests/test-ellama.el |  5 
 2 files changed, 63 insertions(+), 18 deletions(-)

diff --git a/ellama.el b/ellama.el
index 775895d626..066692a06e 100644
--- a/ellama.el
+++ b/ellama.el
@@ -220,6 +220,7 @@ PROMPT is a prompt string."
   (const :tag "By first N words of prompt" 
ellama-generate-name-by-words)
   (const :tag "By current time" ellama-generate-name-by-time)
  (const :tag "By generating name with LLM based on prompt." 
ellama-generate-name-by-llm)
+ (const :tag "By generating name with reasoning LLM based on prompt." 
ellama-generate-name-by-reasoning-llm)
   (function :tag "By custom function")))
 
 (defcustom ellama-define-word-prompt-template "Define %s"
@@ -329,7 +330,7 @@ Improved abc feature by adding new xyz module.
   :group 'ellama
   :type 'string)
 
-(defcustom ellama-get-name-template "I will get you user query, you should 
return short topic only, what this conversation about. NEVER respond to query 
itself. Topic must be short and concise.
+(defcustom ellama-get-name-template "I will get you user query, you should 
return short topic only, what this conversation about. NEVER respond to query 
itself. Topic must be short and concise. Do not add additional words like 'the 
topic is', respond with topic only.
 
 Query: Why is sky blue?
 Topic: Blue sky
@@ -467,12 +468,14 @@ Too low value can break generated code by splitting long 
comment lines."
 
 (defun ellama--fill-long-lines (text)
   "Fill long lines only in TEXT."
-  (with-temp-buffer
-(insert (propertize text 'hard t))
-(let ((fill-column ellama-long-lines-length)
- (use-hard-newlines t))
-  (fill-region (point-min) (point-max) nil t t))
-(buffer-substring-no-properties (point-min) (point-max
+  (if ellama-fill-paragraphs
+  (with-temp-buffer
+   (insert (propertize text 'hard t))
+   (let ((fill-column ellama-long-lines-length)
+ (use-hard-newlines t))
+ (fill-region (point-min) (point-max) nil t t))
+   (buffer-substring-no-properties (point-min) (point-max)))
+text))
 
 (defun ellama--replace-first-begin-src (text)
   "Replace first begin src in TEXT."
@@ -532,9 +535,10 @@ Too low value can break generated code by splitting long 
comment lines."
 
   ;; filling long lines
   (goto-char beg)
-  (let ((fill-column ellama-long-lines-length)
-   (use-hard-newlines t))
-(fill-region beg end nil t t)))
+  (when ellama-fill-paragraphs
+(let ((fill-column ellama-long-lines-length)
+ (use-hard-newlines t))
+  (fill-region beg end nil t t
 
 (defun ellama--replace-outside-of-code-blocks (text)
   "Replace markdown elements in TEXT with org equivalents.
@@ -643,6 +647,24 @@ EXTRA contains additional information."
   "Return ellama session buffer by provided ID."
   (gethash id ellama--active-sessions))
 
+(defun ellama--fix-file-name (name)
+  "Change forbidden characters in the NAME to acceptable."
+  (replace-regexp-in-string (rx (or (literal "/")
+   (literal "\\")
+   (literal "?")
+   (literal "%")
+   (literal "*")
+   (literal ":")
+   (literal "|")
+   (literal "\"")
+   (literal "<")
+   (literal ">")
+   (literal ".")
+   (literal ";")
+   (literal "=")))
+   "_"
+   name))
+
 (defun ellama-generate-name-by-words (provider action prompt)
   "Generate name for ACTION by PROVIDER by getting first N words from PROMPT."
   (let* ((cleaned-prompt (replace-regexp-in-string "/" "_" prompt))
@@ -669,12 +691,28 @@ EXTRA contains additional information."
"\n")))
  "\\.")))
 
+(defun ellama-remove-reasoning (text)
+  "Remove R1-like reasoning from TEXT."
+  (string-trim (replace-regexp-in-string
+   "\\(.\\|\n\\)*"
+   ""
+   text)))
+
 (defun ellama-generate-name-by-llm (provider _action prompt)
   "Generate name for ellama ACTION by PROVIDER and PROMPT by LLM."
   (format "%s (%s)"
  (ellama-get-name prompt)
  (llm-name provider)))
 
+(defun ellama-generate-name-by-reasoning-llm (provider _action prompt)
+  "Generate name for ellama ACTION by PROVIDER and PROMPT by LLM."
+  (format "%s (%s)"
+ (ellama-remove-reasoning
+  (llm-chat (or ellama-naming-provider ellama-provider)
+   

[elpa] externals/ellama updated (cc436ef525 -> e037bbd213)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/ellama.

  from  cc436ef525 Bump version
   new  53a9e08186 Improve file name handling
   new  c14cfee4bf Add conditional filling based on `ellama-fill-paragraphs`
   new  430657f3f3 Add define word command to transient menu
   new  85e9d253c2 Add function to remove reasoning and update name 
generation
   new  eeb464c21e Merge pull request #203 from s-kostyaev/fix-naming
   new  a3127089a9 Bump version
   new  e1bd9ecfc6 Fix buffer name handling in context addition
   new  fcb8d04f39 Merge pull request #205 from 
s-kostyaev/fix-add-buffer-to-context
   new  e037bbd213 Bump version


Summary of changes:
 NEWS.org |  8 +
 ellama.el| 83 +++-
 tests/test-ellama.el |  5 
 3 files changed, 76 insertions(+), 20 deletions(-)



[elpa] externals/ellama 85e9d253c2 4/9: Add function to remove reasoning and update name generation

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 85e9d253c2799823a80f6383d6ec68ce6e530494
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add function to remove reasoning and update name generation

Added a new function `ellama-remove-reasoning` to strip R1-like
reasoning from text. Updated `ellama-generate-name-by-llm` and added
`ellama-generate-name-by-reasoning-llm` to use this new function for
generating names based on LLM responses, ensuring the topic is
returned without additional words or formatting.
---
 ellama.el | 19 ++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index c544636ddd..066692a06e 100644
--- a/ellama.el
+++ b/ellama.el
@@ -220,6 +220,7 @@ PROMPT is a prompt string."
   (const :tag "By first N words of prompt" 
ellama-generate-name-by-words)
   (const :tag "By current time" ellama-generate-name-by-time)
  (const :tag "By generating name with LLM based on prompt." 
ellama-generate-name-by-llm)
+ (const :tag "By generating name with reasoning LLM based on prompt." 
ellama-generate-name-by-reasoning-llm)
   (function :tag "By custom function")))
 
 (defcustom ellama-define-word-prompt-template "Define %s"
@@ -329,7 +330,7 @@ Improved abc feature by adding new xyz module.
   :group 'ellama
   :type 'string)
 
-(defcustom ellama-get-name-template "I will get you user query, you should 
return short topic only, what this conversation about. NEVER respond to query 
itself. Topic must be short and concise.
+(defcustom ellama-get-name-template "I will get you user query, you should 
return short topic only, what this conversation about. NEVER respond to query 
itself. Topic must be short and concise. Do not add additional words like 'the 
topic is', respond with topic only.
 
 Query: Why is sky blue?
 Topic: Blue sky
@@ -690,12 +691,28 @@ EXTRA contains additional information."
"\n")))
  "\\.")))
 
+(defun ellama-remove-reasoning (text)
+  "Remove R1-like reasoning from TEXT."
+  (string-trim (replace-regexp-in-string
+   "\\(.\\|\n\\)*"
+   ""
+   text)))
+
 (defun ellama-generate-name-by-llm (provider _action prompt)
   "Generate name for ellama ACTION by PROVIDER and PROMPT by LLM."
   (format "%s (%s)"
  (ellama-get-name prompt)
  (llm-name provider)))
 
+(defun ellama-generate-name-by-reasoning-llm (provider _action prompt)
+  "Generate name for ellama ACTION by PROVIDER and PROMPT by LLM."
+  (format "%s (%s)"
+ (ellama-remove-reasoning
+  (llm-chat (or ellama-naming-provider ellama-provider)
+(llm-make-simple-chat-prompt
+ (format ellama-get-name-template prompt
+ (llm-name provider)))
+
 (defun ellama-get-current-time ()
   "Return string representation of current time."
   (replace-regexp-in-string



[elpa] externals/ellama 430657f3f3 3/9: Add define word command to transient menu

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit 430657f3f3d44bf9243014cae8371f2fe911f267
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add define word command to transient menu

Added new command 'Define word' to the transient menu in
ellama.el.
---
 ellama.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 0c21cc8bfc..c544636ddd 100644
--- a/ellama.el
+++ b/ellama.el
@@ -2400,7 +2400,8 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 ("t" "Translate Commands" ellama-transient-translate-menu)
 ("m" "Make Commands" ellama-transient-make-menu)
 ("k" "Text Complete" ellama-complete)
-("g" "Text change" ellama-change)]]
+("g" "Text change" ellama-change)
+("d" "Define word" ellama-define-word)]]
   [["System"
 ("S" "Session Commands" ellama-transient-session-menu)
 ("x" "Context Commands" ellama-transient-context-menu)



[elpa] externals/org 1517ead2aa: org-cycle-show-empty-lines: Always show empty lines at the end of file

2025-02-09 Thread ELPA Syncer
branch: externals/org
commit 1517ead2aa828f45f95f31d8d08b66f40fead544
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-cycle-show-empty-lines: Always show empty lines at the end of file

* lisp/org-cycle.el (org-cycle-show-empty-lines): Fix revealing
trailing blank lines after the last heading in buffer.  When heading
is non-empty reveal the lines as well.  Update the docstring
documenting the behavior.

Reported-by: Ilya Konovalov 
Link: https://orgmode.org/list/87ed0vmcsn@gmail.com
---
 lisp/org-cycle.el | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/lisp/org-cycle.el b/lisp/org-cycle.el
index 6f00a82641..c61aa47ec8 100644
--- a/lisp/org-cycle.el
+++ b/lisp/org-cycle.el
@@ -749,7 +749,9 @@ symbols `content', `all', `folded', `children', or 
`subtree'."
 The region to be covered depends on STATE when called through
 `org-cycle-hook'.  Lisp program can use t for STATE to get the
 entire buffer covered.  Note that an empty line is only shown if there
-are at least `org-cycle-separator-lines' empty lines before the headline."
+are at least `org-cycle-separator-lines' empty lines before the headline.
+
+Always show empty lines at the end of file."
   (when (/= org-cycle-separator-lines 0)
 (save-excursion
   (let* ((n (abs org-cycle-separator-lines))
@@ -782,11 +784,8 @@ are at least `org-cycle-separator-lines' empty lines 
before the headline."
   ;; Never hide empty lines at the end of the file.
   (save-excursion
 (goto-char (point-max))
-(outline-previous-heading)
-(outline-end-of-heading)
-(when (and (looking-at "[ \t\n]+")
-   (= (match-end 0) (point-max)))
-  (org-fold-region (point) (match-end 0) nil 'outline
+(skip-chars-backward "[ \t\n]")
+(org-fold-region (point) (point-max) nil 'outline)))
 
 (defun org-cycle-hide-archived-subtrees (state)
   "Re-hide all archived subtrees after a visibility state change.



[elpa] externals-release/org updated (d1f528e830 -> 4495d3bc09)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals-release/org.

  from  d1f528e830 Update version number for the 9.7.21 release
   new  de4917977e Backport commit 5617b07a4 from Emacs
   new  2dc2fea626 Backport commit a3b308308 from Emacs
   new  4495d3bc09 Merge branch 'km/from-emacs-30' into bugfix


Summary of changes:
 doc/org-manual.org | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)



[elpa] externals-release/org de4917977e 1/3: Backport commit 5617b07a4 from Emacs

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit de4917977eb2ef0fe0c021ac6d448393f029d250
Author: Stefan Kangas 
Commit: Kyle Meyer 

Backport commit 5617b07a4 from Emacs

* doc/org-manual.org (External Links, Images in HTML export)
(LaTeX Export, LaTeX math snippets): Prefer HTTPS to HTTP.  Fix or
mark some broken links while we're at it.

; Prefer HTTPS to HTTP in docs
5617b07a45bedcaa94591e941d06a3255e06302f
Stefan Kangas
Sun Jan 26 22:45:13 2025 +0100
---
 doc/org-manual.org | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 0f6619dda5..bd79c782c8 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -3403,7 +3403,7 @@ options:
 
 | Link Type  | Example 
   |
 
|+|
-| http   | =http://staff.science.uva.nl/c.dominik/=
   |
+| http   | =https://staff.science.uva.nl/c.dominik/=   
   |
 | https  | =https://orgmode.org/=  
   |
 | doi| =doi:10.1000/182=   
   |
 | file   | =file:/home/dominik/images/jupiter.jpg= 
   |
@@ -13633,7 +13633,7 @@ backend by default in-lines that image.  For example:
 ~org-html-inline-images~.
 
 On the other hand, if the description part of the Org link is itself
-another link, such as =file:= or =http:= URL pointing to an image, the
+another link, such as =file:= or =https:= URL pointing to an image, the
 HTML export backend in-lines this image and links to the main image.
 This Org syntax enables the backend to link low-resolution thumbnail
 to the high-resolution version of the image, as shown in this example:
@@ -13938,7 +13938,7 @@ terminology.  You may refer to 
https://tug.org/begin.html to get
 familiar with LaTeX basics.  Users with LaTeX installed may also run
 =texdoc latex= from terminal to open LaTeX introduction [fn:: The
 command will open a PDF file, which is also available for download
-from http://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
+from https://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
 
 *** LaTeX/PDF export commands
 :PROPERTIES:
@@ -15220,7 +15220,7 @@ document in one of the following ways:
   ~org-latex-to-mathml-jar-file~.
 
   If you prefer to use MathToWeb[fn:: See
-  [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].]
+  [[https://mathtoweb.sourceforge.io/][MathToWeb]].]
   as your converter, you can configure the above variables as shown
   below.
 



[elpa] externals-release/org 4495d3bc09 3/3: Merge branch 'km/from-emacs-30' into bugfix

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit 4495d3bc09fcc5cc1e1badfe9829c6e02cbde80f
Merge: d1f528e830 2dc2fea626
Author: Kyle Meyer 
Commit: Kyle Meyer 

Merge branch 'km/from-emacs-30' into bugfix
---
 doc/org-manual.org | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 2581556579..785e53ad17 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -3394,7 +3394,7 @@ options:
 
 | Link Type  | Example 
   |
 
|+|
-| http   | =http://staff.science.uva.nl/c.dominik/=
   |
+| http   | =http://orgmode.org/=   
   |
 | https  | =https://orgmode.org/=  
   |
 | doi| =doi:10.1000/182=   
   |
 | file   | =file:/home/dominik/images/jupiter.jpg= 
   |
@@ -13624,7 +13624,7 @@ backend by default in-lines that image.  For example:
 ~org-html-inline-images~.
 
 On the other hand, if the description part of the Org link is itself
-another link, such as =file:= or =http:= URL pointing to an image, the
+another link, such as =file:= or =https:= URL pointing to an image, the
 HTML export backend in-lines this image and links to the main image.
 This Org syntax enables the backend to link low-resolution thumbnail
 to the high-resolution version of the image, as shown in this example:
@@ -13929,7 +13929,7 @@ terminology.  You may refer to 
https://tug.org/begin.html to get
 familiar with LaTeX basics.  Users with LaTeX installed may also run
 =texdoc latex= from terminal to open LaTeX introduction [fn:: The
 command will open a PDF file, which is also available for download
-from http://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
+from https://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
 
 *** LaTeX/PDF export commands
 :PROPERTIES:
@@ -15211,7 +15211,7 @@ document in one of the following ways:
   ~org-latex-to-mathml-jar-file~.
 
   If you prefer to use MathToWeb[fn:: See
-  [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].]
+  [[https://mathtoweb.sourceforge.io/][MathToWeb]].]
   as your converter, you can configure the above variables as shown
   below.
 



[elpa] externals-release/org 2dc2fea626 2/3: Backport commit a3b308308 from Emacs

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit 2dc2fea626aa690677171c22f8d5daf8be001d99
Author: Stefan Kangas 
Commit: Kyle Meyer 

Backport commit a3b308308 from Emacs

* doc/org-manual.org (External Links): Change HTTP example to use HTTP.
Changing it to HTTPS has been done before, but it's a mistake.  To avoid
making this mistake again, change the URL to orgmode.org to make it more
similar to the example on the next line, thereby contrasting the two.

; Don't use HTTPS in HTTP-specific example
a3b3083081299049b2ac2333d078c9cac62f2be4
Stefan Kangas
Mon Feb 3 14:03:43 2025 +0100
---
 doc/org-manual.org | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index bd79c782c8..3653e96bf5 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -3403,7 +3403,7 @@ options:
 
 | Link Type  | Example 
   |
 
|+|
-| http   | =https://staff.science.uva.nl/c.dominik/=   
   |
+| http   | =http://orgmode.org/=   
   |
 | https  | =https://orgmode.org/=  
   |
 | doi| =doi:10.1000/182=   
   |
 | file   | =file:/home/dominik/images/jupiter.jpg= 
   |



[nongnu] elpa/magit e5440ee108 02/11: Fix pasto

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit e5440ee1084de021422c68ba9fe1c5a696b00d69
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Fix pasto
---
 CHANGELOG | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG b/CHANGELOG
index 6e47c1daa5..d1a790fa95 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,5 @@
 # -*- mode: org -*-
-* v4.3.0UNRELEASE
+* v4.3.1UNRELEASED
 
 Bugfixes:
 



[nongnu] elpa/magit 085baa2ac9 11/11: magit-{previous, next}-reference: New commands

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 085baa2ac96df90bdb2a1bedd3598df19919d731
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-{previous,next}-reference: New commands

Closes #5308.
---
 CHANGELOG  |  4 
 lisp/magit-log.el  | 53 +
 lisp/magit-mode.el |  1 +
 3 files changed, 58 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index 0369e9ca5f..bf6b6b040f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,10 @@
 - Added new option ~magit-format-file-function,~ and two functions to
   optionally prefix file names with icons, with the help of either
   ~all-the-icons~ or ~nerd-icons~.  #5308
+
+- Added new commands ~magit-previous-reference~ and ~magit-next-reference~,
+  with entry point ~C-c C-r~.  Enable ~repeat-mode~ to keep navigating with
+  ~p~ and ~n~.  #5310
   
 Bugfixes:
 
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index bb23609aaf..13bb65d2a6 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -1008,6 +1008,59 @@ of the current repository first; creating it if 
necessary."
  (transient-args 'magit-shortlog)))
   (magit-git-shortlog rev-or-range args))
 
+ Movement Commands
+
+(defvar magit-reference-movement-faces
+  '(magit-tag
+magit-branch-remote
+magit-branch-remote-head
+magit-branch-local
+magit-branch-current
+magit-branch-upstream
+magit-branch-warning
+magit-head
+magit-refname
+magit-refname-stash
+magit-refname-wip
+magit-refname-pullreq))
+
+(defvar-keymap magit-reference-navigation-repeat-map
+  :repeat t
+  "p" #'magit-previous-reference
+  "n" #'magit-next-reference
+  "r" #'magit-next-reference)
+
+(defun magit-previous-reference ()
+  "Move to the previous Git reference appearing in the current buffer.
+
+Move to the previous location that uses a face appearing in
+`magit-reference-movement-faces'.  If `repeat-mode' is enabled,
+this command and its counterpart can be repeated using \
+\\\
+\\[magit-previous-reference] and \\[magit-next-reference]."
+  (interactive)
+  (magit-next-reference t))
+
+(defun magit-next-reference (&optional previous)
+  "Move to the next Git reference appearing in the current buffer.
+
+Move to the previous location that uses a face appearing in
+`magit-reference-movement-faces'.  If `repeat-mode' is enabled,
+this command and its counterpart can be repeated using \
+\\\
+\\[magit-previous-reference] and \\[magit-next-reference]."
+  (interactive)
+  (catch 'found
+(let ((pos (point)))
+  (while (and (not (eobp))
+  (setq pos (if previous
+(previous-single-property-change pos 'face)
+  (next-single-property-change pos 'face
+   (when (cl-intersection (ensure-list (get-text-property pos 'face))
+   magit-reference-movement-faces)
+ (throw 'found (goto-char pos
+  (message "No more references"
+
 ;;; Log Mode
 
 (defvar magit-log-disable-graph-hack-args
diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index a980c44edc..b79084280d 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -419,6 +419,7 @@ recommended value."
   "!" 'magit-run
   ">" 'magit-sparse-checkout
   "C-c C-c" 'magit-dispatch
+  "C-c C-r" 'magit-next-reference
   "C-c C-e" 'magit-edit-thing
   "C-c C-o" 'magit-browse-thing
   "C-c C-w" 'magit-copy-thing



[nongnu] elpa/magit 223461b52c 09/11: magit-format-file-function: New option

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 223461b52c35b0f426c053f4c6e7e7637c4a9b73
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-format-file-function: New option

Closes #5308.
---
 CHANGELOG|  4 
 docs/magit.org   |  8 
 docs/magit.texi  |  8 
 lisp/magit-diff.el   | 56 +---
 lisp/magit-status.el |  3 ++-
 5 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 57a2ab052d..0369e9ca5f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 # -*- mode: org -*-
 * v4.3.1UNRELEASED
 
+- Added new option ~magit-format-file-function,~ and two functions to
+  optionally prefix file names with icons, with the help of either
+  ~all-the-icons~ or ~nerd-icons~.  #5308
+  
 Bugfixes:
 
 - ~magit-commit-revise~ failed if no arguments were used.  #5306
diff --git a/docs/magit.org b/docs/magit.org
index 4441ca1bba..23d5373620 100644
--- a/docs/magit.org
+++ b/docs/magit.org
@@ -3476,6 +3476,14 @@ that they are available here too.
   allowed here: ~--stat-width~, ~--stat-name-width~,
   ~--stat-graph-width~ and ~--compact-summary~.  Also see [[man:git-diff]]
 
+- User Option: magit-format-file-function ::
+
+  This function is used to format lines representing a file.  It is
+  used for file headings in diffs, in diffstats and for lists of files
+  (such as the untracked files).  Depending on the caller, it receives
+  either three or five arguments; the signature has to be ~(kind file
+  face &optional status orig)~.  KIND is one of ~diff~, ~stat~ and ~list~.
+
 *** Revision Buffer
 
 - User Option: magit-revision-insert-related-refs ::
diff --git a/docs/magit.texi b/docs/magit.texi
index 24f0a425ef..4a547d6c65 100644
--- a/docs/magit.texi
+++ b/docs/magit.texi
@@ -4094,6 +4094,14 @@ the git-diff(1) manpage.
 @end iftex
 @end defopt
 
+@defopt magit-format-file-function
+This function is used to format lines representing a file.  It is
+used for file headings in diffs, in diffstats and for lists of files
+(such as the untracked files).  Depending on the caller, it receives
+either three or five arguments; the signature has to be @code{(kind file
+  face &optional status orig)}.  KIND is one of @code{diff}, @code{stat} and 
@code{list}.
+@end defopt
+
 @anchor{Revision Buffer}
 @subsection Revision Buffer
 
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 8dc934ac68..5004502972 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -85,6 +85,9 @@
 (declare-function magit-smerge-keep-base "magit-apply" ())
 (declare-function magit-smerge-keep-lower "magit-apply" ())
 
+(declare-function all-the-icons-icon-for-file "ext:all-the-icons")
+(declare-function nerd-icons-icon-for-file "ext:nerd-icons")
+
 (eval-when-compile
   (cl-pushnew 'orig-rev eieio--known-slot-names)
   (cl-pushnew 'action-type eieio--known-slot-names)
@@ -322,6 +325,21 @@ and `--compact-summary'.  See the git-diff(1) manpage."
 (list string)
 (const :tag "None" nil)))
 
+(defcustom magit-format-file-function #'magit-format-file-default
+  "Function used to format lines representing a file.
+
+This function is used for file headings in diffs, in diffstats and for
+lists of files (such as the untracked files).  Depending on the caller,
+it receives either three or five arguments; the signature has to be
+(kind file face &optional status orig).  KIND is one of `diff', `stat'
+and `list'."
+  :package-version '(magit . "4.3.1")
+  :group 'magit-diff
+  :type `(choice (function-item ,#'magit-format-file-default)
+ (function-item ,#'magit-format-file-all-the-icons)
+ (function-item ,#'magit-format-file-nerd-icons)
+ function))
+
  File Diff
 
 (defcustom magit-diff-buffer-file-locked t
@@ -2310,8 +2328,9 @@ section or a child thereof."
 (when (> le ld)
   (setq sep (concat (make-string (- le ld) ?\s) sep
   (magit-insert-section (file (pop files))
-(insert (propertize file 'font-lock-face 'magit-filename)
-sep cnt " ")
+(insert (funcall magit-format-file-function
+ 'stat file 'magit-filename))
+(insert sep cnt " ")
 (when add
   (insert (propertize add 'font-lock-face
   'magit-diffstat-added)))
@@ -2462,11 +2481,9 @@ section or a child thereof."
 :source (and (not (equal orig file)) orig)
 :header header
 :binary binary)
-(insert (propertize (format "%-10s %s" status
-(if (or (not orig) (equal orig file))
-file
-  (format "%s -> %s" orig file)))
-'font-lock-face 'magit-diff-file-heading))
+(insert (funcall magit-format-file-function
+ 'diff

[nongnu] elpa/magit 7298daa607 01/11: magit-commit-amend-assert: Return non-nil if NOPATCH is non-nil

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 7298daa607f5c9597d537b73c14bc924b6a5d290
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-commit-amend-assert: Return non-nil if NOPATCH is non-nil

Closes #5306.
---
 CHANGELOG| 6 ++
 lisp/magit-commit.el | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG b/CHANGELOG
index cfd91f8dce..6e47c1daa5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,10 @@
 # -*- mode: org -*-
+* v4.3.0UNRELEASE
+
+Bugfixes:
+
+- ~magit-commit-revise~ failed if no arguments were used.  #5306
+
 * v4.3.02025-02-04
 
 - Added new option ~magit-refs-show-branch-descriptions~.  42ed6c1966
diff --git a/lisp/magit-commit.el b/lisp/magit-commit.el
index 6c46cc4ef0..24a872c0f1 100644
--- a/lisp/magit-commit.el
+++ b/lisp/magit-commit.el
@@ -430,7 +430,7 @@ Like `magit-commit-squash' but also run a `--autofixup' 
rebase."
 
 (defun magit-commit-assert (args &optional nopatch strict)
   (cond
-   (nopatch args)
+   (nopatch (or args (list "--")))
((or (magit-anything-staged-p)
 (and (magit-anything-unstaged-p)
  ;; ^ Everything of nothing is still nothing.



[nongnu] elpa/magit-section updated (f52dfada8f -> 085baa2ac9)

2025-02-09 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/magit-section.

  from  f52dfada8f Release version 4.3.0
  adds  7298daa607 magit-commit-amend-assert: Return non-nil if NOPATCH is 
non-nil
  adds  e5440ee108 Fix pasto
  adds  103e7d47e6 magit-diff-argument-predicate: Fix prefix detect
  adds  dfd293b951 Use dolist instead of mapc except in the simplest cases
  adds  b827757eef magit-map-sections: Use ##
  adds  da1484260c Use ## instead of apply-partially in some cases
  adds  3f2a501ec8 Revert "magit-insert-section: Fix indent declaration"
  adds  da08c80e29 Update changelog
  adds  223461b52c magit-format-file-function: New option
  adds  7a4b665f25 magit-jump-to-diffstat-or-diff: Move definition
  adds  085baa2ac9 magit-{previous,next}-reference: New commands

No new revisions were added by this update.

Summary of changes:
 CHANGELOG | 17 ++
 docs/magit.org|  8 +
 docs/magit.texi   |  8 +
 lisp/magit-base.el| 11 +++---
 lisp/magit-commit.el  |  2 +-
 lisp/magit-diff.el| 92 +--
 lisp/magit-log.el | 53 +
 lisp/magit-mode.el|  1 +
 lisp/magit-repos.el   | 25 +++---
 lisp/magit-section.el |  6 ++--
 lisp/magit-status.el  |  3 +-
 11 files changed, 178 insertions(+), 48 deletions(-)



[nongnu] elpa/magit 7a4b665f25 10/11: magit-jump-to-diffstat-or-diff: Move definition

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 7a4b665f25f0430cccafee5c1f9f960fa0869596
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-jump-to-diffstat-or-diff: Move definition
---
 lisp/magit-diff.el | 32 +---
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 5004502972..4485cc8d03 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -1885,6 +1885,23 @@ the Magit-Status buffer for DIRECTORY."
   (throw 'found nil))
 (+ line offset)))
 
+; Movement
+
+(defun magit-jump-to-diffstat-or-diff ()
+  "Jump to the diffstat or diff.
+When point is on a file inside the diffstat section, then jump
+to the respective diff section, otherwise jump to the diffstat
+section or a child thereof."
+  (interactive)
+  (if-let ((section (magit-get-section
+ (append (magit-section-case
+   ([file diffstat] `((file . ,(oref it value
+   (file `((file . ,(oref it value)) (diffstat)))
+   (t '((diffstat
+ (magit-section-ident magit-root-section)
+  (magit-section-goto section)
+(user-error "No diffstat in this buffer")))
+
  Scroll Commands
 
 (defun magit-diff-show-or-scroll-up ()
@@ -2253,21 +2270,6 @@ keymap is the parent of their keymaps."
 (magit-wash-sequence (##magit-diff-wash-diff args))
 (insert ?\n)))
 
-(defun magit-jump-to-diffstat-or-diff ()
-  "Jump to the diffstat or diff.
-When point is on a file inside the diffstat section, then jump
-to the respective diff section, otherwise jump to the diffstat
-section or a child thereof."
-  (interactive)
-  (if-let ((section (magit-get-section
- (append (magit-section-case
-   ([file diffstat] `((file . ,(oref it value
-   (file `((file . ,(oref it value)) (diffstat)))
-   (t '((diffstat
- (magit-section-ident magit-root-section)
-  (magit-section-goto section)
-(user-error "No diffstat in this buffer")))
-
 (defun magit-diff-wash-signature (object)
   (cond
((looking-at "^No signature")



[nongnu] elpa/magit updated (f52dfada8f -> 085baa2ac9)

2025-02-09 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/magit.

  from  f52dfada8f Release version 4.3.0
   new  7298daa607 magit-commit-amend-assert: Return non-nil if NOPATCH is 
non-nil
   new  e5440ee108 Fix pasto
   new  103e7d47e6 magit-diff-argument-predicate: Fix prefix detect
   new  dfd293b951 Use dolist instead of mapc except in the simplest cases
   new  b827757eef magit-map-sections: Use ##
   new  da1484260c Use ## instead of apply-partially in some cases
   new  3f2a501ec8 Revert "magit-insert-section: Fix indent declaration"
   new  da08c80e29 Update changelog
   new  223461b52c magit-format-file-function: New option
   new  7a4b665f25 magit-jump-to-diffstat-or-diff: Move definition
   new  085baa2ac9 magit-{previous,next}-reference: New commands


Summary of changes:
 CHANGELOG | 17 ++
 docs/magit.org|  8 +
 docs/magit.texi   |  8 +
 lisp/magit-base.el| 11 +++---
 lisp/magit-commit.el  |  2 +-
 lisp/magit-diff.el| 92 +--
 lisp/magit-log.el | 53 +
 lisp/magit-mode.el|  1 +
 lisp/magit-repos.el   | 25 +++---
 lisp/magit-section.el |  6 ++--
 lisp/magit-status.el  |  3 +-
 11 files changed, 178 insertions(+), 48 deletions(-)



[nongnu] elpa/magit da08c80e29 08/11: Update changelog

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit da08c80e29d9472757f298c324e27ded2134dfb1
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Update changelog
---
 CHANGELOG | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index d1a790fa95..57a2ab052d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,9 @@ Bugfixes:
 
 - ~magit-commit-revise~ failed if no arguments were used.  #5306
 
+- Some arguments were missing from diff menus when invoked from
+  the status buffer.  #5309
+
 * v4.3.02025-02-04
 
 - Added new option ~magit-refs-show-branch-descriptions~.  42ed6c1966



[nongnu] elpa/magit dfd293b951 04/11: Use dolist instead of mapc except in the simplest cases

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit dfd293b951e65d8a64ad00f32f648bf1fc226f50
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Use dolist instead of mapc except in the simplest cases

Having the name of the element and the code (or in these cases name)
of the list next to each other, increases readability compared to
`mapc'.  When we call a function by name, naming the argument becomes
less desirable, making `mapc' more appealing.
---
 lisp/magit-base.el  | 11 +--
 lisp/magit-repos.el | 21 ++---
 2 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/lisp/magit-base.el b/lisp/magit-base.el
index f48f8d93c2..96aba336a9 100644
--- a/lisp/magit-base.el
+++ b/lisp/magit-base.el
@@ -1202,15 +1202,14 @@ Like `message', except that `message-log-max' is bound 
to nil."
   ellipsis)))
   (user-error "Variable magit-ellipsis is invalid"
 
-(defun magit--ext-regexp-quote (str)
+(defun magit--ext-regexp-quote (string)
   "Like `reqexp-quote', but for Extended Regular Expressions."
   (let ((special (string-to-list "[*.\\?+^$({"))
 (quoted nil))
-(mapc (lambda (c)
-(when (memq c special)
-  (push ?\\ quoted))
-(push c quoted))
-  str)
+(dolist (char string)
+  (when (memq char special)
+(push ?\\ quoted))
+  (push char quoted))
 (concat (nreverse quoted
 
 ;;; _
diff --git a/lisp/magit-repos.el b/lisp/magit-repos.el
index d1f83e370b..0c15ad86f7 100644
--- a/lisp/magit-repos.el
+++ b/lisp/magit-repos.el
@@ -242,17 +242,16 @@ If it contains \"%s\" then the directory is substituted 
for that."
   (let ((base default-directory)
 (len (length repos))
 (i 0))
-(mapc (lambda (repo)
-(let ((default-directory
-   (file-name-as-directory (expand-file-name repo base
-  (if msg
-  (let ((msg (concat (format "(%s/%s) " (cl-incf i) len)
- (format msg default-directory
-(message msg)
-(funcall fn)
-(message (concat msg "done")))
-(funcall fn
-  repos)))
+(dolist (repo repos)
+  (let ((default-directory
+ (file-name-as-directory (expand-file-name repo base
+(if msg
+(let ((msg (concat (format "(%s/%s) " (cl-incf i) len)
+   (format msg default-directory
+  (message msg)
+  (funcall fn)
+  (message (concat msg "done")))
+  (funcall fn))
 
  Mode
 



[nongnu] elpa/magit da1484260c 06/11: Use ## instead of apply-partially in some cases

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit da1484260cbb18f40b9558a711a0067a3ee00de0
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Use ## instead of apply-partially in some cases

Do so if the returned/expanded function won't be called with additional
argument (making that obvious at the call site) *and* fixing arguments
does not avoid needlessly repeating work.
---
 lisp/magit-diff.el| 2 +-
 lisp/magit-repos.el   | 4 ++--
 lisp/magit-section.el | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 54828b8350..8dc934ac68 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -2232,7 +2232,7 @@ keymap is the parent of their keymaps."
 (magit-diff-wash-diffstat))
   (when (re-search-forward magit-diff-headline-re limit t)
 (goto-char (line-beginning-position))
-(magit-wash-sequence (apply-partially #'magit-diff-wash-diff args))
+(magit-wash-sequence (##magit-diff-wash-diff args))
 (insert ?\n)))
 
 (defun magit-jump-to-diffstat-or-diff ()
diff --git a/lisp/magit-repos.el b/lisp/magit-repos.el
index 0c15ad86f7..b815757c00 100644
--- a/lisp/magit-repos.el
+++ b/lisp/magit-repos.el
@@ -180,14 +180,14 @@ repositories are displayed."
   "Fetch all marked or listed repositories."
   (interactive (list (magit-repolist--get-repos ?*)))
   (run-hooks 'magit-credential-hook)
-  (magit-repolist--mapc (apply-partially #'magit-run-git "remote" "update")
+  (magit-repolist--mapc (##magit-run-git "remote" "update")
 repos "Fetching in %s..."))
 
 (defun magit-repolist-find-file-other-frame (repos file)
   "Find a file in all marked or listed repositories."
   (interactive (list (magit-repolist--get-repos ?*)
  (read-string "Find file in repositories: ")))
-  (magit-repolist--mapc (apply-partially #'find-file-other-frame file) repos))
+  (magit-repolist--mapc (##find-file-other-frame file) repos))
 
 (defun magit-repolist--ensure-padding ()
   "Set `tabulated-list-padding' to 2, unless that is already non-zero."
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index d732735314..529ca22832 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -672,7 +672,7 @@ See `magit-menu-format-desc'."
 ,def
 ;; Without this, the keys for point would be shown instead
 ;; of the relevant ones from where the click occurred.
-:keys ,(apply-partially #'magit--menu-position-keys def)
+:keys ,(##magit--menu-position-keys def)
 ,@props))
 
 (defun magit--menu-position-keys (def)



[nongnu] elpa/magit 3f2a501ec8 07/11: Revert "magit-insert-section: Fix indent declaration"

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 3f2a501ec8c327da166e000c5bd9dd77e139aa65
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Revert "magit-insert-section: Fix indent declaration"

This reverts commit a5962c0b916c1caf211a4f87fb85023068ab50b9,
and adds "sic" to put an end to the flip-flopping.

This is better in cases where we put the first argument on a new line.
The NAME argument is only very rarely not omitted, so do not optimize
for that by using the `defun' style.
---
 lisp/magit-section.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index 529ca22832..d737157c13 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -1381,7 +1381,7 @@ a section by washing Git's output and Git didn't actually 
output
 anything this time around.
 
 \(fn [NAME] (CLASS &optional VALUE HIDE) &rest BODY)"
-  (declare (indent defun)
+  (declare (indent 1) ;sic
(debug ([&optional symbolp]
(&or [("eval" form) &optional form form &rest form]
 [symbolp &optional form form &rest form])



[nongnu] elpa/magit 103e7d47e6 03/11: magit-diff-argument-predicate: Fix prefix detect

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit 103e7d47e61f20f4c128bed37d07a3a8ba9806cf
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-diff-argument-predicate: Fix prefix detect

Closes #5309.
---
 lisp/magit-diff.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 43943600e8..54828b8350 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -1093,7 +1093,7 @@ and `:slant'."
   :if 'magit-diff-argument-predicate)
 
 (defun magit-diff-argument-predicate ()
-  (or (eq transient--prefix 'magit-diff)
+  (or (eq (oref transient--prefix command) 'magit-diff)
   (derived-mode-p 'magit-diff-mode)))
 
  Setup Commands



[nongnu] elpa/magit b827757eef 05/11: magit-map-sections: Use ##

2025-02-09 Thread Jonas Bernoulli via
branch: elpa/magit
commit b827757eef4b023dea105c7b3bd6be97989c04ac
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-map-sections: Use ##
---
 lisp/magit-section.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index 3d7216ff7b..d732735314 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -2105,7 +2105,7 @@ If optional SECTION is non-nil, only map over that 
section and
 its descendants, otherwise map over all sections in the current
 buffer, ending with `magit-root-section'."
   (let ((section (or section magit-root-section)))
-(mapc (lambda (child) (magit-map-sections function child))
+(mapc (##magit-map-sections function %)
   (oref section children))
 (funcall function section)))
 



[nongnu] elpa/doc-show-inline 2c23259d40: Cleanup: quiet byte code compiler warning

2025-02-09 Thread ELPA Syncer
branch: elpa/doc-show-inline
commit 2c23259d400d618018952581a22db5bdbac4768d
Author: Campbell Barton 
Commit: Campbell Barton 

Cleanup: quiet byte code compiler warning
---
 doc-show-inline.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc-show-inline.el b/doc-show-inline.el
index f8ce9ee1bd..6f8cd22aea 100644
--- a/doc-show-inline.el
+++ b/doc-show-inline.el
@@ -704,7 +704,7 @@ XREF-BACKEND is the back-end used to find this symbol."
   "Handle all queued ranges."
   (declare (important-return-value nil))
   ;; First remove any overlays.
-  (when-let ((overlays-in-view (doc-show-inline--idle-overlays (point-min) 
(point-max
+  (when-let* ((overlays-in-view (doc-show-inline--idle-overlays (point-min) 
(point-max
 (let ((overlays-beg (point-max))
   (overlays-end (point-min)))
 



[nongnu] elpa/projectile cdb22f6b58: [#1926] Don't create an empty cache file when persistent caching is not enabled

2025-02-09 Thread ELPA Syncer
branch: elpa/projectile
commit cdb22f6b588c8ffa508f6fda586ee1253c73490b
Author: Bozhidar Batsov 
Commit: Bozhidar Batsov 

[#1926] Don't create an empty cache file when persistent caching is not 
enabled
---
 projectile.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/projectile.el b/projectile.el
index 273be32d90..60b761f6e5 100644
--- a/projectile.el
+++ b/projectile.el
@@ -1098,7 +1098,9 @@ to invalidate."
 (remhash project-root projectile-projects-cache)
 (remhash project-root projectile-projects-cache-time)
 ;; reset the project's cache file
-(projectile-serialize nil (projectile-project-cache-file project-root))
+(when (eq projectile-enable-caching 'persistent)
+  ;; TODO: Perhaps it's better to delete the cache file in such cases?
+  (projectile-serialize nil (projectile-project-cache-file project-root)))
 (when projectile-verbose
   (message "Invalidated Projectile cache for %s."
(propertize project-root 'face 'font-lock-keyword-face



[elpa] main 8e8fac4ae0: * elpa-packages (vlf): Disable external repository. (Bug#76131)

2025-02-09 Thread Stefan Kangas
branch: main
commit 8e8fac4ae0f5d9a7e9d5808a79c6c7e3d6710ced
Author: Stefan Kangas 
Commit: Stefan Kangas 

* elpa-packages (vlf): Disable external repository.  (Bug#76131)
---
 elpa-packages | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/elpa-packages b/elpa-packages
index ac995ac43c..b212ad690f 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -855,7 +855,7 @@
  (vigenere :url nil)
  (visual-filename-abbrev :url nil)
  (visual-fill  :url nil)
- (vlf  :url "https://github.com/m00natic/vlfi";) ;FIXME:Dead?
+ (vlf  :url nil) ;"https://github.com/m00natic/vlfi";
  (vundo:url "https://github.com/casouri/vundo";
   :ignored-files ("test")
   :news "NEWS.txt")



[elpa] externals/autorevert-tail-truncate b54df58381: Correct documentation and bump version for ELPA

2025-02-09 Thread ELPA Syncer
branch: externals/autorevert-tail-truncate
commit b54df5838159abf760a48de2fd33b21cabd12e66
Author: shipmints 
Commit: shipmints 

Correct documentation and bump version for ELPA

Remove references to auto-revert-tail-mode-on-log-files.
---
 README.md   | 7 +--
 autorevert-tail-truncate.el | 5 +
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index d9ecdcba7e..8f3f165823 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,6 @@ Add a function (example, below) to 
`auto-revert-tail-truncate-mode-hook` to cont
 e.g., `truncate-lines`, controlling `so-long-mode` threshold, disabling spell 
checking, or enabling other minor modes for
 specific log-file formats (the visual features of which may require you to 
enable font-lock for those buffers).
 
-If you want this mode enabled for all *.log files, run the command
-`auto-revert-tail-mode-on-log-files` or add this to your `init.el` file.
-
 Refer to the source code or docstrings for details on user options.
 
 ## Installation
@@ -59,9 +56,7 @@ Or, if you use Emacs 30+, uncomment the :vc stanza, below.
   (jinx-mode -1))
 (when (fboundp 'show-smartparens-mode)
   (show-smartparens-mode -1)))
-  (add-hook 'auto-revert-tail-truncate-mode-hook 
#'my/auto-revert-tail-truncate-mode-hook)
-  ;; add auto-mode-alist entry for .log files to use auto-revert-tail-mode
-  (auto-revert-tail-mode-on-log-files))
+  (add-hook 'auto-revert-tail-truncate-mode-hook 
#'my/auto-revert-tail-truncate-mode-hook))
 ```
 
 To invoke the mode interactively, use `M-x auto-revert-tail-truncate-mode`.
diff --git a/autorevert-tail-truncate.el b/autorevert-tail-truncate.el
index 7bf761e550..235c99729b 100644
--- a/autorevert-tail-truncate.el
+++ b/autorevert-tail-truncate.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Stephane Marks 
 ;; Url: https://github.com/shipmints/autorevert-tail-truncate.el
 ;; Created: 2025-02-03
-;; Version: 1.0.0
+;; Version: 1.0.1
 ;; Package-Requires: ((emacs "29.1"))
 ;; Keywords: convenience, tools, log files, autorevert
 
@@ -45,9 +45,6 @@
 ;; enabling other minor modes for specific log-file formats (the
 ;; visual features of which may require you to enable font-lock for
 ;; those buffers).
-;;
-;; If you want this mode enabled for all *.log files, run the command
-;; `auto-revert-tail-mode-on-log-files'.
 
 ;;; Code:
 



[elpa] externals/hyperbole b4cc99649b 3/3: Merge pull request #668 from rswgnu/rsw

2025-02-09 Thread ELPA Syncer
branch: externals/hyperbole
commit b4cc99649b56e29706940904362fca77c460a128
Merge: c3ff71d9ce 4bb81f423b
Author: Robert Weiner 
Commit: GitHub 

Merge pull request #668 from rswgnu/rsw

Fix yanking and deleting one paired delimiter properly; fix double-quoted 
string selection
---
 ChangeLog |  16 ++
 hui-select.el | 101 ++
 hywiki.el |  73 +-
 3 files changed, 140 insertions(+), 50 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5c0ed49ae6..51e731c4f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,22 @@
 * hywiki.el (hywiki-make-referent-hasht): Return hasht when rebuilding from
 load data.
 
+2025-02-07  Bob Weiner  
+
+* hywiki.el (hywiki--extend-yanked-region): Add and call in 
'hywiki-highlight-on-yank'
+to extend a yanked region to include the rest of a delimited pair or 
string.
+
+* hui-select.el (hui-select-string-p): Fix to make multi-line string selection
+work properly whether on the opening or closing double quote mark, using
+'scan-sexps'.  Update doc string.
+
+2025-02-06  Bob Weiner  
+
+* hywiki.el (hywiki-debuttonize-non-character-commands,
+ hywiki-buttonize-non-character-commands): Add support for 'kill'
+commands and fix that removing a trailing delimiter did not rehighlight
+HyWikiWords properly.
+
 2025-02-05  Mats Lidell  
 
 * hywiki.el (hywiki-add-org-id): Suppress byte compile warnings for calling 
org-id-get with
diff --git a/hui-select.el b/hui-select.el
index a67d40a8aa..fd949b42f8 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:19-Oct-96 at 02:25:27
-;; Last-Mod: 26-Jan-25 at 17:04:55 by Bob Weiner
+;; Last-Mod:  7-Feb-25 at 00:15:47 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -108,6 +108,7 @@
 ;;; 
 
 (require 'hvar)
+(require 'hypb) ;; for hypb:in-string-p
 (eval-when-compile
   (require 'mhtml-mode) ;; for MHTML and HTML modes
   (require 'sgml-mode)  ;; for SGML mode
@@ -1036,49 +1037,65 @@ Return the updated cons cell."
   nil
 hui-select-region))
 
+
 (defun hui-select-string-p (&optional start-delim end-delim)
-  "Return (start . end) of string whose first line point is in or directly 
before.
-Positions include delimiters.  String is delimited by double quotes unless
-optional START-DELIM and END-DELIM (strings) are given.
-Returns nil if not within a string."
-  (let ((opoint (point))
-   (count 0)
-   bol start delim-regexp start-regexp end-regexp)
-(or start-delim (setq start-delim "\""))
-(or end-delim (setq end-delim "\""))
-;; Special case for the empty string.
-(if (looking-at (concat (regexp-quote start-delim)
-   (regexp-quote end-delim)))
-   (hui-select-set-region (point) (match-end 0))
-  (setq start-regexp (concat "\\(^\\|[^\\]\\)\\("
-(regexp-quote start-delim) "\\)")
-   end-regexp   (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
-   delim-regexp (concat start-regexp "\\|" end-regexp))
-  (save-excursion
-   (beginning-of-line)
-   (setq bol (point))
-   (while (re-search-forward delim-regexp opoint t)
- (setq count (1+ count))
- ;; This is so we don't miss the closing delimiter of an empty
- ;; string.
- (if (and (= (point) (1+ bol))
-  (looking-at (regexp-quote end-delim)))
+  "Return (start . end) of a string.
+Works when on a delim or on the first line with point in the
+string or directly before it.  Positions include delimiters.
+String is delimited by double quotes unless optional START-DELIM
+and END-DELIM (strings) are given.  Returns nil if not within a
+string."
+  (unless start-delim (setq start-delim "\""))
+  (unless end-delim (setq end-delim "\""))
+  (or (and (equal start-delim "\"") (equal end-delim "\"")
+  (ignore-errors
+(cond ((and (= (char-after) ?\")
+(/= (char-before) ?\\))
+   (if (hypb:in-string-p)
+   (hui-select-set-region (scan-sexps (1+ (point)) -1)
+  (1+ (point)))
+ (hui-select-set-region (point) (scan-sexps (point) 1
+  ((and (= (char-before) ?\")
+(/= (char-before (1- (point))) ?\\))
+   (if (hypb:in-string-p)
+   (hui-select-set-region (1- (point)) (scan-sexps (1- 
(point)) 1))
+ (hui-select-set-region (scan-sexps (1- (point)) -1)
+(point)))
+  (let ((opoint (point))
+   (count 0)
+   bol start delim-regexp start-regexp end-regexp)
+   ;; Special case for the empty string.
+   (if (

[elpa] externals/ellama updated (e037bbd213 -> ad5b03d913)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/ellama.

  from  e037bbd213 Bump version
   new  67f5aac3b8 Refactor file name fixing logic
   new  c8afbdf891 Merge pull request #206 from 
s-kostyaev/fix-bad-file-name-characters-regexp
   new  ad5b03d913 Bump version


Summary of changes:
 NEWS.org  |  3 +++
 ellama.el | 23 +++
 2 files changed, 10 insertions(+), 16 deletions(-)



[elpa] externals/ellama ad5b03d913 3/3: Bump version

2025-02-09 Thread ELPA Syncer
branch: externals/ellama
commit ad5b03d913b55b909d4fa471e81f3b51202b51af
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Bump version
---
 NEWS.org  | 3 +++
 ellama.el | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index a1d13b4979..db635761ca 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,6 @@
+* Version 0.13.10
+- Refactor file name fixing logic. Change the regular expression for
+  handling forbidden filename characters to improve efficiency.
 * Version 0.13.9
 - Fix adding buffer to context.
 * Version 0.13.8
diff --git a/ellama.el b/ellama.el
index ae90761246..241cb35963 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
-;; Version: 0.13.9
+;; Version: 0.13.10
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals-release/org 8faa5ad64f 2/2: lisp/org.el (org-open-at-point): Fix typo in the docstring

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit 8faa5ad64f5430cd08424da9acfa502e4f32fdda
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

lisp/org.el (org-open-at-point): Fix typo in the docstring

Reported-by: Juha Autero 
Link: https://orgmode.org/list/87a5b46t28@iki.fi
---
 lisp/org.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org.el b/lisp/org.el
index 15cf6b2c35..595a2dcc4c 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8607,7 +8607,7 @@ When point is a footnote definition, move to the first 
reference
 found.  If it is on a reference, move to the associated
 definition.
 
-When point is on a src-block of inline src-block, open its result.
+When point is on a src-block or inline src-block, open its result.
 
 When point is on a citation, follow it.
 



[elpa] externals/hyperbole 4bb81f423b 2/3: hywiki.el - Fix yanking and deleting one paired delimiter properly

2025-02-09 Thread ELPA Syncer
branch: externals/hyperbole
commit 4bb81f423bab4e33e94bad8816c3543303c85c16
Author: bw 
Commit: bw 

hywiki.el - Fix yanking and deleting one paired delimiter properly
---
 ChangeLog | 12 +++
 hywiki.el | 73 ---
 2 files changed, 77 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d0a9f318d1..51e731c4f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,10 +15,22 @@
 * hywiki.el (hywiki-make-referent-hasht): Return hasht when rebuilding from
 load data.
 
+2025-02-07  Bob Weiner  
+
+* hywiki.el (hywiki--extend-yanked-region): Add and call in 
'hywiki-highlight-on-yank'
+to extend a yanked region to include the rest of a delimited pair or 
string.
+
 * hui-select.el (hui-select-string-p): Fix to make multi-line string selection
 work properly whether on the opening or closing double quote mark, using
 'scan-sexps'.  Update doc string.
 
+2025-02-06  Bob Weiner  
+
+* hywiki.el (hywiki-debuttonize-non-character-commands,
+ hywiki-buttonize-non-character-commands): Add support for 'kill'
+commands and fix that removing a trailing delimiter did not rehighlight
+HyWikiWords properly.
+
 2025-02-05  Mats Lidell  
 
 * hywiki.el (hywiki-add-org-id): Suppress byte compile warnings for calling 
org-id-get with
diff --git a/hywiki.el b/hywiki.el
index 04190ac5fc..ddd716e0e2 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:21-Acpr-24 at 22:41:13
-;; Last-Mod:  8-Feb-25 at 22:56:32 by Mats Lidell
+;; Last-Mod:  9-Feb-25 at 10:10:14 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -564,16 +564,18 @@ deletion commands and those in 
`hywiki-non-character-commands'."
   (active-minibuffer-window)))
 (when (or (memq this-command hywiki-non-character-commands)
  (and (symbolp this-command)
-  (string-match-p 
"^\\(org-\\)?delete-\\|-delete-\\|insert\\(-\\|$\\)" (symbol-name 
this-command
+  (string-match-p 
"^\\(org-\\)?\\(delete-\\|kill-\\)\\|\\(-delete\\|-kill\\|insert\\)\\(-\\|$\\)" 
(symbol-name this-command
   (if (and (marker-position hywiki--buttonize-start)
   (marker-position hywiki--buttonize-end))
+ ;; This means the command just deleted an opening or closing
+ ;; delimiter of a range that now needs any HyWikiWords
+ ;; inside to be re-highlighted.
  (save-excursion
(goto-char hywiki--buttonize-start)
(let ((opening-char (char-after))
  closing-char)
  (when (memq opening-char '(?\( ?\"))
-   (delete-char 1)
-   (insert " "))
+   (delete-char 1))
  (goto-char hywiki--buttonize-end)
  (setq closing-char (char-before))
  (when (memq closing-char '(?\) ?\"))
@@ -582,7 +584,6 @@ deletion commands and those in 
`hywiki-non-character-commands'."
  (goto-char hywiki--buttonize-start)
  (hywiki-maybe-highlight-between-page-names)
  (when (memq opening-char '(?\( ?\"))
-   (delete-char 1)
(insert opening-char))
  (when (memq closing-char '(?\) ?\"))
(goto-char (1+ hywiki--buttonize-end))
@@ -599,7 +600,7 @@ deletion commands and those in 
`hywiki-non-character-commands'."
 (set-marker hywiki--buttonize-end nil))
   (when (or (memq this-command hywiki-non-character-commands)
(and (symbolp this-command)
-(string-match-p "\\`\\(org-\\)?delete-\\|-delete-"
+(string-match-p 
"\\`\\(org-\\)?\\(delete-\\|kill-\\)\\|-delete-\\|-kill-"
 (symbol-name this-command
 (cl-destructuring-bind (start end)
(hywiki-get-delimited-range) ;; includes delimiters
@@ -1543,10 +1544,16 @@ After successfully finding any kind of referent, run
 Have to add one character to the length of the yanked text so that any
 needed word-separator after the last character is included to induce
 highlighting any last HyWikiWord."
-  (hywiki-maybe-highlight-page-names start (min (1+ end) (point-max
+  ;; When yank only part of a delimited pair, expand the range to
+  ;; include the whole delimited pair before re-highlighting
+  ;; HyWikiWords therein, so that the whole delimited expression is
+  ;; included.
+  (cl-destructuring-bind (start end)
+  (hywiki--extend-yanked-region start end)
+(hywiki-maybe-highlight-page-names start (min (1+ end) (point-max)
 
 (defun hywiki-map-words (func)
-  "Apply FUNC across all HyWikiWords in the current buffer and return nil.
+  "Apply FUNC across highlighted HyWikiWords in the current buffer and return 
nil.
 FUNC takes 1 argument, the Emacs overlay spanning the start and end buffer
 positions of each HyWikiWord and its optional #section."
   (save-excursion
@@ -2934,6 +2941,

[elpa] externals/org updated (1517ead2aa -> 5e17097099)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  1517ead2aa org-cycle-show-empty-lines: Always show empty lines at 
the end of file
  adds  d1f528e830 Update version number for the 9.7.21 release
  adds  de4917977e Backport commit 5617b07a4 from Emacs
  adds  2dc2fea626 Backport commit a3b308308 from Emacs
  adds  4495d3bc09 Merge branch 'km/from-emacs-30' into bugfix
   new  a1a9d408a4 org-src-font-lock-fontify-block: Fix blocks without lang
   new  99f793a171 Merge branch 'bugfix'
   new  5e17097099 org-babel-execute:emacs-lisp: Do not rely upon 
undocumented return value of `pp'


Summary of changes:
 doc/org-manual.org |  8 
 lisp/ob-emacs-lisp.el  |  2 +-
 lisp/org-src.el| 29 +++--
 testing/lisp/test-ob-emacs-lisp.el | 12 
 4 files changed, 32 insertions(+), 19 deletions(-)



[elpa] externals/org 99f793a171 1/2: Merge branch 'bugfix'

2025-02-09 Thread ELPA Syncer
branch: externals/org
commit 99f793a171c9b9b327eb29bf2d62d059db24e775
Merge: 1517ead2aa a1a9d408a4
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Merge branch 'bugfix'
---
 doc/org-manual.org |  8 
 lisp/org-src.el| 29 +++--
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index e88317379b..65a1185d17 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -3414,7 +3414,7 @@ options:
 
 | Link Type  | Example 
   |
 
|+|
-| http   | =http://staff.science.uva.nl/c.dominik/=
   |
+| http   | =http://orgmode.org/=   
   |
 | https  | =https://orgmode.org/=  
   |
 | doi| =doi:10.1000/182=   
   |
 | file   | =file:/home/dominik/images/jupiter.jpg= 
   |
@@ -13730,7 +13730,7 @@ backend by default in-lines that image.  For example:
 ~org-html-inline-images~.
 
 On the other hand, if the description part of the Org link is itself
-another link, such as =file:= or =http:= URL pointing to an image, the
+another link, such as =file:= or =https:= URL pointing to an image, the
 HTML export backend in-lines this image and links to the main image.
 This Org syntax enables the backend to link low-resolution thumbnail
 to the high-resolution version of the image, as shown in this example:
@@ -14041,7 +14041,7 @@ terminology.  You may refer to 
https://tug.org/begin.html to get
 familiar with LaTeX basics.  Users with LaTeX installed may also run
 =texdoc latex= from terminal to open LaTeX introduction [fn:: The
 command will open a PDF file, which is also available for download
-from http://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
+from https://mirrors.ctan.org/info/latex-doc-ptr/latex-doc-ptr.pdf]
 
 *** LaTeX/PDF export commands
 :PROPERTIES:
@@ -15323,7 +15323,7 @@ document in one of the following ways:
   ~org-latex-to-mathml-jar-file~.
 
   If you prefer to use MathToWeb[fn:: See
-  [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].]
+  [[https://mathtoweb.sourceforge.io/][MathToWeb]].]
   as your converter, you can configure the above variables as shown
   below.
 
diff --git a/lisp/org-src.el b/lisp/org-src.el
index 74343bde11..a39a4066bd 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -740,20 +740,21 @@ as `org-src-fontify-natively' is non-nil."
 (font-lock-append-text-property start end 'face src-face))
   (font-lock-append-text-property start end 'face 'org-block))
 ;; Display native tab indentation characters as spaces
-(save-excursion
-  (goto-char start)
-  (let ((indent-offset
-(if (org-src-preserve-indentation-p) 0
-  (+ (progn (backward-char)
- (org-current-text-indentation))
- org-edit-src-content-indentation
-(while (re-search-forward "^[ ]*\t" end t)
-  (let* ((b (and (eq indent-offset (move-to-column indent-offset))
- (point)))
- (e (progn (skip-chars-forward "\t") (point)))
- (s (and b (make-string (* (- e b) native-tab-width) ? 
-(when (and b (< b e)) (add-text-properties b e `(display ,s)))
-(forward-char)
+(when native-tab-width
+  (save-excursion
+(goto-char start)
+(let ((indent-offset
+  (if (org-src-preserve-indentation-p) 0
+(+ (progn (backward-char)
+   (org-current-text-indentation))
+   org-edit-src-content-indentation
+  (while (re-search-forward "^[ ]*\t" end t)
+(let* ((b (and (eq indent-offset (move-to-column indent-offset))
+   (point)))
+   (e (progn (skip-chars-forward "\t") (point)))
+   (s (and b (make-string (* (- e b) native-tab-width) ? 
+  (when (and b (< b e)) (add-text-properties b e `(display ,s)))
+  (forward-char))
 (add-text-properties
  start end
  '(font-lock-fontified t fontified t font-lock-multiline t))



[elpa] externals-release/org a1a9d408a4 1/2: org-src-font-lock-fontify-block: Fix blocks without lang

2025-02-09 Thread ELPA Syncer
branch: externals-release/org
commit a1a9d408a423d1bf7e07392eef00ce296b3604fb
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-src-font-lock-fontify-block: Fix blocks without lang

* lisp/org-src.el (org-src-font-lock-fontify-block):
Fix error fontifying blocks without language containing tabs.

Reported-by: Aitenate 
Link: 
https://orgmode.org/list/du2p250mb020615b1fc610cc3f56340fbdb...@du2p250mb0206.eurp250.prod.outlook.com
---
 lisp/org-src.el | 29 +++--
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/lisp/org-src.el b/lisp/org-src.el
index 302c27ac86..6570b1b2ab 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -740,20 +740,21 @@ as `org-src-fontify-natively' is non-nil."
 (font-lock-append-text-property start end 'face src-face))
   (font-lock-append-text-property start end 'face 'org-block))
 ;; Display native tab indentation characters as spaces
-(save-excursion
-  (goto-char start)
-  (let ((indent-offset
-(if (org-src-preserve-indentation-p) 0
-  (+ (progn (backward-char)
- (org-current-text-indentation))
- org-edit-src-content-indentation
-(while (re-search-forward "^[ ]*\t" end t)
-  (let* ((b (and (eq indent-offset (move-to-column indent-offset))
- (point)))
- (e (progn (skip-chars-forward "\t") (point)))
- (s (and b (make-string (* (- e b) native-tab-width) ? 
-(when (and b (< b e)) (add-text-properties b e `(display ,s)))
-(forward-char)
+(when native-tab-width
+  (save-excursion
+(goto-char start)
+(let ((indent-offset
+  (if (org-src-preserve-indentation-p) 0
+(+ (progn (backward-char)
+   (org-current-text-indentation))
+   org-edit-src-content-indentation
+  (while (re-search-forward "^[ ]*\t" end t)
+(let* ((b (and (eq indent-offset (move-to-column indent-offset))
+   (point)))
+   (e (progn (skip-chars-forward "\t") (point)))
+   (s (and b (make-string (* (- e b) native-tab-width) ? 
+  (when (and b (< b e)) (add-text-properties b e `(display ,s)))
+  (forward-char))
 (add-text-properties
  start end
  '(font-lock-fontified t fontified t font-lock-multiline t))



[elpa] externals/hyperbole a2223ca29d 1/3: hui-select.el - Fix multi-line double-quoted string selection

2025-02-09 Thread ELPA Syncer
branch: externals/hyperbole
commit a2223ca29d16a281e9830a58b39f4c68292a1408
Author: bw 
Commit: bw 

hui-select.el - Fix multi-line double-quoted string selection
---
 ChangeLog |   4 +++
 hui-select.el | 101 ++
 2 files changed, 63 insertions(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5c0ed49ae6..d0a9f318d1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,10 @@
 * hywiki.el (hywiki-make-referent-hasht): Return hasht when rebuilding from
 load data.
 
+* hui-select.el (hui-select-string-p): Fix to make multi-line string selection
+work properly whether on the opening or closing double quote mark, using
+'scan-sexps'.  Update doc string.
+
 2025-02-05  Mats Lidell  
 
 * hywiki.el (hywiki-add-org-id): Suppress byte compile warnings for calling 
org-id-get with
diff --git a/hui-select.el b/hui-select.el
index a67d40a8aa..fd949b42f8 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:19-Oct-96 at 02:25:27
-;; Last-Mod: 26-Jan-25 at 17:04:55 by Bob Weiner
+;; Last-Mod:  7-Feb-25 at 00:15:47 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -108,6 +108,7 @@
 ;;; 
 
 (require 'hvar)
+(require 'hypb) ;; for hypb:in-string-p
 (eval-when-compile
   (require 'mhtml-mode) ;; for MHTML and HTML modes
   (require 'sgml-mode)  ;; for SGML mode
@@ -1036,49 +1037,65 @@ Return the updated cons cell."
   nil
 hui-select-region))
 
+
 (defun hui-select-string-p (&optional start-delim end-delim)
-  "Return (start . end) of string whose first line point is in or directly 
before.
-Positions include delimiters.  String is delimited by double quotes unless
-optional START-DELIM and END-DELIM (strings) are given.
-Returns nil if not within a string."
-  (let ((opoint (point))
-   (count 0)
-   bol start delim-regexp start-regexp end-regexp)
-(or start-delim (setq start-delim "\""))
-(or end-delim (setq end-delim "\""))
-;; Special case for the empty string.
-(if (looking-at (concat (regexp-quote start-delim)
-   (regexp-quote end-delim)))
-   (hui-select-set-region (point) (match-end 0))
-  (setq start-regexp (concat "\\(^\\|[^\\]\\)\\("
-(regexp-quote start-delim) "\\)")
-   end-regexp   (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
-   delim-regexp (concat start-regexp "\\|" end-regexp))
-  (save-excursion
-   (beginning-of-line)
-   (setq bol (point))
-   (while (re-search-forward delim-regexp opoint t)
- (setq count (1+ count))
- ;; This is so we don't miss the closing delimiter of an empty
- ;; string.
- (if (and (= (point) (1+ bol))
-  (looking-at (regexp-quote end-delim)))
+  "Return (start . end) of a string.
+Works when on a delim or on the first line with point in the
+string or directly before it.  Positions include delimiters.
+String is delimited by double quotes unless optional START-DELIM
+and END-DELIM (strings) are given.  Returns nil if not within a
+string."
+  (unless start-delim (setq start-delim "\""))
+  (unless end-delim (setq end-delim "\""))
+  (or (and (equal start-delim "\"") (equal end-delim "\"")
+  (ignore-errors
+(cond ((and (= (char-after) ?\")
+(/= (char-before) ?\\))
+   (if (hypb:in-string-p)
+   (hui-select-set-region (scan-sexps (1+ (point)) -1)
+  (1+ (point)))
+ (hui-select-set-region (point) (scan-sexps (point) 1
+  ((and (= (char-before) ?\")
+(/= (char-before (1- (point))) ?\\))
+   (if (hypb:in-string-p)
+   (hui-select-set-region (1- (point)) (scan-sexps (1- 
(point)) 1))
+ (hui-select-set-region (scan-sexps (1- (point)) -1)
+(point)))
+  (let ((opoint (point))
+   (count 0)
+   bol start delim-regexp start-regexp end-regexp)
+   ;; Special case for the empty string.
+   (if (looking-at (concat (regexp-quote start-delim)
+   (regexp-quote end-delim)))
+   (hui-select-set-region (point) (match-end 0))
+ (setq start-regexp (concat "\\(^\\|[^\\]\\)\\("
+(regexp-quote start-delim) "\\)")
+   end-regexp   (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
+   delim-regexp (concat start-regexp "\\|" end-regexp))
+ (save-excursion
+   (beginning-of-line)
+   (setq bol (point))
+   (while (re-search-forward delim-regexp opoint t)
  (setq count (1+ count))
-   (unless (bobp)
-  

[elpa] externals/hyperbole updated (c3ff71d9ce -> b4cc99649b)

2025-02-09 Thread ELPA Syncer
elpasync pushed a change to branch externals/hyperbole.

  from  c3ff71d9ce Fix hywiki publishing (#667)
   new  a2223ca29d hui-select.el - Fix multi-line double-quoted string 
selection
   new  4bb81f423b hywiki.el - Fix yanking and deleting one paired 
delimiter properly
   new  b4cc99649b Merge pull request #668 from rswgnu/rsw


Summary of changes:
 ChangeLog |  16 ++
 hui-select.el | 101 ++
 hywiki.el |  73 +-
 3 files changed, 140 insertions(+), 50 deletions(-)



  1   2   >