[elpa] externals/denote b272883038 17/29: Use upper case letters in the query links prompts to improve usability

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit b2728830388254555b698534705d0adbaa48cf40
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Use upper case letters in the query links prompts to improve usability
---
 denote.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index 4ab04dc127..9bf08c61ad 100644
--- a/denote.el
+++ b/denote.el
@@ -5254,7 +5254,7 @@ flexible."
   (interactive
(list
 (or (denote--get-active-region-content)
-(denote-query-link-prompt nil "Query in file contents"
+(denote-query-link-prompt nil "Query in file CONTENTS"
   (denote--delete-active-region-content)
   (insert (denote--format-query-link 'query-contents query)))
 
@@ -5272,7 +5272,7 @@ flexible."
   (interactive
(list
 (or (denote--get-active-region-content)
-(denote-query-link-prompt nil "Query in file names"
+(denote-query-link-prompt nil "Query in file NAMES"
   (denote--delete-active-region-content)
   (insert (denote--format-query-link 'query-filenames query)))
 



[elpa] externals/denote dec1087e01 25/29: Update the doc string of denote-query-filenames-link

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit dec1087e012f558969396bd950beb8ca9ccbdbb8
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update the doc string of denote-query-filenames-link
---
 denote.el | 12 
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/denote.el b/denote.el
index c4b9699540..7d8d9b59ac 100644
--- a/denote.el
+++ b/denote.el
@@ -5280,14 +5280,10 @@ across the variable `denote-directory'."
 ;;;###autoload
 (defun denote-query-filenames-link (query)
   "Insert query link for file names.
-Prompt for QUERY or use the text of the active region.
-
-Query links of this sort do not point to any file but instead initiate a
-search in the contents of files inside the variable `denote-directory'.
-They are always formatted as [[denote:query-filenames:QUERY]].  This is
-unlike what `denote-link' and related commands do, which always
-establish a direct connection to a file and their format is more
-flexible."
+Prompt for QUERY or use the text of the active region.  When the user
+follows this link, place any matches in a separate buffer (using the
+built-in Dired mechanism).  This is the equivalent of a Unix find
+command across the variable `denote-directory'."
   (interactive
(list
 (or (denote--get-active-region-content)



[elpa] externals/denote 83b6e35880 20/29: Make query links use their own face in Org buffers

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 83b6e35880a4b738637c7ebb55ceee3dd76351b3
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make query links use their own face in Org buffers

I will extend this to 'denote-fontify-links'. The technical discussion
for this is in issue 561: 
.
---
 denote.el | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 2bcb2994f6..e485479140 100644
--- a/denote.el
+++ b/denote.el
@@ -4373,6 +4373,11 @@ Construct the file name in accordance with the user 
option
   :group 'denote-faces
   :package-version '(denote . "0.5.0"))
 
+(defface denote-faces-query-link '((t :inherit link-visited))
+  "Face used to style Denote query links in the buffer."
+  :group 'denote-faces
+  :package-version '(denote . "4.0.0"))
+
 (defface denote-faces-subdirectory '((t :inherit bold))
   "Face for subdirectory of file name.
 This should only ever needed in the backlinks' buffer (or
@@ -5853,6 +5858,12 @@ backend."
   (path (denote-get-path-by-id identifier)))
 path))
 
+(defun denote-link-ol-face (path)
+  "Return appropriate face for PATH."
+  (if (denote-identifier-p path)
+  'denote-faces-link
+'denote-faces-query-link))
+
 ;; The `eval-after-load' part with the quoted lambda is adapted from
 ;; Elfeed: .
 
@@ -5867,7 +5878,7 @@ backend."
   (org-link-set-parameters
"denote"
:follow #'denote-link-ol-follow
-   :face 'denote-faces-link
+   :face #'denote-link-ol-face
:help-echo #'denote-link-ol-help-echo
:complete #'denote-link-ol-complete
:store #'denote-link-ol-store



[elpa] externals/denote c12c245344 14/29: Add two outline headings for backlinks and query links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit c12c245344bc8229993503a3b02fc135548b565a
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add two outline headings for backlinks and query links
---
 denote.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/denote.el b/denote.el
index 5cce22b673..1d805596dd 100644
--- a/denote.el
+++ b/denote.el
@@ -5174,6 +5174,8 @@ concomitant alist, such as 
`denote-backlinks-display-buffer-action'."
   "Function to make an Xref buffer showing query link results.
 It accepts the same arguments as `denote-make-links-buffer'.")
 
+;; Backlinks
+
 (defun denote--backlinks-get-buffer-name (file id)
   "Format a buffer name for `denote-backlinks'.
 Use FILE to detect a suitable title with which to name the buffer.  Else
@@ -5205,6 +5207,8 @@ Place the buffer below the current window or wherever the 
user option
 (defalias 'denote-show-backlinks-buffer 'denote-backlinks
   "Alias for `denote-backlinks' command.")
 
+;; Query links
+
 (defvar denote-query-link-history nil
   "Minibuffer history of `denote-query-link-prompt'.")
 



[elpa] externals/denote e1475d1c2b 13/29: Change denote-query-links-buffer-function in the interest of simplicity

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit e1475d1c2bde03dd58c1eeccebc0c5dd7bc248e0
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Change denote-query-links-buffer-function in the interest of simplicity

The technical discussion for this is in issue 561:
.
---
 denote.el | 19 +++
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/denote.el b/denote.el
index 5a4222cd24..5cce22b673 100644
--- a/denote.el
+++ b/denote.el
@@ -5170,14 +5170,9 @@ concomitant alist, such as 
`denote-backlinks-display-buffer-action'."
   (denote-make-links-buffer query files-matching-regexp 
buffer-name display-buffer-action)
 (display-buffer buffer display-buffer-action)))
 
-(defvar denote-query-links-buffer-function #'denote-make-query-links-buffer
+(defvar denote-query-links-buffer-function #'denote-make-links-buffer
   "Function to make an Xref buffer showing query link results.
-It accepts two arguments, a query and a `display-buffer' action alist
-like `denote-query-links-display-buffer-action'.")
-
-(defun denote-make-query-links-buffer (query display-buffer-action)
-  "Make a links buffer for QUERY given DISPLAY-BUFFER-ACTION."
-  (denote-make-links-buffer query nil nil display-buffer-action))
+It accepts the same arguments as `denote-make-links-buffer'.")
 
 (defun denote--backlinks-get-buffer-name (file id)
   "Format a buffer name for `denote-backlinks'.
@@ -5201,10 +5196,10 @@ Place the buffer below the current window or wherever 
the user option
   (interactive)
   (if-let* ((file buffer-file-name))
   (when-let* ((identifier (denote-retrieve-filename-identifier-with-error 
file)))
-(denote-make-links-buffer
- identifier nil
- (denote--backlinks-get-buffer-name file identifier)
- denote-backlinks-display-buffer-action))
+(funcall denote-query-links-buffer-function
+ identifier nil
+ (denote--backlinks-get-buffer-name file identifier)
+ denote-backlinks-display-buffer-action))
 (user-error "Buffer `%s' is not associated with a file" (current-buffer
 
 (defalias 'denote-show-backlinks-buffer 'denote-backlinks
@@ -5288,7 +5283,7 @@ search for."
   (cond
((string-prefix-p "query-contents:" query)
 (setq query (replace-regexp-in-string "query-contents:" "" query))
-(funcall denote-query-links-buffer-function query 
denote-query-links-display-buffer-action))
+(funcall denote-query-links-buffer-function query nil nil 
denote-query-links-display-buffer-action))
((string-prefix-p "query-filenames:" query)
 (setq query (replace-regexp-in-string "query-filenames:" "" query))
 ;; NOTE 2025-03-27: I do not think we need to add another



[elpa] externals/denote c0f55df1f9 02/29: Make the display-buffer action reuse the mode window

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit c0f55df1f9e9b73dee6d8aca0eb927516c6ab989
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make the display-buffer action reuse the mode window

This was always my intention and I made a mistake before.
---
 denote.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index fbfb323e52..7d68f83a99 100644
--- a/denote.el
+++ b/denote.el
@@ -603,7 +603,7 @@ command."
   "3.1.0")
 
 (defcustom denote-backlinks-display-buffer-action
-  '((display-buffer-reuse-window display-buffer-below-selected)
+  '((display-buffer-reuse-mode-window display-buffer-below-selected)
 (window-height . fit-window-to-buffer)
 (dedicated . t))
   "The action used to display the current file's backlinks buffer.
@@ -638,7 +638,7 @@ and/or the documentation string of `display-buffer'."
   :group 'denote)
 
 (defcustom denote-query-links-display-buffer-action
-  '((display-buffer-reuse-window display-buffer-below-selected)
+  '((display-buffer-reuse-mode-window display-buffer-below-selected)
 (window-height . fit-window-to-buffer)
 (dedicated . t))
   "The action used to display query links.



[elpa] externals/denote dbea20fde2 15/29: Make sure that denote--query-last-dired-buffer is a buffer

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit dbea20fde235a467b5e300daa33b740ac277bd1b
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make sure that denote--query-last-dired-buffer is a buffer
---
 denote.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 1d805596dd..fcfde5c5f4 100644
--- a/denote.el
+++ b/denote.el
@@ -5299,7 +5299,7 @@ search for."
 ;; like the Xref buffer.  Otherwise, Dired does not reuse its
 ;; buffer (which is generally okay).
 (let ((buffer (save-window-excursion (denote-sort-dired query nil nil 
nil
-  (when denote--query-last-dired-buffer
+  (when (bufferp denote--query-last-dired-buffer)
 (when-let* ((window (get-buffer-window 
denote--query-last-dired-buffer))
 (_ (window-live-p window)))
   (delete-window window))



[elpa] externals/denote 388227986b 07/29: Make denote-query-links-display-buffer-action not fit to buffer

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 388227986b5cdd33033ad5276b7bcebeab37b7bc
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make denote-query-links-display-buffer-action not fit to buffer

Because in that scenario it can take up almost the entire height of
the frame. Whereas this is less likely for backlinks.
---
 denote.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 590c503642..5d54cc0860 100644
--- a/denote.el
+++ b/denote.el
@@ -640,7 +640,8 @@ and/or the documentation string of `display-buffer'."
 (defcustom denote-query-links-display-buffer-action
   '((display-buffer-reuse-mode-window display-buffer-below-selected)
 (mode . denote-query-mode)
-(window-height . fit-window-to-buffer))
+(window-height . 0.3)
+(preserve-size . (t . t)))
   "The action used to display query links.
 This is the same as `denote-backlinks-display-buffer-action'.  Refer to
 its documentation for the technicalities."



[elpa] externals/denote 11def0d0c5 03/29: Add 'mode' and remove 'dedicated' from display-buffer action alist

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 11def0d0c5f63f8e92ea49fffaee823964bb5252
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add 'mode' and remove 'dedicated' from display-buffer action alist

Otherwise, it keeps creating new windows and
'dispplay-buffer-reuse-mode-window' does not do the right thing.
---
 denote.el | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/denote.el b/denote.el
index 7d68f83a99..6bc4307fa4 100644
--- a/denote.el
+++ b/denote.el
@@ -604,8 +604,8 @@ command."
 
 (defcustom denote-backlinks-display-buffer-action
   '((display-buffer-reuse-mode-window display-buffer-below-selected)
-(window-height . fit-window-to-buffer)
-(dedicated . t))
+(mode . denote-query-mode)
+(window-height . fit-window-to-buffer))
   "The action used to display the current file's backlinks buffer.
 
 The value has the form (FUNCTION . ALIST), where FUNCTION is
@@ -639,8 +639,8 @@ and/or the documentation string of `display-buffer'."
 
 (defcustom denote-query-links-display-buffer-action
   '((display-buffer-reuse-mode-window display-buffer-below-selected)
-(window-height . fit-window-to-buffer)
-(dedicated . t))
+(mode . denote-query-mode)
+(window-height . fit-window-to-buffer))
   "The action used to display query links.
 This is the same as `denote-backlinks-display-buffer-action'.  Refer to
 its documentation for the technicalities."



[elpa] externals/denote c2f3ca7cf4 09/29: Make denote-fontify-links also work with query links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit c2f3ca7cf49a44a50f73ba87fee17100914e32fd
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make denote-fontify-links also work with query links

The technical discussion for this is in issue 561:
.
---
 denote.el | 128 +-
 1 file changed, 68 insertions(+), 60 deletions(-)

diff --git a/denote.el b/denote.el
index 8658982f0e..9bf7ed4b67 100644
--- a/denote.el
+++ b/denote.el
@@ -5109,20 +5109,16 @@ file's title.  This has the same meaning as in 
`denote-link'."
 
 ; Link buttons
 
-(defun denote-link--find-file-at-button (button)
-  "Visit file referenced by BUTTON."
-  (let* ((id (denote-extract-id-from-string
-  (buffer-substring-no-properties
-   (button-start button)
-   (button-end button
- (file (denote-get-path-by-id id)))
-(funcall denote-open-link-function file)))
+(make-obsolete 'denote-link--find-file-at-button nil "4.0.0")
 
 (make-obsolete
  'denote-link-buttonize-buffer
  'denote-fontify-links-mode
  "Use the `denote-fontify-links-mode', as it works better than buttonization. 
Since 3.0.0")
 
+;; NOTE 2025-03-24: This does not work for query links because of how
+;; `markdown-follow-link-at-point' is implemented to always check for
+;; links.
 (defun denote-link-markdown-follow (link)
   "Function to open Denote file present in LINK.
 To be assigned to `markdown-follow-link-functions'."
@@ -5146,67 +5142,78 @@ To be assigned to `markdown-follow-link-functions'."
 map)
   "Keymap for mouse actions over fontified Denote links.")
 
+(defun denote--link-open-at-point-subr ()
+  "Open link at point."
+  (let* ((query (get-text-property (point) 'denote-link-query-part))
+ (path (denote-get-path-by-id query)))
+(if path
+(funcall denote-open-link-function path)
+  (funcall denote-query-links-buffer-function query 
denote-query-links-display-buffer-action
+
+(defun denote-link-open-at-point ()
+  "Open Denote link at point."
+  (interactive)
+  (denote--link-open-at-point-subr))
+
 (defun denote-link-open-at-mouse (ev)
   "Open Denote link for mouse EV click."
   (interactive "e")
   (mouse-set-point ev)
-  (if-let* ((id (get-text-property (point) 'denote-link-id))
-(path (denote-get-path-by-id id)))
-  (funcall denote-open-link-function path)
-(error "Cannot resolve the link at point")))
-
-(defun denote-fontify-links (&optional limit)
-  "Fontify Denote links up until optional LIMIT.
+  (denote--link-open-at-point-subr))
 
+(defun denote--fontify-links-subr (query limit)
+  "Do the work of the font-lock match for QUERY up to LIMIT.
 Implementation based on the function `org-activate-links'."
   (catch :exit
-(when-let* ((type (denote-filetype-heuristics (buffer-file-name
-  (while (re-search-forward (denote--link-in-context-regexp type) limit t)
-(save-match-data  ; to return the matches to font-lock
-  (let* ((start (match-beginning 0))
- (end (match-end 0))
- (visible-start (match-beginning 2))
- (visible-end (match-end 2))
- (id (match-string-no-properties 1))
- (path (denote-get-path-by-id id))
- (file-link (concat "file:" path)))
-;; FIXME 2024-06-19: Rewrite this (unless...let...if...)
-;; because it is hard to reason about. But it works, so no
-;; pressure.
-(unless (let ((face (get-text-property
- (max (1- start) (point-min)) 'face)))
-  (if (consp face)
-  (memq 'font-lock-comment-face face)
-(eq 'font-lock-comment-face face)))
-  (let* ((properties `(face denote-faces-link
-mouse-face highlight
-keymap ,denote-link-mouse-map
-denote-link-id ,id
-help-echo ,(or 
(denote-retrieve-title-or-filename path type)
-   (concat "denote:" id))
-htmlize-link (:uri ,file-link)
-font-lock-multiline t))
- (non-sticky-props
-  '(rear-nonsticky (mouse-face highlight keymap invisible 
intangible help-echo htmlize-link)))
- (face-property 'link)
- (hidden (append '(invisible 'denote-link) properties)))
-(remove-text-properties start end '(invisible nil))
-(add-text-properties start visible-start hidden)
-(add-face-text-property start end face-property)
-(add-text-properties visible-start visible-end properties)
-(add

[elpa] externals/denote updated (27b8f0ad1d -> 9422778efa)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/denote.

  from  27b8f0ad1d Set denote-org-store-link-to-heading to nil
   new  a612e42567 Add initial support for query links
   new  c0f55df1f9 Make the display-buffer action reuse the mode window
   new  11def0d0c5 Add 'mode' and remove 'dedicated' from display-buffer 
action alist
   new  bb4d193d94 Remove FILES-MATCHING-REGEXP parameter from 
'denote-query'
   new  490ad08718 Make 'denote-query' insert a link without checking for 
matches
   new  7aaf9be29f Make 'denote-query' also use the active region
   new  388227986b Make denote-query-links-display-buffer-action not fit to 
buffer
   new  d2aa0cd683 Make function to get query links a variable
   new  c2f3ca7cf4 Make denote-fontify-links also work with query links
   new  68b84289fc Reposition the denote-fontify-links part after the links 
buffer
   new  89071cffce Expand query links to also work for file names and 
change their format
   new  0d992fa74d Merge branch 'main' into query-links
   new  e1475d1c2b Change denote-query-links-buffer-function in the 
interest of simplicity
   new  c12c245344 Add two outline headings for backlinks and query links
   new  dbea20fde2 Make sure that denote--query-last-dired-buffer is a 
buffer
   new  5f503529e4 Use "Denote Query" name on the modeline for 
denote-query-mode
   new  b272883038 Use upper case letters in the query links prompts to 
improve usability
   new  be557935dc Add error check to query links to ensure they exit if 
the file type is unrecognised
   new  6810d13daf Add WORK-IN-PROGRESS formatting of query links to 
include a description text
   new  83b6e35880 Make query links use their own face in Org buffers
   new  d45ace3fb6 Make query links use their own face (amend 83b6e35)
   new  ff50b32258 Revise "link in context" regexp to also cover query links
   new  61d2192009 Remove needless denote-fontify-query-links (per commit 
ff50b32)
   new  7e0a7944e1 Update the doc string of denote-query-contents-link
   new  dec1087e01 Update the doc string of denote-query-filenames-link
   new  a795d23f12 Document the new query links and update the manual 
accordingly
   new  9d32f611e7 Add query links to the menu bar
   new  25409b6092 Add denote-sort-dired to the menu bar
   new  9422778efa Add missing autoload cookies for non-Org link 
fontification


Summary of changes:
 README.org | 201 +-
 denote.el  | 696 ++---
 2 files changed, 482 insertions(+), 415 deletions(-)



[elpa] externals/denote 9422778efa 29/29: Add missing autoload cookies for non-Org link fontification

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 9422778efaec3955018eb7185970778af87bfecf
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add missing autoload cookies for non-Org link fontification
---
 denote.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/denote.el b/denote.el
index 0e614d9aee..5c8f3f546f 100644
--- a/denote.el
+++ b/denote.el
@@ -5450,6 +5450,7 @@ To be used as a `thing-at' provider."
 
 (defvar thing-at-point-provider-alist)
 
+;;;###autoload
 (defun denote-fontify-links-mode-maybe ()
   "Enable `denote-fontify-links-mode' in a denote file unless in `org-mode'."
   (when (and buffer-file-name
@@ -5457,6 +5458,7 @@ To be used as a `thing-at' provider."
  (denote-file-is-note-p buffer-file-name))
 (denote-fontify-links-mode)))
 
+;;;###autoload
 (define-minor-mode denote-fontify-links-mode
   "A minor mode to fontify and fold Denote links.
 



[elpa] externals/denote 7e0a7944e1 24/29: Update the doc string of denote-query-contents-link

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 7e0a7944e14aa4ddec82154288868e9424061767
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update the doc string of denote-query-contents-link
---
 denote.el | 12 
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/denote.el b/denote.el
index 29eab4a5cc..c4b9699540 100644
--- a/denote.el
+++ b/denote.el
@@ -5263,14 +5263,10 @@ If FILE-TYPE is nil, use that of Org."
 ;;;###autoload
 (defun denote-query-contents-link (query)
   "Insert query link for file contents.
-Prompt for QUERY or use the text of the active region.
-
-Query links of this sort do not point to any file but instead initiate a
-search in the contents of files inside the variable `denote-directory'.
-They are always formatted as [[denote:query-contents:QUERY]].  This is
-unlike what `denote-link' and related commands do, which always
-establish a direct connection to a file and their format is more
-flexible."
+Prompt for QUERY or use the text of the active region.  When the user
+follows this link, place any matches in a separate buffer (using the
+built-in Xref mechanism).  This is the equivalent of a Unix grep command
+across the variable `denote-directory'."
   (interactive
(list
 (or (denote--get-active-region-content)



[elpa] externals/denote 89071cffce 11/29: Expand query links to also work for file names and change their format

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 89071cffce46e1fd7de928692b7a767e263aa14b
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Expand query links to also work for file names and change their format

I am now using the format suggested by Jean-Philippe Gagné Guay, which
is "denote:TYPE:QUERY". The technical discussion for this is in issue 561:
.

Perhaps there is a way to apply a different face to the query links,
though I do not think this is a critical feature.

What remains to be decided is if we can/should have shorter TYPE
values than the ones I am using now.
---
 denote.el | 117 --
 1 file changed, 91 insertions(+), 26 deletions(-)

diff --git a/denote.el b/denote.el
index 7d90cac3ab..418c1a5328 100644
--- a/denote.el
+++ b/denote.el
@@ -639,7 +639,7 @@ and/or the documentation string of `display-buffer'."
 
 (defcustom denote-query-links-display-buffer-action
   '((display-buffer-reuse-mode-window display-buffer-below-selected)
-(mode . denote-query-mode)
+(mode . (denote-query-mode dired))
 (window-height . 0.3)
 (preserve-size . (t . t)))
   "The action used to display query links.
@@ -1739,7 +1739,7 @@ also prompt for SORT-BY-COMPONENT, REVERSE, and 
EXCLUDE-REGEXP.
OMIT-CURRENT have been applied.
 
 When called from Lisp, the arguments are a string, a symbol among
-`denote-sort-components', and a non-nil value, respectively."
+`denote-sort-components', a non-nil value, and a string, respectively."
   (interactive
(append (list (denote-files-matching-regexp-prompt)) 
(denote-sort-dired--prompts)))
   (let ((component (or sort-by-component
@@ -1770,9 +1770,7 @@ When called from Lisp, the arguments are a string, a 
symbol among
   ;; `denote-update-dired-buffers'.
   (kill-buffer dired-buffer)
   (denote-sort-dired files-matching-regexp component 
reverse-sort exclude-rx
-  ;; Because of the above NOTE, I am printing a message.  Not
-  ;; what I want, but it is better than nothing...
-  (message denote-sort-dired-buffer-name))
+  buffer-name)
   (message "No matching files for: %s" files-matching-regexp
 
 (defalias 'denote-sort-dired 'denote-dired
@@ -5214,10 +5212,10 @@ Place the buffer below the current window or wherever 
the user option
 (defalias 'denote-show-backlinks-buffer 'denote-backlinks
   "Alias for `denote-backlinks' command.")
 
-(defvar denote-query-history nil
-  "Minibuffer history of `denote-query-prompt'.")
+(defvar denote-query-link-history nil
+  "Minibuffer history of `denote-query-link-prompt'.")
 
-(defun denote-query-prompt (&optional initial-query prompt-text)
+(defun denote-query-link-prompt (&optional initial-query prompt-text)
   "Prompt for query string.
 With optional INITIAL-QUERY use it as the initial minibuffer text.  With
 optional PROMPT-TEXT use it in the minibuffer instead of the default
@@ -5230,21 +5228,89 @@ non-nil value."
 (setq initial-query nil))
   (denote--with-conditional-completion
'denote-signature-prompt
-   (format-prompt (or prompt-text "Query in files") nil)
-   denote-query-history
+   (format-prompt (or prompt-text "Query for") nil)
+   denote-query-link-history
initial-query))
 
+(defconst denote-query-link-types '(query-contents query-filenames)
+  "Types of query links.")
+
+(defun denote--format-query-link (type query)
+  "Format QUERY link of TYPE.
+Return an error if TYPE is not one among the symbols specified in
+`denote-query-link-types'."
+  (unless (memq type denote-query-link-types)
+(error "Type `%s' is not one among `denote-query-link-types'" type))
+  (format "[[denote:%s:%s]]" type query))
+
+;;;###autoload
+(defun denote-query-contents-link (query)
+  "Insert query link for file contents.
+Prompt for QUERY or use the text of the active region.
+
+Query links of this sort do not point to any file but instead initiate a
+search in the contents of files inside the variable `denote-directory'.
+They are always formatted as [[denote:query-contents:QUERY]].  This is
+unlike what `denote-link' and related commands do, which always
+establish a direct connection to a file and their format is more
+flexible."
+  (interactive
+   (list
+(or (denote--get-active-region-content)
+(denote-query-link-prompt nil "Query in file contents"
+  (denote--delete-active-region-content)
+  (insert (denote--format-query-link 'query-contents query)))
+
 ;;;###autoload
-(defun denote-query (query)
-  "Create query link at point, prompting for QUERY or using the active region.
-Query links do not point to any file but instead initiate a search in
-the contents of files inside the variable `denote-directory'.  They are
-always formatted as [[denote:QUERY]].  This is unlike what `denote-link'
-and related commands do, which always e

[elpa] externals/denote a612e42567 01/29: Add initial support for query links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit a612e42567bffc7ef468fb63c24f83897e479a1e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add initial support for query links

I still need to work on the link implementation for file types other
than Org (in 'denote-fontify-links' and related) and then expand the
manual to document all the changes herein. Though I want to make this
commit first to give others the chance to review the code.
---
 denote.el | 341 +-
 1 file changed, 157 insertions(+), 184 deletions(-)

diff --git a/denote.el b/denote.el
index 6cf052d23a..fbfb323e52 100644
--- a/denote.el
+++ b/denote.el
@@ -593,18 +593,7 @@ command."
   :link '(info-link "(denote) The denote-templates option")
   :group 'denote)
 
-(defcustom denote-backlinks-show-context nil
-  "When non-nil, show link context in the backlinks buffer.
-
-The context is the line a link to the current note is found in.
-The context includes multiple links to the same note, if those
-are present.
-
-When nil, only show a simple list of file names that link to the
-current note."
-  :group 'denote
-  :package-version '(denote . "1.2.0")
-  :type 'boolean)
+(make-obsolete-variable 'denote-backlinks-show-context nil "4.0.0")
 
 (make-obsolete-variable 'denote-rename-no-confirm 'denote-rename-confirmations 
"3.0.0")
 
@@ -648,6 +637,24 @@ and/or the documentation string of `display-buffer'."
   :package-version '(denote . "3.1.0")
   :group 'denote)
 
+(defcustom denote-query-links-display-buffer-action
+  '((display-buffer-reuse-window display-buffer-below-selected)
+(window-height . fit-window-to-buffer)
+(dedicated . t))
+  "The action used to display query links.
+This is the same as `denote-backlinks-display-buffer-action'.  Refer to
+its documentation for the technicalities."
+  :risky t
+  :type `(choice
+  (alist :key-type
+ (choice :tag "Condition"
+ regexp
+ (function :tag "Matcher function"))
+ :value-type ,display-buffer--action-custom-type)
+  (function :tag "Custom function to return an action alist"))
+  :package-version '(denote . "4.0.0")
+  :group 'denote)
+
 (defcustom denote-rename-confirmations '(rewrite-front-matter modify-file-name)
   "Make renaming commands prompt for confirmations.
 
@@ -2508,10 +2515,11 @@ This is a wrapper for 
`denote-retrieve-front-matter-title-value' and
   'denote-retrieve-groups-xref-query
   "4.0.0")
 
-(defun denote-retrieve-groups-xref-query (query)
+(defun denote-retrieve-groups-xref-query (query &optional 
files-matching-regexp)
   "Access location of xrefs for QUERY and group them per file.
-Limit the search to text files."
-  (when-let* ((files (denote-directory-files nil nil :text-only))
+Limit the search to text files.  With optional FILES-MATCHING-REGEXP,
+pass it to `denote-directory-files'."
+  (when-let* ((files (denote-directory-files files-matching-regexp nil 
:text-only))
   (locations (mapcar #'xref-match-item-location 
(xref-matches-in-files query files
 (mapcar #'xref-location-group locations)))
 
@@ -2520,16 +2528,17 @@ Limit the search to text files."
   'denote-retrieve-files-xref-query
   "4.0.0")
 
-(defun denote-retrieve-files-xref-query (query)
+(defun denote-retrieve-files-xref-query (query &optional files-matching-regexp)
   "Return sorted, deduplicated file names with matches for QUERY in their 
contents.
-Limit the search to text files."
+Limit the search to text files.  With optional FILES-MATCHING-REGEXP,
+pass it to `denote-directory-files'."
   (sort
(delete-dups
-(denote-retrieve-groups-xref-query query))
+(denote-retrieve-groups-xref-query query files-matching-regexp))
#'string-collate-lessp))
 
 (defun denote-retrieve-xref-alist (query &optional files-matching-regexp)
-  "Return xref alist of files with location of matches for QUERY.
+  "Return xref alist of absolute file paths with location of matches for QUERY.
 With optional FILES-MATCHING-REGEXP, limit the list of files
 accordingly (per `denote-directory-files').
 
@@ -4613,9 +4622,7 @@ and seconds."
   `((denote-faces-dired-file-name-matcher ,@denote-faces-matchers))
   "Keywords for fontification of file names.")
 
-(defconst denote-faces-file-name-keywords-for-backlinks
-  `(("^.+$" ,@denote-faces-matchers))
-  "Keywords for fontification of file names.")
+(make-obsolete-variable 'denote-faces-file-name-keywords-for-backlinks nil 
"4.0.0")
 
 (defface denote-faces-prompt-old-name '((t :inherit error))
   "Face for the old name shown in the prompt of `denote-rename-file' etc."
@@ -5245,162 +5252,72 @@ major mode is not `org-mode' (or derived therefrom).  
Consider using
  thing-at-point-provider-alist)))
   (font-lock-update))
 
-; Backlinks' buffer
+; Links' buffer (query links and backlinks using `denote-query-mode')
 
-(define-button-type 'denote-link

[elpa] externals/denote 0d992fa74d 12/29: Merge branch 'main' into query-links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 0d992fa74d9aa85e675f8e83b0feb016be62b2d5
Merge: 89071cffce 27b8f0ad1d
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Merge branch 'main' into query-links
---
 README.org |  4 +---
 denote.el  | 14 ++
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/README.org b/README.org
index df6c4a6510..c1c9d80ec3 100644
--- a/README.org
+++ b/README.org
@@ -2667,7 +2667,7 @@ the command ~org-open-at-point~).
 
 [ Revised to also support context links that do not use a =PROPERTIES=
   drawer but which are easier to break. This is done as part of
-  {{{development-version}}}. ]
+  {{{development-version}}}. Also revised to have a nil value by default. ]
 
 #+vindex: denote-org-store-link-to-heading
 The user option ~denote-org-store-link-to-heading~ determines whether
@@ -2684,8 +2684,6 @@ example:
 
 : [[denote:20240118T060608][Some test]]
 
-This is what Denote was doing in versions prior to 2.3.0.
-
 If the value is ~context~, the link consists of the file's identifier
 and the text of the current heading, like this:
 
diff --git a/denote.el b/denote.el
index 418c1a5328..5a4222cd24 100644
--- a/denote.el
+++ b/denote.el
@@ -496,7 +496,7 @@ and/or when the user invokes the command `denote-date'."
   :package-version '(denote . "0.6.0")
   :type 'boolean)
 
-(defcustom denote-org-store-link-to-heading 'id
+(defcustom denote-org-store-link-to-heading nil
   "Determine whether `org-store-link' links to the current Org heading.
 
 [ Remember that what `org-store-link' does is merely collect a link.  To
@@ -510,8 +510,6 @@ example:
 
 [[denote:20240118T060608][Some test]]
 
-This is what Denote was doing in versions prior to 2.3.0.
-
 If the value is `context', the link consists of the file's identifier
 and the text of the current heading, like this:
 
@@ -558,10 +556,10 @@ navigates to that heading.
   identifier of the file, even if this user option is set to a
   non-nil value.  ]"
   :group 'denote
-  :package-version '(denote . "3.2.0")
-  :type '(choice (const :tag "No link to heading" nil)
+  :package-version '(denote . "4.0.0")
+  :type '(choice (const :tag "No link to heading (default)" nil)
  (const :tag "Link to the context" context)
- (const :tag "Link wtih CUSTOM_ID" id)))
+ (const :tag "Link wtih CUSTOM_ID, creating it if needed" id)))
 
 (defcustom denote-templates nil
   "Alist of content templates for new notes.
@@ -1403,7 +1401,7 @@ something like .org even if the actual file extension is
 (car files)
   (seq-find
(lambda (file)
- (let ((file-extension (denote-get-file-extension file)))
+ (let ((file-extension (denote-get-file-extension-sans-encryption 
file)))
(and (denote-file-has-supported-extension-p file)
 (or (string= (denote--file-extension denote-file-type)
  file-extension)
@@ -1773,7 +1771,7 @@ When called from Lisp, the arguments are a string, a 
symbol among
   buffer-name)
   (message "No matching files for: %s" files-matching-regexp
 
-(defalias 'denote-sort-dired 'denote-dired
+(defalias 'denote-dired 'denote-sort-dired
   "Alias for `denote-sort-dired' command.")
 
  Keywords



[elpa] externals/denote ff50b32258 22/29: Revise "link in context" regexp to also cover query links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit ff50b322588a4e023aaf5e0b35ecf1ad0013b653
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Revise "link in context" regexp to also cover query links
---
 denote.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/denote.el b/denote.el
index 8a66d9e66d..59c7dabe84 100644
--- a/denote.el
+++ b/denote.el
@@ -4760,7 +4760,7 @@ Also see `denote-id-only-link-in-context-regexp'.")
 
 (defvar denote-org-link-in-context-regexp
   (concat "\\[\\[" "denote:"
-  "\\(?1:" denote-id-regexp "\\)"
+  "\\(?1:[^][]*?\\)"
   "\\(?:::.*\\)?" "]"
   "\\[" "\\(?2:" ".*?" "\\)" "]]")
   "Regexp to match an Org link in its context.
@@ -4768,12 +4768,12 @@ The format of such links is `denote-org-link-format'.")
 
 (defvar denote-md-link-in-context-regexp
   (concat "\\[" "\\(?2:" ".*?" "\\)" "]"
-  "(denote:"  "\\(?1:" denote-id-regexp "\\)" ")")
+  "(denote:"  "\\(?1:[^][]*?\\)" ")")
   "Regexp to match a Markdown link in its context.
 The format of such links is `denote-md-link-format'.")
 
 (defvar denote-id-only-link-in-context-regexp
-  (concat "\\[\\[" "denote:"  "\\(?1:" denote-id-regexp "\\)" "]]")
+  (concat "\\[\\[" "denote:"  "\\(?1:[^][]*?\\)" "]]")
   "Regexp to match an identifier-only link in its context.
 The format of such links is `denote-id-only-link-format'."  )
 



[elpa] externals/denote 7aaf9be29f 06/29: Make 'denote-query' also use the active region

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 7aaf9be29fd7d81aac1600e16d07fb3706eafa40
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make 'denote-query' also use the active region
---
 denote.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index f3a2dfbb41..590c503642 100644
--- a/denote.el
+++ b/denote.el
@@ -5372,13 +5372,13 @@ non-nil value."
 
 ;;;###autoload
 (defun denote-query (query)
-  "Create a QUERY link at point.
+  "Create query link at point, prompting for QUERY or using the active region.
 Query links do not point to any file but instead initiate a search in
 the contents of files inside the variable `denote-directory'.  They are
 always formatted as [[denote:QUERY]].  This is unlike what `denote-link'
 and related commands do, which always establish a direct connection to a
 file and their format is more flexible."
-  (interactive (list (denote-query-prompt)))
+  (interactive (list (or (denote--get-active-region-content) 
(denote-query-prompt
   (denote--delete-active-region-content)
   (insert (format "[[denote:%s]]" query)))
 



[elpa] externals/denote d45ace3fb6 21/29: Make query links use their own face (amend 83b6e35)

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit d45ace3fb6421e52f52eb25e0469e58c09237cc6
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make query links use their own face (amend 83b6e35)

The technical discussion for this is in issue 561:
.
---
 denote.el | 28 ++--
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/denote.el b/denote.el
index e485479140..8a66d9e66d 100644
--- a/denote.el
+++ b/denote.el
@@ -5388,6 +5388,12 @@ To be assigned to `markdown-follow-link-functions'."
   (mouse-set-point ev)
   (denote--link-open-at-point-subr))
 
+(defun denote-get-link-face (query)
+  "Return appropriate face for QUERY."
+  (if (denote-identifier-p query)
+  'denote-faces-link
+'denote-faces-query-link))
+
 (defun denote--fontify-links-subr (query limit)
   "Do the work of the font-lock match for QUERY up to LIMIT.
 Implementation based on the function `org-activate-links'."
@@ -5399,13 +5405,13 @@ Implementation based on the function 
`org-activate-links'."
(visible-start (or (match-beginning 2) start))
(visible-end (or (match-end 2) end))
(query (match-string-no-properties 1)))
-  (let* ((properties `(face denote-faces-link
-mouse-face highlight
-keymap ,denote-link-mouse-map
-denote-link-query-part ,query
-help-echo query
-htmlize-link (:uri ,query)
-font-lock-multiline t))
+  (let* ((properties `( face ,(denote-get-link-face query)
+mouse-face highlight
+keymap ,denote-link-mouse-map
+denote-link-query-part ,query
+help-echo query
+htmlize-link (:uri ,query)
+font-lock-multiline t))
  (non-sticky-props
   '(rear-nonsticky (mouse-face highlight keymap invisible 
intangible help-echo htmlize-link)))
  (face-property 'link)
@@ -5858,12 +5864,6 @@ backend."
   (path (denote-get-path-by-id identifier)))
 path))
 
-(defun denote-link-ol-face (path)
-  "Return appropriate face for PATH."
-  (if (denote-identifier-p path)
-  'denote-faces-link
-'denote-faces-query-link))
-
 ;; The `eval-after-load' part with the quoted lambda is adapted from
 ;; Elfeed: .
 
@@ -5878,7 +5878,7 @@ backend."
   (org-link-set-parameters
"denote"
:follow #'denote-link-ol-follow
-   :face #'denote-link-ol-face
+   :face #'denote-get-link-face
:help-echo #'denote-link-ol-help-echo
:complete #'denote-link-ol-complete
:store #'denote-link-ol-store



[elpa] externals/denote 6810d13daf 19/29: Add WORK-IN-PROGRESS formatting of query links to include a description text

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 6810d13daf885990e872a8a71e9a0d6cfc8e7350
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add WORK-IN-PROGRESS formatting of query links to include a description text

The technical discussion for this is in issue 561:
.
---
 denote.el | 27 +--
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/denote.el b/denote.el
index 9de275b983..2bcb2994f6 100644
--- a/denote.el
+++ b/denote.el
@@ -5232,13 +5232,28 @@ non-nil value."
 (defconst denote-query-link-types '(query-contents query-filenames)
   "Types of query links.")
 
-(defun denote--format-query-link (type query)
-  "Format QUERY link of TYPE.
+;; NOTE 2025-03-27: Should we expose a user option for this?  And/or
+;; should we add a DESCRIPTION parameter to `denote--format-query-link'?
+;;
+;; What would make for a good default description in that scenario?
+;; Maybe "QC:query text here" and "QF:query text here" for
+;; `query-contents' and `query-filenames' respectively.
+(defvar denote-query-description-prefix ""
+  "Prefix string for query links to format their description text.
+The description text constists of the value of this variable followed by
+the query")
+
+(defun denote--format-query-link (type query file-type)
+  "Format QUERY link of TYPE for the given FILE-TYPE.
 Return an error if TYPE is not one among the symbols specified in
-`denote-query-link-types'."
+`denote-query-link-types'.
+
+If FILE-TYPE is nil, use that of Org."
   (unless (memq type denote-query-link-types)
 (error "Type `%s' is not one among `denote-query-link-types'" type))
-  (format "[[denote:%s:%s]]" type query))
+  (format (or (denote--link-format file-type) (denote--link-format 'org))
+  (format "%s:%s" type query)
+  (format "%s%s" denote-query-description-prefix query)))
 
 ;;;###autoload
 (defun denote-query-contents-link (query)
@@ -5259,7 +5274,7 @@ flexible."
   (and buffer-file-name (denote-file-has-supported-extension-p 
buffer-file-name)))
 (user-error "The current file type is not recognized by Denote"))
   (denote--delete-active-region-content)
-  (insert (denote--format-query-link 'query-contents query)))
+  (insert (denote--format-query-link 'query-contents query 
(denote-filetype-heuristics buffer-file-name
 
 ;;;###autoload
 (defun denote-query-filenames-link (query)
@@ -5280,7 +5295,7 @@ flexible."
   (and buffer-file-name (denote-file-has-supported-extension-p 
buffer-file-name)))
 (user-error "The current file type is not recognized by Denote"))
   (denote--delete-active-region-content)
-  (insert (denote--format-query-link 'query-filenames query)))
+  (insert (denote--format-query-link 'query-filenames query 
(denote-filetype-heuristics buffer-file-name
 
 (defvar denote--query-last-dired-buffer nil
   "Buffer object produced by the last query for file names.")



[elpa] externals/denote 68b84289fc 10/29: Reposition the denote-fontify-links part after the links buffer

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 68b84289fcf13fbbd3b582af8a4f3a927a468f7e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Reposition the denote-fontify-links part after the links buffer
---
 denote.el | 278 +++---
 1 file changed, 139 insertions(+), 139 deletions(-)

diff --git a/denote.el b/denote.el
index 9bf7ed4b67..7d90cac3ab 100644
--- a/denote.el
+++ b/denote.el
@@ -5107,6 +5107,145 @@ file's title.  This has the same meaning as in 
`denote-link'."
 (defalias 'denote-link-to-existing-or-new-note 'denote-link-or-create
   "Alias for `denote-link-or-create' command.")
 
+; Links' buffer (query links and backlinks using `denote-query-mode')
+
+(make-obsolete 'denote-link--backlink-find-file nil "4.0.0")
+(make-obsolete 'denote-link--display-buffer nil "4.0.0")
+(make-obsolete 'denote-backlinks-mode-next nil "4.0.0")
+(make-obsolete 'denote-backlinks-mode-previous nil "4.0.0")
+(make-obsolete 'denote-backlinks-toggle-context nil "4.0.0")
+(make-obsolete-variable 'denote-backlinks-mode-map nil "4.0.0")
+
+(define-obsolete-function-alias
+  'denote-backlinks-mode
+  'denote-query-mode
+  "4.0.0")
+
+(define-derived-mode denote-query-mode xref--xref-buffer-mode "Denote"
+  "Major mode for queries found in the variable `denote-directory'.
+This is used by the command `denote-backlinks' and all links created by
+the `denote-query' command, among others."
+  :interactive nil)
+
+(define-obsolete-function-alias
+  'denote-link--prepare-backlinks
+  'denote-make-links-buffer
+  "4.0.0")
+
+;; NOTE 2025-03-24: The `&rest' is there because we used to have an
+;; extra SHOW-CONTEXT parameter.  This way we do not break anybody's
+;; code, even if we slightly modify the behaviour.
+(defun denote-make-links-buffer (query &optional files-matching-regexp 
buffer-name display-buffer-action &rest _)
+  "Create links' buffer called BUFFER-NAME for QUERY.
+
+With optional FILES-MATCHING-REGEXP, limit the list of files
+accordingly (per `denote-directory-files').
+
+Optional DISPLAY-BUFFER-ACTION is a `display-buffer' action and
+concomitant alist, such as `denote-backlinks-display-buffer-action'."
+  (let* ((inhibit-read-only t)
+ (file buffer-file-name)
+ (buffer (or buffer-name (format-message "Denote query for `%s'" 
query)))
+ ;; We retrieve results in absolute form and change the
+ ;; absolute path to a relative path below. We could add a
+ ;; suitable function and the results would be automatically
+ ;; in relative form, but eventually notes may not be all
+ ;; under a common directory (or project).
+ (xref-alist (denote-retrieve-xref-alist query files-matching-regexp))
+ (dir (denote-directory)))
+(unless xref-alist
+  (error "No matches for query `%s'" query))
+(with-current-buffer (get-buffer-create buffer)
+  (erase-buffer)
+  (denote-query-mode)
+  ;; In the links' buffer, the values of variables set in a
+  ;; `.dir-locals.el` do not apply.  We need to set
+  ;; `denote-directory' here because the buttons depend on it.
+  ;; Moreover, its value is overwritten after enabling the major
+  ;; mode, so it needs to be set after.
+  (setq-local denote-directory dir)
+  (setq overlay-arrow-position nil)
+  (goto-char (point-min))
+  (xref--insert-xrefs xref-alist)
+  (goto-char (point-min))
+  (setq-local revert-buffer-function
+  (lambda (_ignore-auto _noconfirm)
+(when-let* ((buffer-file-name file))
+  (denote-make-links-buffer query files-matching-regexp 
buffer-name display-buffer-action)
+(display-buffer buffer display-buffer-action)))
+
+(defvar denote-query-links-buffer-function #'denote-make-query-links-buffer
+  "Function to make an Xref buffer showing query link results.
+It accepts two arguments, a query and a `display-buffer' action alist
+like `denote-query-links-display-buffer-action'.")
+
+(defun denote-make-query-links-buffer (query display-buffer-action)
+  "Make a links buffer for QUERY given DISPLAY-BUFFER-ACTION."
+  (denote-make-links-buffer query nil nil display-buffer-action))
+
+(defun denote--backlinks-get-buffer-name (file id)
+  "Format a buffer name for `denote-backlinks'.
+Use FILE to detect a suitable title with which to name the buffer.  Else
+use the ID."
+  (if-let* ((type (denote-filetype-heuristics file))
+(title (denote-retrieve-front-matter-title-value file type)))
+  (format "*Denote FILE backlinks for %S*" title)
+(format "*Denote FILE backlinks for %s*" id)))
+
+;;;###autoload
+(defun denote-backlinks ()
+  "Produce a buffer with backlinks to the current note.
+
+Show the names of files linking to the current file.  Include the
+context of each link if the user option `denote-backlinks-show-context'
+is non-nil.
+
+Place the buffer below the current window or wherever the user option
+`denot

[elpa] externals/denote bb4d193d94 04/29: Remove FILES-MATCHING-REGEXP parameter from 'denote-query'

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit bb4d193d949d94a4e05cab6066bf246fb74947e8
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Remove FILES-MATCHING-REGEXP parameter from 'denote-query'

It makes no sense there, but the idea is still useful in other applications.
---
 denote.el | 20 
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/denote.el b/denote.el
index 6bc4307fa4..d6f0db63ae 100644
--- a/denote.el
+++ b/denote.el
@@ -5371,27 +5371,15 @@ non-nil value."
initial-query))
 
 ;;;###autoload
-(defun denote-query (query &optional files-matching-regexp)
+(defun denote-query (query)
   "Create a QUERY link at point.
 Query links do not point to any file but instead initiate a search in
 the contents of files inside the variable `denote-directory'.  They are
 always formatted as [[denote:QUERY]].  This is unlike what `denote-link'
 and related commands do, which always establish a direct connection to a
-file and their format is more flexible.
-
-With optional FILES-MATCHING-REGEXP, limit the list of files to search
-through to only those whose file name matches the given regular
-expression.  When called interactively, prompt FILES-MATCHING-REGEXP
-when there is a universal prefix argument (\\[universal-argument])."
-  (interactive
-   (list
-(denote-query-prompt)
-(when current-prefix-arg
-  ;; NOTE 2025-03-24: I think we do not need a prompt for this
-  ;; one.  But if we do, then it probably should be like
-  ;; `denote-query-prompt'.
-  (read-string "Limit to FILES-MATCHING-REGEXP: "
-  (if-let* ((files (denote-retrieve-files-xref-query query 
files-matching-regexp)))
+file and their format is more flexible."
+  (interactive (list (denote-query-prompt)))
+  (if-let* ((files (denote-retrieve-files-xref-query query)))
   (progn
 (denote--delete-active-region-content)
 (insert (format "[[denote:%s]]" query)))



[elpa] externals/denote 25409b6092 28/29: Add denote-sort-dired to the menu bar

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 25409b609231c13caf928ed8c516994df2943fd3
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add denote-sort-dired to the menu bar
---
 denote.el | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/denote.el b/denote.el
index a49d04e319..0e614d9aee 100644
--- a/denote.el
+++ b/denote.el
@@ -5684,6 +5684,9 @@ This command is meant to be used from a Dired buffer."
  :help "Create new note with the chosen command and link to it from the 
current file"
  :enable (derived-mode-p 'text-mode)]
 "---"
+["Generate sorted and filtered Dired listing" denote-sort-dired
+ :help "Generate a sorted and filtered Dired listing of files in the 
`denote-directory'"]
+"---"
 ["Highlight Dired file names" denote-dired-mode
  :help "Apply colors to Denote file name components in Dired"
  :enable (derived-mode-p 'dired-mode)



[elpa] externals/denote 61d2192009 23/29: Remove needless denote-fontify-query-links (per commit ff50b32)

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 61d21920091ee1df0d821dfbd3a8945eac6175f5
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Remove needless denote-fontify-query-links (per commit ff50b32)

The technical discussion for this is in issue 561:
.
---
 denote.el | 8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/denote.el b/denote.el
index 59c7dabe84..29eab4a5cc 100644
--- a/denote.el
+++ b/denote.el
@@ -5431,10 +5431,6 @@ Implementation based on the function 
`org-activate-links'."
   (when-let* ((type (denote-filetype-heuristics (buffer-file-name
 (denote--fontify-links-subr (denote--link-in-context-regexp type) limit)))
 
-(defun denote-fontify-query-links (limit)
-"Provide font-lock matcher to fontify query links up to LIMIT."
-  (denote--fontify-links-subr "\\[\\[denote:\\(?1:[^[]*?\\)]]" limit))
-
 (define-obsolete-function-alias
   'denote-get-identifier-at-point
   'denote-get-link-identifier-or-query-term-at-point
@@ -5482,12 +5478,12 @@ major mode is not `org-mode' (or derived therefrom).  
Consider using
   (if denote-fontify-links-mode
   (progn
 (add-to-invisibility-spec 'denote-link)
-(font-lock-add-keywords nil '((denote-fontify-links) 
(denote-fontify-query-links)))
+(font-lock-add-keywords nil '((denote-fontify-links)))
 (setq-local thing-at-point-provider-alist
 (append thing-at-point-provider-alist
 '((url . denote--get-link-file-path-at-point)
 (remove-from-invisibility-spec 'denote-link)
-(font-lock-remove-keywords nil '((denote-fontify-links) 
(denote-fontify-query-links)))
+(font-lock-remove-keywords nil '((denote-fontify-links)))
 (setq-local thing-at-point-provider-alist
 (delete
  '(url . denote--get-link-file-path-at-point)



[elpa] externals/denote 5f503529e4 16/29: Use "Denote Query" name on the modeline for denote-query-mode

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 5f503529e4f7691486ba5d449613045c50cb3b35
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Use "Denote Query" name on the modeline for denote-query-mode
---
 denote.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index fcfde5c5f4..4ab04dc127 100644
--- a/denote.el
+++ b/denote.el
@@ -5117,7 +5117,7 @@ file's title.  This has the same meaning as in 
`denote-link'."
   'denote-query-mode
   "4.0.0")
 
-(define-derived-mode denote-query-mode xref--xref-buffer-mode "Denote"
+(define-derived-mode denote-query-mode xref--xref-buffer-mode "Denote Query"
   "Major mode for queries found in the variable `denote-directory'.
 This is used by the command `denote-backlinks' and all links created by
 the `denote-query' command, among others."



[elpa] externals/denote d2aa0cd683 08/29: Make function to get query links a variable

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit d2aa0cd68350a7445c21e0329ba3b21de75d1ddb
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make function to get query links a variable

This way it can be redefined by other packages, such as
'denote-search'. Thanks to Lucas Quintana for asking for this addition
in issue 561: .
---
 denote.el | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 5d54cc0860..8658982f0e 100644
--- a/denote.el
+++ b/denote.el
@@ -5320,6 +5320,15 @@ concomitant alist, such as 
`denote-backlinks-display-buffer-action'."
   (denote-make-links-buffer query files-matching-regexp 
buffer-name display-buffer-action)
 (display-buffer buffer display-buffer-action)))
 
+(defvar denote-query-links-buffer-function #'denote-make-query-links-buffer
+  "Function to make an Xref buffer showing query link results.
+It accepts two arguments, a query and a `display-buffer' action alist
+like `denote-query-links-display-buffer-action'.")
+
+(defun denote-make-query-links-buffer (query display-buffer-action)
+  "Make a links buffer for QUERY given DISPLAY-BUFFER-ACTION."
+  (denote-make-links-buffer query nil nil display-buffer-action))
+
 (defun denote--backlinks-get-buffer-name (file id)
   "Format a buffer name for `denote-backlinks'.
 Use FILE to detect a suitable title with which to name the buffer.  Else
@@ -5649,7 +5658,7 @@ Uses the function `denote-directory' to establish the 
path to the file."
   (if-let* ((match (denote-link--ol-resolve-link-to-target link))
 (_ (file-exists-p match)))
   (org-link-open-as-file match nil)
-(denote-make-links-buffer match nil nil 
denote-query-links-display-buffer-action)))
+(funcall denote-query-links-buffer-function match 
denote-query-links-display-buffer-action)))
 
 ;;;###autoload
 (defun denote-link-ol-complete ()



[elpa] externals/denote 9d32f611e7 27/29: Add query links to the menu bar

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 9d32f611e7c7fb73afbc61833486f61c7dddc60b
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add query links to the menu bar
---
 denote.el | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index 7d8d9b59ac..a49d04e319 100644
--- a/denote.el
+++ b/denote.el
@@ -5655,10 +5655,17 @@ This command is meant to be used from a Dired buffer."
  :help "Rename marked files in Dired using their front matter as input"
  :enable (derived-mode-p 'dired-mode)]
 "---"
-["Insert a link" denote-link
+["Insert a direct link" denote-link
  :help "Insert link to a file in the `denote-directory'"
  :enable (derived-mode-p 'text-mode)]
-["Insert links with regexp" denote-add-links
+["Insert a query link for file contents" denote-query-contents-link
+ :help "Insert query link searching for file contents in the 
`denote-directory'"
+ :enable (derived-mode-p 'text-mode)]
+["Insert a query link for file names" denote-query-filenames-link
+ :help "Insert query link searching for file names in the 
`denote-directory'"
+ :enable (derived-mode-p 'text-mode)]
+"---"
+["Insert links to files matching regexp" denote-add-links
  :help "Insert links to files matching regexp in the `denote-directory'"
  :enable (derived-mode-p 'text-mode)]
 ["Insert Dired marked files as links" denote-link-dired-marked-notes



[elpa] externals/emms b2ccd522cc 3/6: * emms-volume.el: Add emms-volume-mpv option, with example in documentation

2025-03-28 Thread ELPA Syncer
branch: externals/emms
commit b2ccd522cc362fb7070acb1fc9cd6a88dfc3c0f8
Author: Mike Kazantsev 
Commit: fraggod@malediction 

* emms-volume.el: Add emms-volume-mpv option, with example in documentation
---
 doc/emms.texinfo | 14 +-
 emms-volume.el   |  6 --
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/doc/emms.texinfo b/doc/emms.texinfo
index 957bb3b146..804478dd0b 100644
--- a/doc/emms.texinfo
+++ b/doc/emms.texinfo
@@ -441,8 +441,9 @@ filter for the @xref{The Browser}, persistent playlist via
 
 
 In the following it is possible to see how some of defaults are set
-regarding saving playlists, playlist interaction, as well as adding
-special arguments to a specific player backend.
+regarding saving playlists, playlist interaction, adding special
+arguments to a specific player backend and configuring player-specific
+volume control options enabled via @file{emms-volume.el}.
 
 @lisp
   (setq-default
@@ -455,7 +456,10 @@ special arguments to a specific player backend.
 
emms-player-list '(emms-player-mpv)
emms-player-mpv-environment '("PULSE_PROP_media.role=music")
-   emms-player-mpv-parameters '("--quiet" "--really-quiet" 
"--no-audio-display" "--force-window=no" "--vo=null"))
+   emms-player-mpv-parameters '("--quiet" "--really-quiet" 
"--no-audio-display" "--force-window=no" "--vo=null")
+
+   emms-volume-change-function 'emms-volume-mpv-change
+   emms-volume-mpv-method 'smart)
 @end lisp
 
 
@@ -2930,8 +2934,8 @@ value. So instead of pressing @kbd{C-c +} six times to 
increase volume
 by six steps of @code{emms-volume-change-amount}, you would simply type
 @kbd{C-c + + + + + +}.
 
-Emms can change volume with amixer, mpd, PulseAudio and mixerctl out
-of the box, see @var{emms-volume-change-function}.
+Emms can change volume with amixer, mpd, mpv, PulseAudio and mixerctl
+out of the box, see @var{emms-volume-change-function}.
 
 
 @c ---
diff --git a/emms-volume.el b/emms-volume.el
index 101185f4cb..dffae71994 100644
--- a/emms-volume.el
+++ b/emms-volume.el
@@ -53,6 +53,7 @@
 (require 'emms-volume-pulse)
 (require 'emms-volume-mixerctl)
 (require 'emms-volume-sndioctl)
+(require 'emms-volume-mpv)
 
 ;; Customize group
 (defgroup emms-volume nil
@@ -72,8 +73,9 @@
 If you have your own functions for changing volume, set this."
   :type '(choice (const :tag "Amixer" emms-volume-amixer-change)
  (const :tag "MPD" emms-volume-mpd-change)
-(const :tag "PulseAudio" emms-volume-pulse-change)
-(const :tag "Mixerctl" emms-volume-mixerctl-change)
+ (const :tag "mpv" emms-volume-mpv-change)
+ (const :tag "PulseAudio" emms-volume-pulse-change)
+ (const :tag "Mixerctl" emms-volume-mixerctl-change)
  (const :tag "Sndioctl" emms-volume-sndioctl-change)
  (function :tag "Lisp function")))
 



[elpa] externals/denote a795d23f12 26/29: Document the new query links and update the manual accordingly

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit a795d23f1205bb7f2ec5275640a36867723b1d0e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Document the new query links and update the manual accordingly
---
 README.org | 201 ++---
 1 file changed, 98 insertions(+), 103 deletions(-)

diff --git a/README.org b/README.org
index c1c9d80ec3..140bcd193f 100644
--- a/README.org
+++ b/README.org
@@ -220,10 +220,6 @@ Here we include more of what you can configure with Denote 
([[#h:998ae528-9276-4
   ;; Pick dates, where relevant, with Org's advanced interface:
   (setq denote-date-prompt-use-org-read-date t)
 
-  ;; By default, we do not show the context of links.  We just display
-  ;; file names.  This provides a more informative view.
-  (setq denote-backlinks-show-context t)
-
   ;; Automatically rename Denote buffers using the 
`denote-rename-buffer-format'.
   (denote-rename-buffer-mode 1))
 #+end_src
@@ -2569,31 +2565,45 @@ front matter.
 :CUSTOM_ID: h:fc913d54-26c8-4c41-be86-999839e8ad31
 :END:
 
-Denote offers several commands for linking between notes.
+[ Support for query links is part of {{{development-version}}}. ]
+
+Denote offers several commands for linking between notes. Those use
+the =denote:= hyperlink type. There are two types of links supported
+by Denote:
+
+- Direct links :: A direct link points to a file inside the
+  ~denote-directory~. The link is constructed by using the =denote:=
+  prefix and the target file's identifier 
([[#h:4e9c7512-84dc-4dfb-9fa9-e15d51178e5d][The file-naming scheme]]).
+  This looks like =denote:20250328T075526=. The syntax of a link
+  depends on the file type. For example, in Org and plain text links look like
+  =[[denote:20250328T075526][The title of the target file]]=, while in
+  Markdown they are written as =[The title of the target 
file](denote:20250328T075526)=.
 
-All links target files which are Denote files. This means that they
-have our file-naming scheme. Files need to be inside the
-~denote-directory~ or one of its subdirectories. No other file is
-recognised.
+- Query links :: The =denote:= hyperlink type also supports special
+  qualifiers that change how the target of the link is interpreted.
+  The qualifier is a special token than tells Denote how to treat the
+  target of the link. It is written thus =denote:TOKEN:QUERY=. There
+  are two kinds of tokens: =query-contents= and =query-filenames=.
+  Those determine how the query terms are used. As their names
+  suggest, these two tokens trigger a search in (i) the file contents
+  of all readable files or (ii) in the file names only. They are, in
+  other words, counterparts of the Unix ~grep~ and ~find~ programs,
+  respectively.
 
-The following sections delve into the details 
([[#h:4f354db1-aa78-47fd-ac60-c3d1e0f0b0a4][Why are some Org links opening 
outside Emacs?]]).
+The following sections cover all the details 
([[#h:4f354db1-aa78-47fd-ac60-c3d1e0f0b0a4][Why are some Org links opening 
outside Emacs?]]).
 
-** Adding a single link
+** Adding a single direct link
 :PROPERTIES:
 :CUSTOM_ID: h:5e5e3370-12ab-454f-ba09-88ff44214324
 :END:
 
 #+findex: denote-link
-The ~denote-link~ command inserts a link at point to a file specified
+The ~denote-link~ command inserts a link at point to a file selected
 at the minibuffer prompt. Links are formatted depending on the file
 type of the current note. In Org and plain text buffers, links are
 formatted thus: =[[denote:IDENTIFIER][DESCRIPTION]]=. While in
 Markdown they are expressed as =[DESCRIPTION](denote:IDENTIFIER)=.
 
-[ We optionally support links to Org headings 
([[#h:d99de1fb-b1b7-4a74-8667-575636a4d6a4][The 
~denote-org-store-link-to-heading~ user option]]).
-  Other file types do not have the features of Org, so we cannot
-  generalise this. ]
-
 When ~denote-link~ is called with a prefix argument (=C-u= by
 default), it formats links like =[[denote:IDENTIFIER]]=, regardless of
 file type ([[#h:156c5ea3-147b-4f9d-a404-86a00558c60a][Fontify links in non-Org 
buffers]]). The user might prefer
@@ -2612,35 +2622,54 @@ By default, the description of the link is determined 
thus:
   name.
 - If the target file has no signature, the title is used.
 
-Links are created only for files which qualify as a "note" for our
-purposes ([[#h:fc913d54-26c8-4c41-be86-999839e8ad31][Linking notes]]). Users 
who need to link to Denote files from
-anywhere, can write a simple command to that effect:
+#+vindex: denote-faces-link
+Links are styled with the ~denote-faces-link~ face, which looks
+exactly like an ordinary link by default.
 
-#+begin_src emacs-lisp
-(defun my-denote-link-global (file file-type description &optional id-only)
-  "Like the `denote-link', but works in any buffer.
-The FILE, FILE-TYPE, DESCRIPTION, and ID-ONLY have the same meaning as
-in `denote-link'."
-  (interactive
-   (let* ((file (denote-file-prompt nil "Link to FILE"))
-  (file-type (denote-filetype-heuristics buffe

[elpa] externals/denote be557935dc 18/29: Add error check to query links to ensure they exit if the file type is unrecognised

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit be557935dca4025169b11d0d1b60f9a54b0001b5
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add error check to query links to ensure they exit if the file type is 
unrecognised
---
 denote.el | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/denote.el b/denote.el
index 9bf08c61ad..9de275b983 100644
--- a/denote.el
+++ b/denote.el
@@ -5255,6 +5255,9 @@ flexible."
(list
 (or (denote--get-active-region-content)
 (denote-query-link-prompt nil "Query in file CONTENTS"
+  (unless (or (denote--file-type-org-extra-p)
+  (and buffer-file-name (denote-file-has-supported-extension-p 
buffer-file-name)))
+(user-error "The current file type is not recognized by Denote"))
   (denote--delete-active-region-content)
   (insert (denote--format-query-link 'query-contents query)))
 
@@ -5273,6 +5276,9 @@ flexible."
(list
 (or (denote--get-active-region-content)
 (denote-query-link-prompt nil "Query in file NAMES"
+  (unless (or (denote--file-type-org-extra-p)
+  (and buffer-file-name (denote-file-has-supported-extension-p 
buffer-file-name)))
+(user-error "The current file type is not recognized by Denote"))
   (denote--delete-active-region-content)
   (insert (denote--format-query-link 'query-filenames query)))
 



[elpa] branch elpa/transient created (now 00112c11e5)

2025-03-28 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/transient.

at  00112c11e5 transient--init-suffix: Load autoloaded command earlier

This branch includes the following new commits:

   new  55050b60da transient-post-exit-hook: New hook
   new  14b39ff706 Consistently begin custom choice tags with capital letter
   new  8daf9890ee transient--insert-suffix: Signal error if location is 
invalid
   new  00112c11e5 transient--init-suffix: Load autoloaded command earlier




[elpa] elpa/transient 14b39ff706 2/4: Consistently begin custom choice tags with capital letter

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/transient
commit 14b39ff70609a9f04915c09c7aa13b24a05da848
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Consistently begin custom choice tags with capital letter
---
 lisp/transient.el | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index 0fd61ee017..165089f306 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -145,10 +145,10 @@ TYPE is a type descriptor as accepted by `cl-typep', 
which see."
   after that many seconds of inactivity (using the absolute value)."
   :package-version '(transient . "0.1.0")
   :group 'transient
-  :type '(choice (const  :tag "instantly" t)
- (const  :tag "on demand" nil)
- (const  :tag "on demand (no summary)" 0)
- (number :tag "after delay" 1)))
+  :type '(choice (const  :tag "Instantly" t)
+ (const  :tag "On demand" nil)
+ (const  :tag "On demand (no summary)" 0)
+ (number :tag "After delay" 1)))
 
 (defcustom transient-enable-popup-navigation 'verbose
   "Whether navigation commands are enabled in the transient popup.
@@ -180,9 +180,9 @@ then it is likely, that you would want \\`RET' to do what 
it would do
 if no transient were active."
   :package-version '(transient . "0.7.8")
   :group 'transient
-  :type '(choice (const :tag "enable navigation and echo summary" verbose)
- (const :tag "enable navigation commands" t)
- (const :tag "disable navigation commands" nil)))
+  :type '(choice (const :tag "Enable navigation and echo summary" verbose)
+ (const :tag "Enable navigation commands" t)
+ (const :tag "Disable navigation commands" nil)))
 
 (defcustom transient-display-buffer-action
   '(display-buffer-in-side-window
@@ -273,13 +273,13 @@ Otherwise this can be any mode-line format.
 See `mode-line-format' for details."
   :package-version '(transient . "0.2.0")
   :group 'transient
-  :type '(choice (const  :tag "hide mode-line" nil)
- (const  :tag "substitute thin line" line)
- (number :tag "substitute line with thickness")
- (const  :tag "name of prefix command"
+  :type '(choice (const  :tag "Hide mode-line" nil)
+ (const  :tag "Substitute thin line" line)
+ (number :tag "Substitute line with thickness")
+ (const  :tag "Name of prefix command"
  ("%e" mode-line-front-space
   mode-line-buffer-identification))
- (sexp   :tag "custom mode-line format")))
+ (sexp   :tag "Custom mode-line format")))
 
 (defcustom transient-show-common-commands nil
   "Whether to show common transient suffixes in the popup buffer.



[elpa] elpa/transient 00112c11e5 4/4: transient--init-suffix: Load autoloaded command earlier

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/transient
commit 00112c11e5d94e018cb33aae2d15b5543be1cad8
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

transient--init-suffix: Load autoloaded command earlier

Do so before trying to access the prototype suffix object.
---
 lisp/transient.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index 91ad2481e4..13c22598a9 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -2369,6 +2369,7 @@ value.  Otherwise return CHILDREN as is.")
 (defun transient--init-suffix (levels spec parent)
   (pcase-let* ((`(,level ,class ,args) spec)
(cmd (plist-get args :command))
+   (_ (transient--load-command-if-autoload cmd))
(key (transient--kbd (plist-get args :key)))
(proto (and cmd (transient--suffix-prototype cmd)))
(level (or (alist-get (cons cmd key) levels nil nil #'equal)
@@ -2376,7 +2377,6 @@ value.  Otherwise return CHILDREN as is.")
   level
   (and proto (oref proto level))
   transient--default-child-level)))
-(transient--load-command-if-autoload cmd)
 (when (transient--use-level-p level)
   (let ((obj (if (child-of-class-p class 'transient-information)
  (apply class :parent parent :level level args)



[elpa] elpa/transient 8daf9890ee 3/4: transient--insert-suffix: Signal error if location is invalid

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/transient
commit 8daf9890ee65335a23eebc8919e9cfdd7c7249eb
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

transient--insert-suffix: Signal error if location is invalid

Closes #374.
---
 docs/transient.org  |  9 -
 docs/transient.texi |  9 -
 lisp/transient.el   | 10 +-
 3 files changed, 5 insertions(+), 23 deletions(-)

diff --git a/docs/transient.org b/docs/transient.org
index 97a3f9e2d3..a2690443b7 100644
--- a/docs/transient.org
+++ b/docs/transient.org
@@ -899,15 +899,6 @@ that tree are not objects but have the form 
{{{codevar((LEVEL CLASS PLIST))}}},
   This function edits the suffix or group at {{{var(LOC)}}} in 
{{{var(PREFIX)}}}, by setting
   the {{{var(PROP)}}} of its plist to {{{var(VALUE)}}}.
 
-Most of these functions do not signal an error if they cannot perform
-the requested modification.  The functions that insert new suffixes
-show a warning if {{{var(LOC)}}} cannot be found in {{{var(PREFIX,)}}} without 
signaling an
-error.  The reason for doing it like this is that establishing a key
-binding (and that is what we essentially are trying to do here) should
-not prevent the rest of the configuration from loading.  Among these
-functions only ~transient-get-suffix~ and ~transient-suffix-put~ may
-signal an error.
-
 * Defining New Commands
 ** Technical Introduction
 
diff --git a/docs/transient.texi b/docs/transient.texi
index bb4100d2f4..8ada4d1946 100644
--- a/docs/transient.texi
+++ b/docs/transient.texi
@@ -1055,15 +1055,6 @@ This function edits the suffix or group at @var{LOC} in 
@var{PREFIX}, by setting
 the @var{PROP} of its plist to @var{VALUE}.
 @end defun
 
-Most of these functions do not signal an error if they cannot perform
-the requested modification.  The functions that insert new suffixes
-show a warning if @var{LOC} cannot be found in @var{PREFIX} without signaling 
an
-error.  The reason for doing it like this is that establishing a key
-binding (and that is what we essentially are trying to do here) should
-not prevent the rest of the configuration from loading.  Among these
-functions only @code{transient-get-suffix} and @code{transient-suffix-put} may
-signal an error.
-
 @node Defining New Commands
 @chapter Defining New Commands
 
diff --git a/lisp/transient.el b/lisp/transient.el
index 165089f306..91ad2481e4 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1455,14 +1455,14 @@ Intended for use in a group's `:setup-children' 
function."
 (setq suf (eval suf t))
 (cond
  ((not mem)
-  (message "Cannot insert %S into %s; %s not found"
-   suffix prefix loc))
+  (error "Cannot insert %S into %s; %s not found"
+ suffix prefix loc))
  ((or (and (vectorp suffix) (not (vectorp elt)))
   (and (listp   suffix) (vectorp elt))
   (and (stringp suffix) (vectorp elt)))
-  (message "Cannot place %S into %s at %s; %s"
-   suffix prefix loc
-   "suffixes and groups cannot be siblings"))
+  (error "Cannot place %S into %s at %s; %s"
+ suffix prefix loc
+ "suffixes and groups cannot be siblings"))
  (t
   (when-let* (((not (eq keep-other 'always)))
   (bindingp (listp suf))



[elpa] branch elpa/transient deleted (was 00112c11e5)

2025-03-28 Thread Jonas Bernoulli via
tarsius pushed a change to branch elpa/transient.

   was  00112c11e5 transient--init-suffix: Load autoloaded command earlier

This change permanently discards the following revisions:

  discards  00112c11e5 transient--init-suffix: Load autoloaded command earlier
  discards  8daf9890ee transient--insert-suffix: Signal error if location is 
invalid
  discards  14b39ff706 Consistently begin custom choice tags with capital letter
  discards  55050b60da transient-post-exit-hook: New hook



[elpa] externals/transient 55050b60da 1/4: transient-post-exit-hook: New hook

2025-03-28 Thread Jonas Bernoulli via
branch: externals/transient
commit 55050b60da8b1c5efedf45c885e5e8daf26e2499
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

transient-post-exit-hook: New hook
---
 docs/transient.org  |  8 +++-
 docs/transient.texi |  8 +++-
 lisp/transient.el   | 19 ++-
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/docs/transient.org b/docs/transient.org
index f14929a6ca..97a3f9e2d3 100644
--- a/docs/transient.org
+++ b/docs/transient.org
@@ -802,7 +802,13 @@ These options are mainly intended for developers.
 
 - Variable: transient-exit-hook ::
 
-  This hook is run after a transient is exited.
+  This hook is run after a transient menu is exited, even if another
+  transient menu becomes active at the same time.
+
+- Variable: transient-post-exit-hook ::
+
+  This hook is run after a transient menu is exited, provided no other
+  transient menu becomes active at the same time.
 
 - Variable: transient-setup-buffer-hook ::
 
diff --git a/docs/transient.texi b/docs/transient.texi
index 9c1723f741..bb4100d2f4 100644
--- a/docs/transient.texi
+++ b/docs/transient.texi
@@ -949,7 +949,13 @@ same customization.
 @subheading Hook Variables
 
 @defvar transient-exit-hook
-This hook is run after a transient is exited.
+This hook is run after a transient menu is exited, even if another
+transient menu becomes active at the same time.
+@end defvar
+
+@defvar transient-post-exit-hook
+This hook is run after a transient menu is exited, provided no other
+transient menu becomes active at the same time.
 @end defvar
 
 @defvar transient-setup-buffer-hook
diff --git a/lisp/transient.el b/lisp/transient.el
index d9a1421db0..0fd61ee017 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1671,7 +1671,14 @@ values.  In complex cases it might be necessary to use 
this
 variable instead.")
 
 (defvar transient-exit-hook nil
-  "Hook run after exiting a transient.")
+  "Hook run after exiting a transient menu.
+Unlike `transient-post-exit-hook', this runs even if another transient
+menu becomes active at the same time. ")
+
+(defvar transient-post-exit-hook nil
+  "Hook run after exiting all transient menus.
+Unlike `transient-exit-hook', this does not run if another transient
+menu becomes active at the same time.")
 
 (defvar transient-setup-buffer-hook nil
   "Hook run when setting up the transient buffer.
@@ -2832,9 +2839,10 @@ value.  Otherwise return CHILDREN as is.")
 (remove-hook 'pre-command-hook  #'transient--pre-command)
 (remove-hook 'post-command-hook #'transient--post-command)
 (advice-remove 'recursive-edit #'transient--recursive-edit))
-  (let ((resume (and transient--stack
+  (let ((replace (eq transient--exitp 'replace))
+(resume (and transient--stack
  (not (memq transient--exitp '(replace suspend))
-(unless (or resume (eq transient--exitp 'replace))
+(unless (or resume replace)
   (setq transient--showp nil))
 (setq transient--exitp nil)
 (setq transient--helpp nil)
@@ -2847,8 +2855,9 @@ value.  Otherwise return CHILDREN as is.")
   (setq transient-current-command nil)
   (setq transient-current-suffixes nil)
   (setq transient--current-suffix nil))
-(when resume
-  (transient--stack-pop
+(cond (resume (transient--stack-pop))
+  ((not replace)
+   (run-hooks 'transient-post-exit-hook)
 
 (defun transient--stack-push ()
   (transient--debug 'stack-push)



[elpa] externals/transient updated (52f737a696 -> 00112c11e5)

2025-03-28 Thread Jonas Bernoulli via
tarsius pushed a change to branch externals/transient.

  from  52f737a696 Release version 0.8.6
   new  55050b60da transient-post-exit-hook: New hook
   new  14b39ff706 Consistently begin custom choice tags with capital letter
   new  8daf9890ee transient--insert-suffix: Signal error if location is 
invalid
   new  00112c11e5 transient--init-suffix: Load autoloaded command earlier


Summary of changes:
 docs/transient.org  | 17 +++--
 docs/transient.texi | 17 +++--
 lisp/transient.el   | 55 +++--
 3 files changed, 46 insertions(+), 43 deletions(-)



[elpa] externals/transient 8daf9890ee 3/4: transient--insert-suffix: Signal error if location is invalid

2025-03-28 Thread Jonas Bernoulli via
branch: externals/transient
commit 8daf9890ee65335a23eebc8919e9cfdd7c7249eb
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

transient--insert-suffix: Signal error if location is invalid

Closes #374.
---
 docs/transient.org  |  9 -
 docs/transient.texi |  9 -
 lisp/transient.el   | 10 +-
 3 files changed, 5 insertions(+), 23 deletions(-)

diff --git a/docs/transient.org b/docs/transient.org
index 97a3f9e2d3..a2690443b7 100644
--- a/docs/transient.org
+++ b/docs/transient.org
@@ -899,15 +899,6 @@ that tree are not objects but have the form 
{{{codevar((LEVEL CLASS PLIST))}}},
   This function edits the suffix or group at {{{var(LOC)}}} in 
{{{var(PREFIX)}}}, by setting
   the {{{var(PROP)}}} of its plist to {{{var(VALUE)}}}.
 
-Most of these functions do not signal an error if they cannot perform
-the requested modification.  The functions that insert new suffixes
-show a warning if {{{var(LOC)}}} cannot be found in {{{var(PREFIX,)}}} without 
signaling an
-error.  The reason for doing it like this is that establishing a key
-binding (and that is what we essentially are trying to do here) should
-not prevent the rest of the configuration from loading.  Among these
-functions only ~transient-get-suffix~ and ~transient-suffix-put~ may
-signal an error.
-
 * Defining New Commands
 ** Technical Introduction
 
diff --git a/docs/transient.texi b/docs/transient.texi
index bb4100d2f4..8ada4d1946 100644
--- a/docs/transient.texi
+++ b/docs/transient.texi
@@ -1055,15 +1055,6 @@ This function edits the suffix or group at @var{LOC} in 
@var{PREFIX}, by setting
 the @var{PROP} of its plist to @var{VALUE}.
 @end defun
 
-Most of these functions do not signal an error if they cannot perform
-the requested modification.  The functions that insert new suffixes
-show a warning if @var{LOC} cannot be found in @var{PREFIX} without signaling 
an
-error.  The reason for doing it like this is that establishing a key
-binding (and that is what we essentially are trying to do here) should
-not prevent the rest of the configuration from loading.  Among these
-functions only @code{transient-get-suffix} and @code{transient-suffix-put} may
-signal an error.
-
 @node Defining New Commands
 @chapter Defining New Commands
 
diff --git a/lisp/transient.el b/lisp/transient.el
index 165089f306..91ad2481e4 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1455,14 +1455,14 @@ Intended for use in a group's `:setup-children' 
function."
 (setq suf (eval suf t))
 (cond
  ((not mem)
-  (message "Cannot insert %S into %s; %s not found"
-   suffix prefix loc))
+  (error "Cannot insert %S into %s; %s not found"
+ suffix prefix loc))
  ((or (and (vectorp suffix) (not (vectorp elt)))
   (and (listp   suffix) (vectorp elt))
   (and (stringp suffix) (vectorp elt)))
-  (message "Cannot place %S into %s at %s; %s"
-   suffix prefix loc
-   "suffixes and groups cannot be siblings"))
+  (error "Cannot place %S into %s at %s; %s"
+ suffix prefix loc
+ "suffixes and groups cannot be siblings"))
  (t
   (when-let* (((not (eq keep-other 'always)))
   (bindingp (listp suf))



[elpa] elpa/transient 55050b60da 1/4: transient-post-exit-hook: New hook

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/transient
commit 55050b60da8b1c5efedf45c885e5e8daf26e2499
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

transient-post-exit-hook: New hook
---
 docs/transient.org  |  8 +++-
 docs/transient.texi |  8 +++-
 lisp/transient.el   | 19 ++-
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/docs/transient.org b/docs/transient.org
index f14929a6ca..97a3f9e2d3 100644
--- a/docs/transient.org
+++ b/docs/transient.org
@@ -802,7 +802,13 @@ These options are mainly intended for developers.
 
 - Variable: transient-exit-hook ::
 
-  This hook is run after a transient is exited.
+  This hook is run after a transient menu is exited, even if another
+  transient menu becomes active at the same time.
+
+- Variable: transient-post-exit-hook ::
+
+  This hook is run after a transient menu is exited, provided no other
+  transient menu becomes active at the same time.
 
 - Variable: transient-setup-buffer-hook ::
 
diff --git a/docs/transient.texi b/docs/transient.texi
index 9c1723f741..bb4100d2f4 100644
--- a/docs/transient.texi
+++ b/docs/transient.texi
@@ -949,7 +949,13 @@ same customization.
 @subheading Hook Variables
 
 @defvar transient-exit-hook
-This hook is run after a transient is exited.
+This hook is run after a transient menu is exited, even if another
+transient menu becomes active at the same time.
+@end defvar
+
+@defvar transient-post-exit-hook
+This hook is run after a transient menu is exited, provided no other
+transient menu becomes active at the same time.
 @end defvar
 
 @defvar transient-setup-buffer-hook
diff --git a/lisp/transient.el b/lisp/transient.el
index d9a1421db0..0fd61ee017 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1671,7 +1671,14 @@ values.  In complex cases it might be necessary to use 
this
 variable instead.")
 
 (defvar transient-exit-hook nil
-  "Hook run after exiting a transient.")
+  "Hook run after exiting a transient menu.
+Unlike `transient-post-exit-hook', this runs even if another transient
+menu becomes active at the same time. ")
+
+(defvar transient-post-exit-hook nil
+  "Hook run after exiting all transient menus.
+Unlike `transient-exit-hook', this does not run if another transient
+menu becomes active at the same time.")
 
 (defvar transient-setup-buffer-hook nil
   "Hook run when setting up the transient buffer.
@@ -2832,9 +2839,10 @@ value.  Otherwise return CHILDREN as is.")
 (remove-hook 'pre-command-hook  #'transient--pre-command)
 (remove-hook 'post-command-hook #'transient--post-command)
 (advice-remove 'recursive-edit #'transient--recursive-edit))
-  (let ((resume (and transient--stack
+  (let ((replace (eq transient--exitp 'replace))
+(resume (and transient--stack
  (not (memq transient--exitp '(replace suspend))
-(unless (or resume (eq transient--exitp 'replace))
+(unless (or resume replace)
   (setq transient--showp nil))
 (setq transient--exitp nil)
 (setq transient--helpp nil)
@@ -2847,8 +2855,9 @@ value.  Otherwise return CHILDREN as is.")
   (setq transient-current-command nil)
   (setq transient-current-suffixes nil)
   (setq transient--current-suffix nil))
-(when resume
-  (transient--stack-pop
+(cond (resume (transient--stack-pop))
+  ((not replace)
+   (run-hooks 'transient-post-exit-hook)
 
 (defun transient--stack-push ()
   (transient--debug 'stack-push)



[nongnu] elpa/magit 107e9015e6 4/4: Revert "magit-diff-mode: Add diff-mode as an extra parent"

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/magit
commit 107e9015e69585e1b0fd551b5b95df6619bdd61c
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Revert "magit-diff-mode: Add diff-mode as an extra parent"

This reverts commit 1fc960183a1fc0d007d355b1bcd5698f00f77e42.
---
 lisp/magit-diff.el | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 97d333f528..baefff3738 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -2050,9 +2050,6 @@ Staging and applying changes is documented in info node
 (put 'magit-diff-mode 'magit-diff-default-arguments
  '("--stat" "--no-ext-diff"))
 
-(when (fboundp 'derived-mode-add-parents)
-  (derived-mode-add-parents 'magit-diff-mode '(diff-mode)))
-
 (defun magit-diff-setup-buffer ( range typearg args files
  &optional type locked)
   (require 'magit)



[elpa] externals/transient 14b39ff706 2/4: Consistently begin custom choice tags with capital letter

2025-03-28 Thread Jonas Bernoulli via
branch: externals/transient
commit 14b39ff70609a9f04915c09c7aa13b24a05da848
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Consistently begin custom choice tags with capital letter
---
 lisp/transient.el | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index 0fd61ee017..165089f306 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -145,10 +145,10 @@ TYPE is a type descriptor as accepted by `cl-typep', 
which see."
   after that many seconds of inactivity (using the absolute value)."
   :package-version '(transient . "0.1.0")
   :group 'transient
-  :type '(choice (const  :tag "instantly" t)
- (const  :tag "on demand" nil)
- (const  :tag "on demand (no summary)" 0)
- (number :tag "after delay" 1)))
+  :type '(choice (const  :tag "Instantly" t)
+ (const  :tag "On demand" nil)
+ (const  :tag "On demand (no summary)" 0)
+ (number :tag "After delay" 1)))
 
 (defcustom transient-enable-popup-navigation 'verbose
   "Whether navigation commands are enabled in the transient popup.
@@ -180,9 +180,9 @@ then it is likely, that you would want \\`RET' to do what 
it would do
 if no transient were active."
   :package-version '(transient . "0.7.8")
   :group 'transient
-  :type '(choice (const :tag "enable navigation and echo summary" verbose)
- (const :tag "enable navigation commands" t)
- (const :tag "disable navigation commands" nil)))
+  :type '(choice (const :tag "Enable navigation and echo summary" verbose)
+ (const :tag "Enable navigation commands" t)
+ (const :tag "Disable navigation commands" nil)))
 
 (defcustom transient-display-buffer-action
   '(display-buffer-in-side-window
@@ -273,13 +273,13 @@ Otherwise this can be any mode-line format.
 See `mode-line-format' for details."
   :package-version '(transient . "0.2.0")
   :group 'transient
-  :type '(choice (const  :tag "hide mode-line" nil)
- (const  :tag "substitute thin line" line)
- (number :tag "substitute line with thickness")
- (const  :tag "name of prefix command"
+  :type '(choice (const  :tag "Hide mode-line" nil)
+ (const  :tag "Substitute thin line" line)
+ (number :tag "Substitute line with thickness")
+ (const  :tag "Name of prefix command"
  ("%e" mode-line-front-space
   mode-line-buffer-identification))
- (sexp   :tag "custom mode-line format")))
+ (sexp   :tag "Custom mode-line format")))
 
 (defcustom transient-show-common-commands nil
   "Whether to show common transient suffixes in the popup buffer.



[nongnu] elpa/magit 3fe657dba3 1/4: magit-process-apply-ansi-colors: New option

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/magit
commit 3fe657dba34032de45d22bb18cff6c7bd1838440
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-process-apply-ansi-colors: New option

By popular demand, add this option, but warn against customizing it.

Closes #5348.
---
 lisp/magit-process.el | 27 ---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/lisp/magit-process.el b/lisp/magit-process.el
index bc4c0ce7c8..5bd5be112a 100644
--- a/lisp/magit-process.el
+++ b/lisp/magit-process.el
@@ -41,6 +41,9 @@
 (defvar messages-buffer-name)
 (defvar y-or-n-p-map)
 
+(define-obsolete-variable-alias 'magit-process-finish-apply-ansi-colors
+  'magit-process-apply-ansi-colors "Magit-Section 4.3.2")
+
 ;;; Options
 
 (defcustom magit-process-connection-type (not (eq system-type 'cygwin))
@@ -250,6 +253,24 @@ implement such functions."
   :group 'magit-process
   :type 'boolean)
 
+(defcustom magit-process-apply-ansi-colors nil
+  "Whether and when to apply color escapes in the process buffer.
+
+Magit instructs Git to not colorize its output, but third-party Git
+hooks may do so anyway.  We recommend you figure out how to prevent
+such hooks from colorizing their output instead of customizing this
+option.
+
+If `nil' (the default), do not apply color escape sequences.  If `t',
+apply them once the subprocess has finished.  If `filter', apply them
+as input arrives (which is more expensive and potentially fragile).
+This is a footgun; starter-kits should leave this option untouched."
+  :package-version '(magit . "4.3.2")
+  :group 'magit-process
+  :type '(choice (const :tag "Do not apply" nil)
+ (const :tag "Apply when subprocess has finished" t)
+ (const :tag "Apply using process filter" filter)))
+
 (defcustom magit-process-timestamp-format nil
   "Format of timestamp for each process in the process buffer.
 If non-nil, pass this to `format-time-string' when creating a
@@ -843,6 +864,8 @@ Magit status buffer."
 (setq string (substring string (1+ ret-pos)))
 (delete-region (line-beginning-position) (point)))
   (setq string (magit-process-remove-bogus-errors string))
+  (when (eq magit-process-apply-ansi-colors 'filter)
+(setq string (ansi-color-apply string)))
   (insert (propertize string 'magit-section
   (process-get proc 'section)))
   (set-marker (process-mark proc) (point))
@@ -1195,8 +1218,6 @@ Limited by `magit-process-error-tooltip-max-lines'."
 
 (defvar-local magit-this-error nil)
 
-(defvar magit-process-finish-apply-ansi-colors nil)
-
 (defun magit-process-finish (arg &optional process-buf command-buf
  default-dir section)
   (unless (integerp arg)
@@ -1256,7 +1277,7 @@ Limited by `magit-process-error-tooltip-max-lines'."
   'magit-process-ok
 'magit-process-ng)))
   (set-marker-insertion-type marker t))
-(when magit-process-finish-apply-ansi-colors
+(when (eq magit-process-apply-ansi-colors t)
   (ansi-color-apply-on-region (oref section content)
   (oref section end)))
 (if (= (oref section end)



[elpa] externals/ellama updated (a5bea6db68 -> f00f7188cc)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/ellama.

  from  a5bea6db68 Merge pull request #301 from 
s-kostyaev/fix-markdown-to-org-transformation-filter
   new  c9bb37913c Add manual generation functionality for Ellama
   new  ea435a17d1 Add variable declaration and provide statement
   new  c4a1fcd7e8 Simplify ellama binding
   new  84d2f3bc6f Update README with transient menu recommendation
   new  7f15450215 Add ellama command documentation
   new  3f20c1b194 Update README with detailed description of Ellama minor 
modes
   new  63a6dd5016 Clean up README.org for Texinfo export
   new  44de9e5acd Update README.org and ellama.info with command 
descriptions
   new  8a26f71461 Update README.org and ellama-manual.el
   new  574aaaeeca Add GNU Free Documentation License to README.org
   new  1982ee296e Fix formatting in README.org
   new  61c8d9f47a Add GNU Free Documentation License
   new  6904cdc47b Simplify marker creation in ellama.el
   new  de56786afc Fix version regex in ellama-manual.el
   new  3ea615b952 Bump version
   new  4b6e3e34df Merge pull request #302 from s-kostyaev/add-info-manual
   new  7d13c4c3a3 Set default directory for new sessions
   new  2e09b2a8d6 Add functionality to set file name and save session
   new  d7160ee661 Check for existing session file in directory
   new  dd25fc2bad Fix typo in docstring
   new  0fcf73d959 Bump version
   new  858d53237b Merge pull request #306 from 
s-kostyaev/fix-session-saving
   new  f8bbeef9f0 Add context management documentation
   new  213da10f88 Bump version
   new  f00f7188cc Merge pull request #307 from 
s-kostyaev/improve-context-documentation


Summary of changes:
 .gitignore   |1 +
 NEWS.org |   17 +
 README.org   |  968 +---
 doclicense.texi  |  505 +++
 ellama-manual.el |  118 +
 ellama.el|   38 +-
 ellama.info  | 1445 ++
 7 files changed, 2805 insertions(+), 287 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 doclicense.texi
 create mode 100644 ellama-manual.el
 create mode 100644 ellama.info



[elpa] externals/denote 319107ecfd 1/2: Trim Org link location identifiers when necessary

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit 319107ecfde432c6b0b3cce959b1af6817ff37ee
Author: eum3l 
Commit: eum3l 

Trim Org link location identifiers when necessary
---
 denote.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index 5c8f3f546f..c911c3e124 100644
--- a/denote.el
+++ b/denote.el
@@ -5382,7 +5382,7 @@ To be assigned to `markdown-follow-link-functions'."
 
 (defun denote-get-link-face (query)
   "Return appropriate face for QUERY."
-  (if (denote-identifier-p query)
+  (if (denote-identifier-p (string-trim-right query ":.*"))
   'denote-faces-link
 'denote-faces-query-link))
 
@@ -5758,7 +5758,7 @@ query of file contents or file names (see the commands
 
 Uses the function `denote-directory' to establish the path to the file."
   (if-let* ((match (denote-link--ol-resolve-link-to-target link))
-(_ (file-exists-p match)))
+(_ (file-exists-p (string-trim-right match ":.*"
   (org-link-open-as-file match nil)
 (denote--act-on-query-link match)))
 



[elpa] externals/denote e88af3a4aa 2/2: Merge pull request #567 from eum3l/fix-org-location-links

2025-03-28 Thread ELPA Syncer
branch: externals/denote
commit e88af3a4aaa1b6393e7070e041aef57ddde69871
Merge: 9422778efa 319107ecfd
Author: Protesilaos Stavrou 
Commit: GitHub 

Merge pull request #567 from eum3l/fix-org-location-links

Fix Org links with location identifiers
---
 denote.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index 5c8f3f546f..c911c3e124 100644
--- a/denote.el
+++ b/denote.el
@@ -5382,7 +5382,7 @@ To be assigned to `markdown-follow-link-functions'."
 
 (defun denote-get-link-face (query)
   "Return appropriate face for QUERY."
-  (if (denote-identifier-p query)
+  (if (denote-identifier-p (string-trim-right query ":.*"))
   'denote-faces-link
 'denote-faces-query-link))
 
@@ -5758,7 +5758,7 @@ query of file contents or file names (see the commands
 
 Uses the function `denote-directory' to establish the path to the file."
   (if-let* ((match (denote-link--ol-resolve-link-to-target link))
-(_ (file-exists-p match)))
+(_ (file-exists-p (string-trim-right match ":.*"
   (org-link-open-as-file match nil)
 (denote--act-on-query-link match)))
 



[elpa] externals/ellama 7d13c4c3a3 17/25: Set default directory for new sessions

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 7d13c4c3a3729fd99ef8dd32f9d3b3a3433e34b8
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Set default directory for new sessions

Updated the code to set the `default-directory` of a new session buffer to
`ellama-sessions-directory`. Additionally, modified the session save 
function to
use `buffer-file-name` if no file name is associated with the session.

Fix #295
---
 ellama.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 8832ec6d14..0f1c3e0014 100644
--- a/ellama.el
+++ b/ellama.el
@@ -848,6 +848,7 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (setq ellama--current-session-id id)
 (puthash id buffer ellama--active-sessions)
 (with-current-buffer buffer
+  (setq default-directory ellama-sessions-directory)
   (funcall ellama-major-mode)
   (setq ellama--current-session session)
   (ellama-session-mode +1))
@@ -908,7 +909,7 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   "Save current ellama session."
   (when ellama--current-session
 (let* ((session ellama--current-session)
-  (file-name (ellama-session-file session))
+  (file-name (or (ellama-session-file session) buffer-file-name))
   (session-file-name (ellama--get-session-file-name file-name)))
   (with-temp-file session-file-name
(insert (prin1-to-string session))



[nongnu] elpa/magit 1fc960183a 3/4: magit-diff-mode: Add diff-mode as an extra parent

2025-03-28 Thread Jonas Bernoulli via
branch: elpa/magit
commit 1fc960183a1fc0d007d355b1bcd5698f00f77e42
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-diff-mode: Add diff-mode as an extra parent

https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg01496.html
---
 lisp/magit-diff.el | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index baefff3738..97d333f528 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -2050,6 +2050,9 @@ Staging and applying changes is documented in info node
 (put 'magit-diff-mode 'magit-diff-default-arguments
  '("--stat" "--no-ext-diff"))
 
+(when (fboundp 'derived-mode-add-parents)
+  (derived-mode-add-parents 'magit-diff-mode '(diff-mode)))
+
 (defun magit-diff-setup-buffer ( range typearg args files
  &optional type locked)
   (require 'magit)



[elpa] externals/ellama 63a6dd5016 07/25: Clean up README.org for Texinfo export

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 63a6dd50160d39932410ce62d1d08439ce15d8fc
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Clean up README.org for Texinfo export

Removed badges and images from README.org before exporting it to Texinfo 
format.
This ensures that the generated ellama.texi file does not contain 
unnecessary
elements, making it cleaner and more focused on content.
---
 ellama-manual.el |  21 -
 ellama.info  | Bin 47372 -> 46919 bytes
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/ellama-manual.el b/ellama-manual.el
index d8e79b25f6..d8dceca0b1 100644
--- a/ellama-manual.el
+++ b/ellama-manual.el
@@ -41,11 +41,22 @@
   (declare-function project-root "project")
   (declare-function project-current "project")
   (require 'ox-texinfo)
-  (let* ((org-export-with-broken-links t))
-(with-current-buffer (find-file-noselect
- (file-name-concat
-  (project-root (project-current))
-  "README.org"))
+  (let* ((org-export-with-broken-links t)
+(content (with-current-buffer (find-file-noselect
+   (file-name-concat
+(project-root (project-current))
+"README.org"))
+   (buffer-string
+(with-temp-buffer
+  (insert content)
+  ;; remove badges
+  (goto-char (point-min))
+  (while (re-search-forward "\\[\\[.+?\\]\\[.+?\\.svg\\]\\]" nil t)
+   (replace-match ""))
+  ;; remove images
+  (goto-char (point-min))
+  (while (re-search-forward "\\[\\[.+?\\.gif\\]\\]" nil t)
+   (replace-match ""))
   (org-export-to-file
  'texinfo "ellama.texi"
nil nil nil nil nil
diff --git a/ellama.info b/ellama.info
index bc30d01943..4d02212387 100644
Binary files a/ellama.info and b/ellama.info differ



[elpa] externals/ellama 858d53237b 22/25: Merge pull request #306 from s-kostyaev/fix-session-saving

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 858d53237b72b1940ca8595b1406ebcaaf827c0a
Merge: 4b6e3e34df 0fcf73d959
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #306 from s-kostyaev/fix-session-saving

Set default directory for new sessions
---
 NEWS.org  |  4 
 ellama.el | 30 --
 2 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index 5bb5eec10a..29e47a6587 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,7 @@
+* Version 1.7.1
+- Set default directory for new sessions.
+- Added functionality to set the file name before saving a session.
+- Enhanced session ID generation to prevent overwriting existing session files.
 * Version 1.7.0
 - Added manual generation functionality for Ellama, including a new .gitignore
   entry to exclude ellama.texi, created ellama-manual.el for exporting an info
diff --git a/ellama.el b/ellama.el
index 8832ec6d14..e517b2fdb6 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.24.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.7.0
+;; Version: 1.7.1
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 
@@ -457,9 +457,20 @@ It should be a function with single argument generated 
text string."
   "Show reasoning in separate buffer if enabled."
   :type 'boolean)
 
+(defun ellama--set-file-name-and-save ()
+  "Set buffer file name and save buffer."
+  (interactive)
+  (setq buffer-file-name
+   (file-name-concat
+ellama-sessions-directory
+(concat ellama--current-session-id
+"." (ellama-get-session-file-extension
+  (save-buffer))
+
 (define-minor-mode ellama-session-mode
   "Minor mode for ellama session buffers."
   :interactive nil
+  :keymap '(([remap save-buffer] . ellama--set-file-name-and-save))
   (if ellama-session-mode
   (progn
 (add-hook 'after-save-hook 'ellama--save-session nil t)
@@ -815,8 +826,8 @@ Defaults to #, but supports `org-mode'.  Depends on 
`ellama-major-mode'."
 (make-string ellama-nick-prefix-depth prefix-char)))
 
 (defun ellama-get-session-file-extension ()
-  "Return file extension based om the current mode.
-Defaults to md, but supports org.  Depends on \"ellama-major-mode.\""
+  "Return file extension based on the current mode.
+Defaults to md, but supports org.  Depends on `ellama-major-mode'."
   (cond ((provided-mode-derived-p ellama-major-mode 'org-mode) "org")
 (t "md")))
 
@@ -827,9 +838,15 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   (let* ((name (ellama-generate-name provider 'ellama prompt))
 (count 1)
 (name-with-suffix (format "%s %d" name count))
-(id (if (not (ellama-get-session-buffer name))
+(id (if (and (not (ellama-get-session-buffer name))
+ (not (file-exists-p (file-name-concat
+  ellama-sessions-directory
+  (concat name "." 
(ellama-get-session-file-extension))
 name
-  (while (ellama-get-session-buffer name-with-suffix)
+  (while (or (ellama-get-session-buffer name-with-suffix)
+ (file-exists-p (file-name-concat
+ ellama-sessions-directory
+ (concat name-with-suffix "." 
(ellama-get-session-file-extension)
 (setq count (+ count 1))
 (setq name-with-suffix (format "%s %d" name count)))
   name-with-suffix))
@@ -848,6 +865,7 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (setq ellama--current-session-id id)
 (puthash id buffer ellama--active-sessions)
 (with-current-buffer buffer
+  (setq default-directory ellama-sessions-directory)
   (funcall ellama-major-mode)
   (setq ellama--current-session session)
   (ellama-session-mode +1))
@@ -908,7 +926,7 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   "Save current ellama session."
   (when ellama--current-session
 (let* ((session ellama--current-session)
-  (file-name (ellama-session-file session))
+  (file-name (or (ellama-session-file session) buffer-file-name))
   (session-file-name (ellama--get-session-file-name file-name)))
   (with-temp-file session-file-name
(insert (prin1-to-string session))



[elpa] externals/ellama f8bbeef9f0 23/25: Add context management documentation

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit f8bbeef9f06ae5d1ea2dec842921591febf08f67
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add context management documentation

Added detailed documentation and features for managing context in the Ellama
package. This includes transient menus for adding and managing context 
elements,
a dedicated buffer for viewing and modifying the global context, and
considerations for effective context usage.
---
 README.org  |  60 +++
 ellama.info | 191 +---
 2 files changed, 204 insertions(+), 47 deletions(-)

diff --git a/README.org b/README.org
index eb46b331f6..c1d7ab2918 100644
--- a/README.org
+++ b/README.org
@@ -355,6 +355,66 @@ argument generated text string.
 - ~ellama-reasoning-display-action-function~: Display action function for 
reasoning.
 - ~ellama-session-line-template~: Template for formatting the current session 
line.
 
+* Context Management
+
+Ellama allows you to provide context to the Large Language Model (LLM) to
+improve the relevance and quality of responses. Context serves as background
+information, data, or instructions that guide the LLM's understanding of your
+prompt. Without context, the LLM relies solely on its pre-existing knowledge,
+which may not always be appropriate.
+
+A “global context” is maintained, which is a collection of text blocks
+accessible to the LLM when responding to prompts. This global context is
+prepened to your prompt before transmission to the LLM.
+
+** Transient Menus for Context Management
+
+Ellama provides a transient menu accessible through the main menu, offering a
+streamlined way to manage context elements. This menu is accessed via the
+“System” branch of the main transient menu, and then selecting "Context
+Commands."
+
+The Context Commands transient menu is structured as follows:
+
+Context Commands:
+
+- Add: Provides options for adding content to the global context.
+- “b” "Add Buffer" ~ellama-context-add-buffer~
+- “d” "Add Directory" ~ellama-context-add-directory~
+- “f” "Add File" ~ellama-context-add-file~
+- “s” "Add Selection" ~ellama-context-add-selection~
+- “i” "Add Info Node" ~ellama-context-add-info-node~
+- Manage: Provides options for managing the global context.
+- “m” "Manage context" ~ellama-context-manage~ - Opens the context
+  management buffer.
+- “D” "Delete element" ~ellama-context-element-remove-by-name~ - Deletes an
+  element by name.
+- “r” "Context reset" ~ellama-context-reset~ - Clears the entire global
+  context.
+- Quit: (“q” "Quit" ~transient-quit-one~) - Closes the context commands
+transient menu.
+
+** Managing the Context
+
+~ellama-context-manage~ opens a dedicated buffer, the context management 
buffer,
+where you can view, modify, and organize the global context. Within this 
buffer:
+
++   ~n~: Move to the next context element.
++   ~p~: Move to the previous context element.
++   ~q~: Quit the context management buffer.
++   ~g~: Refresh the contents of the context management buffer.
++   ~a~: Add a new context element (similar to ~ellama-context-add-selection~).
++   ~RET~: Preview the content of the context element at the current point.
+
+** Considerations
+
+Large Language Models possess limited context window sizes, restricting the
+total amount of text they can process. Be mindful of the size of your context 
to
+avoid truncation or performance degradation. Irrelevant context can dilute the
+information and hinder the LLM’s focus. Ensure context remains up-to-date for
+accurate information. Experimentation with different approaches to context
+management can optimize performance for specific use cases.
+
 * Minor modes
 
 The Ellama package for Emacs offers a suite of minor modes designed to enhance
diff --git a/ellama.info b/ellama.info
index be632e4302..229a9e8913 100644
--- a/ellama.info
+++ b/ellama.info
@@ -62,6 +62,7 @@ Assistant".  Previous sentence was written by Ellama itself.
 * Commands::
 * Keymap::
 * Configuration::
+* Context Management::
 * Minor modes::
 * Using Blueprints::
 * Acknowledgments::
@@ -70,6 +71,12 @@ Assistant".  Previous sentence was written by Ellama itself.
 
 -- The Detailed Node Listing --
 
+Context Management
+
+* Transient Menus for Context Management::
+* Managing the Context::
+* Considerations::
+
 Minor modes
 
 * ellama-context-header-line-mode::
@@ -371,7 +378,7 @@ Keymap   Function  Description
 "p s"ellama-provider-selectProvider select
 
 
-File: ellama.info,  Node: Configuration,  Next: Minor modes,  Prev: Keymap,  
Up: Top
+File: ellama.info,  Node: Configuration,  Next: Context Management,  Prev: 
Keymap,  Up: Top
 
 4 Configuration
 ***
@@ -469,9 +476,95 @@ argument generated text string.
  session line.
 
 
-File: ellama.info,  Node: Minor modes,  Next: Using Blueprints,  Prev: 
Configuration,  Up: Top
+File: ellama.i

[elpa] externals/ellama 2e09b2a8d6 18/25: Add functionality to set file name and save session

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 2e09b2a8d64067274bc7e0ef6193726d115b92b1
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add functionality to set file name and save session

Added a new function `ellama--set-file-name-and-save` to handle setting the
buffer's file name based on the current session ID and saving the buffer.
Modified `ellama-session-mode` to remap `save-buffer` to this new function,
ensuring that sessions are saved with the appropriate file names in the
designated directory.
---
 ellama.el | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/ellama.el b/ellama.el
index 0f1c3e0014..837e48da5c 100644
--- a/ellama.el
+++ b/ellama.el
@@ -457,9 +457,20 @@ It should be a function with single argument generated 
text string."
   "Show reasoning in separate buffer if enabled."
   :type 'boolean)
 
+(defun ellama--set-file-name-and-save ()
+  "Set buffer file name and save buffer."
+  (interactive)
+  (setq buffer-file-name
+   (file-name-concat
+ellama-sessions-directory
+(concat ellama--current-session-id
+"." (ellama-get-session-file-extension
+  (save-buffer))
+
 (define-minor-mode ellama-session-mode
   "Minor mode for ellama session buffers."
   :interactive nil
+  :keymap '(([remap save-buffer] . ellama--set-file-name-and-save))
   (if ellama-session-mode
   (progn
 (add-hook 'after-save-hook 'ellama--save-session nil t)



[elpa] externals/ellama 574aaaeeca 10/25: Add GNU Free Documentation License to README.org

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 574aaaeecad7273c99f1ba99baae6f96de90124c
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add GNU Free Documentation License to README.org

Added the GNU Free Documentation License (FDL) text to README.org and 
updated
ellama-manual.el to include FDL information. The changes ensure that the 
manual
now complies with the FDL requirements, including appropriate copyright 
notices
and license terms.
---
 README.org   | 463 
 ellama-manual.el |  40 ++--
 ellama.info  | 571 ---
 3 files changed, 1033 insertions(+), 41 deletions(-)

diff --git a/README.org b/README.org
index ee96198780..22dca00d18 100644
--- a/README.org
+++ b/README.org
@@ -602,3 +602,466 @@ To contribute, submit a pull request or report a bug. 
This library is
 part of GNU ELPA; major contributions must be from someone with FSF
 papers. Alternatively, you can write a module and share it on a
 different archive like MELPA.
+
+* GNU Free Documentation License
+:PROPERTIES:
+:APPENDIX: t
+:END:
+
+#+texinfo: @include doclicense.texi
+
+#+begin_export html
+
+
+GNU Free Documentation License
+ Version 1.3, 3 November 2008
+
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The "Document", below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as "you".  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is availabl

[elpa] externals/ellama de56786afc 14/25: Fix version regex in ellama-manual.el

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit de56786afc238b2a3658f8145eefc4882371e913
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Fix version regex in ellama-manual.el

Updated the version regex to correctly match version numbers containing 
zeros.
---
 ellama-manual.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ellama-manual.el b/ellama-manual.el
index ae2035ecab..c4a843ea3c 100644
--- a/ellama-manual.el
+++ b/ellama-manual.el
@@ -48,7 +48,7 @@
 "ellama.el"))
(save-excursion
  (goto-char (point-min))
- (re-search-forward ";; Version: \\([1-9\\.]+\\)")
+ (re-search-forward ";; Version: \\([0-9\\.]+\\)")
  (match-string 1
 (buf (find-file-noselect
   (file-name-concat



[elpa] externals/ellama 7f15450215 05/25: Add ellama command documentation

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 7f1545021559d26a04965990e752008b2fdb12f3
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add ellama command documentation

Added documentation for the new `ellama` command in the README. The `ellama`
command serves as the entry point for Ellama, displaying the main transient 
menu
to access all other Ellama commands. Updated the `ellama.info` file 
accordingly.
---
 README.org  |   5 +
 ellama.info | Bin 45440 -> 45731 bytes
 2 files changed, 5 insertions(+)

diff --git a/README.org b/README.org
index 603698b7dd..3ed44bbf9c 100644
--- a/README.org
+++ b/README.org
@@ -125,6 +125,11 @@ More sofisticated configuration example:
 
 ** Commands
 
+*** ellama
+
+This is the entry point for Ellama. It displays the main transient menu,
+allowing you to access all other Ellama commands from here.
+
 *** ellama-chat
 
 Ask Ellama about something by entering a prompt in an interactive
diff --git a/ellama.info b/ellama.info
index 2ae8b11c48..c4ef60c069 100644
Binary files a/ellama.info and b/ellama.info differ



[elpa] externals/ellama 8a26f71461 09/25: Update README.org and ellama-manual.el

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 8a26f714611067855defa01b15bedb45b8f4b8a4
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README.org and ellama-manual.el

Improved documentation by restructuring the README file and enhancing the 
manual
generation script. Added version extraction from `ellama.el` to the manual,
improved table of contents, and cleaned up unused content in both files.
---
 README.org   |  48 
 ellama-manual.el |  50 +++-
 ellama.info  | 360 ---
 3 files changed, 255 insertions(+), 203 deletions(-)

diff --git a/README.org b/README.org
index a83ac95a52..ee96198780 100644
--- a/README.org
+++ b/README.org
@@ -1,5 +1,3 @@
-* Ellama
-
 
[[http://www.gnu.org/licenses/gpl-3.0.txt][file:https://img.shields.io/badge/license-GPL_3-green.svg]]
 
[[https://melpa.org/#/ellama][file:https://melpa.org/packages/ellama-badge.svg]]
 
[[https://stable.melpa.org/#/ellama][file:https://stable.melpa.org/packages/ellama-badge.svg]]
@@ -16,7 +14,7 @@ The name "ellama" is derived from "Emacs Large LAnguage Model
 Assistant". Previous sentence was written by Ellama itself.
 [[file:imgs/reasoning-models.gif]]
 
-** Installation
+* Installation
 
 Just ~M-x~ ~package-install~ @@html:@@Enter@@html:@@
 ~ellama~ @@html:@@Enter@@html:@@. By default it uses 
[[https://github.com/jmorganca/ollama][ollama]]
@@ -123,7 +121,7 @@ More sofisticated configuration example:
 (advice-add 'end-of-buffer :after #'ellama-enable-scroll))
 #+END_SRC
 
-** Commands
+* Commands
 
 - ~ellama~: This is the entry point for Ellama. It displays the main transient
 menu, allowing you to access all other Ellama commands from here.
@@ -221,7 +219,7 @@ More sofisticated configuration example:
 - ~ellama-community-prompts-update-variables~: Prompt user for values of
 variables found in current buffer and update them.
 
-** Keymap
+* Keymap
 
 It's better to use a transient menu (~M-x ellama~) instead of a keymap. It
 offers a better user experience.
@@ -273,7 +271,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 | "x r"  | ellama-context-reset| Context reset|
 | "p s"  | ellama-provider-select  | Provider select  |
 
-** Configuration
+* Configuration
 
 The following variables can be customized for the Ellama client:
 
@@ -357,7 +355,7 @@ argument generated text string.
 - ~ellama-reasoning-display-action-function~: Display action function for 
reasoning.
 - ~ellama-session-line-template~: Template for formatting the current session 
line.
 
-** Minor modes
+* Minor modes
 
 The Ellama package for Emacs offers a suite of minor modes designed to enhance
 the user experience by providing context-specific information directly within
@@ -387,7 +385,7 @@ These minor modes are easily toggled on or off using 
specific commands,
 providing flexibility for users who may want to enable these features globally
 across all buffers or selectively within individual buffers.
 
-*** ellama-context-header-line-mode
+** ellama-context-header-line-mode
 
 *Description:*
 Toggle the Ellama Context header line mode. This minor mode updates the header 
line to display
@@ -405,7 +403,7 @@ line with context-specific information.
 When disabled, it removes the evaluation of ~(:eval (ellama-context-line))~ 
from
 ~header-line-format~.
 
-*** ellama-context-header-line-global-mode
+** ellama-context-header-line-global-mode
 
 *Description:*
 Globalized version of ~ellama-context-header-line-mode~. This mode ensures that
@@ -419,7 +417,7 @@ To enable or disable 
~ellama-context-header-line-global-mode~, use the command:
 This globalized minor mode provides a convenient way to ensure that 
context-specific header line
 information is always available, regardless of the buffer being edited.
 
-*** ellama-context-mode-line-mode
+** ellama-context-mode-line-mode
 
 *Description:*
 Toggle the Ellama Context mode line mode. This minor mode updates the mode line
@@ -438,7 +436,7 @@ context-specific information.
 When disabled, it removes the evaluation of ~(:eval (ellama-context-line))~ 
from
 ~mode-line-format~.
 
-*** ellama-context-mode-line-global-mode
+** ellama-context-mode-line-global-mode
 
 *Description:*
 Globalized version of ~ellama-context-mode-line-mode~. This mode ensures that
@@ -453,14 +451,14 @@ This globalized minor mode provides a convenient way to 
ensure that
 context-specific mode line information is always available, regardless of the
 buffer being edited.
 
-*** Ellama Session Header Line Mode
+** Ellama Session Header Line Mode
 
 The ~ellama-session-header-line-mode~ is a minor mode that allows you to 
display
 the current Ellama session ID in the header line of your Emacs buffers. This
 feature helps keep track of which session you are working with, especially
 useful when managing multiple sessions.
 
- Enabling and Disabling
+*** Enabling and Disabling
 
 To enabl

[elpa] externals/ellama dd25fc2bad 20/25: Fix typo in docstring

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit dd25fc2badd1e38020bd27f9d5eea925756cf5e2
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Fix typo in docstring

Corrected typos in dosctring for better readability and consistency.
---
 ellama.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ellama.el b/ellama.el
index 58c954800a..8c1e11ce34 100644
--- a/ellama.el
+++ b/ellama.el
@@ -826,8 +826,8 @@ Defaults to #, but supports `org-mode'.  Depends on 
`ellama-major-mode'."
 (make-string ellama-nick-prefix-depth prefix-char)))
 
 (defun ellama-get-session-file-extension ()
-  "Return file extension based om the current mode.
-Defaults to md, but supports org.  Depends on \"ellama-major-mode.\""
+  "Return file extension based on the current mode.
+Defaults to md, but supports org.  Depends on `ellama-major-mode'."
   (cond ((provided-mode-derived-p ellama-major-mode 'org-mode) "org")
 (t "md")))
 



[elpa] externals/ellama f00f7188cc 25/25: Merge pull request #307 from s-kostyaev/improve-context-documentation

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit f00f7188ccc0fb62324db16db8211e2feb11e153
Merge: 858d53237b 213da10f88
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #307 from s-kostyaev/improve-context-documentation

Add context management documentation
---
 NEWS.org|   2 +
 README.org  |  60 +++
 ellama.el   |   2 +-
 ellama.info | 191 +---
 4 files changed, 207 insertions(+), 48 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index 29e47a6587..f21abf4945 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,5 @@
+* Version 1.7.2
+- Added detailed context management documentation.
 * Version 1.7.1
 - Set default directory for new sessions.
 - Added functionality to set the file name before saving a session.
diff --git a/README.org b/README.org
index eb46b331f6..c1d7ab2918 100644
--- a/README.org
+++ b/README.org
@@ -355,6 +355,66 @@ argument generated text string.
 - ~ellama-reasoning-display-action-function~: Display action function for 
reasoning.
 - ~ellama-session-line-template~: Template for formatting the current session 
line.
 
+* Context Management
+
+Ellama allows you to provide context to the Large Language Model (LLM) to
+improve the relevance and quality of responses. Context serves as background
+information, data, or instructions that guide the LLM's understanding of your
+prompt. Without context, the LLM relies solely on its pre-existing knowledge,
+which may not always be appropriate.
+
+A “global context” is maintained, which is a collection of text blocks
+accessible to the LLM when responding to prompts. This global context is
+prepened to your prompt before transmission to the LLM.
+
+** Transient Menus for Context Management
+
+Ellama provides a transient menu accessible through the main menu, offering a
+streamlined way to manage context elements. This menu is accessed via the
+“System” branch of the main transient menu, and then selecting "Context
+Commands."
+
+The Context Commands transient menu is structured as follows:
+
+Context Commands:
+
+- Add: Provides options for adding content to the global context.
+- “b” "Add Buffer" ~ellama-context-add-buffer~
+- “d” "Add Directory" ~ellama-context-add-directory~
+- “f” "Add File" ~ellama-context-add-file~
+- “s” "Add Selection" ~ellama-context-add-selection~
+- “i” "Add Info Node" ~ellama-context-add-info-node~
+- Manage: Provides options for managing the global context.
+- “m” "Manage context" ~ellama-context-manage~ - Opens the context
+  management buffer.
+- “D” "Delete element" ~ellama-context-element-remove-by-name~ - Deletes an
+  element by name.
+- “r” "Context reset" ~ellama-context-reset~ - Clears the entire global
+  context.
+- Quit: (“q” "Quit" ~transient-quit-one~) - Closes the context commands
+transient menu.
+
+** Managing the Context
+
+~ellama-context-manage~ opens a dedicated buffer, the context management 
buffer,
+where you can view, modify, and organize the global context. Within this 
buffer:
+
++   ~n~: Move to the next context element.
++   ~p~: Move to the previous context element.
++   ~q~: Quit the context management buffer.
++   ~g~: Refresh the contents of the context management buffer.
++   ~a~: Add a new context element (similar to ~ellama-context-add-selection~).
++   ~RET~: Preview the content of the context element at the current point.
+
+** Considerations
+
+Large Language Models possess limited context window sizes, restricting the
+total amount of text they can process. Be mindful of the size of your context 
to
+avoid truncation or performance degradation. Irrelevant context can dilute the
+information and hinder the LLM’s focus. Ensure context remains up-to-date for
+accurate information. Experimentation with different approaches to context
+management can optimize performance for specific use cases.
+
 * Minor modes
 
 The Ellama package for Emacs offers a suite of minor modes designed to enhance
diff --git a/ellama.el b/ellama.el
index e517b2fdb6..a085afacad 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.24.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.7.1
+;; Version: 1.7.2
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 
diff --git a/ellama.info b/ellama.info
index be632e4302..229a9e8913 100644
--- a/ellama.info
+++ b/ellama.info
@@ -62,6 +62,7 @@ Assistant".  Previous sentence was written by Ellama itself.
 * Commands::
 * Keymap::
 * Configuration::
+* Context Management::
 * Minor modes::
 * Using Blueprints::
 * Acknowledgments::
@@ -70,6 +71,12 @@ Assistant".  Previous sentence was written by Ellama itself.
 
 -- The Detailed Node Listing --
 
+Context Management
+
+* Transient Menus for Context Management::
+* Managing the Context::
+* Considerations::
+
 Minor modes
 
 * ellama-cont

[elpa] externals/ellama ea435a17d1 02/25: Add variable declaration and provide statement

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit ea435a17d1fb73ab2e11dfe608f024db1d0d6ac0
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add variable declaration and provide statement

Added the declaration for `org-export-with-broken-links` and a `provide`
statement to ensure the file is loaded correctly.
---
 ellama-manual.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/ellama-manual.el b/ellama-manual.el
index 95704ea309..d8e79b25f6 100644
--- a/ellama-manual.el
+++ b/ellama-manual.el
@@ -30,6 +30,8 @@
 
 ;;; Code:
 
+(defvar org-export-with-broken-links)
+
 ;;;###autoload
 (defun ellama-manual-export ()
   "Create info manual from readme."
@@ -48,4 +50,6 @@
  'texinfo "ellama.texi"
nil nil nil nil nil
#'org-texinfo-compile
+
+(provide 'ellama-manual)
 ;;; ellama-manual.el ends here.



[elpa] externals/ellama 61c8d9f47a 12/25: Add GNU Free Documentation License

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 61c8d9f47a25a6d838d4fc7f6953638babc3f8ea
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add GNU Free Documentation License

Added GNU Free Documentation License document to the project. This license
ensures that manuals, textbooks, or other functional and useful documents 
remain
free in terms of freedom to copy, distribute, and modify.
---
 doclicense.texi | 505 
 1 file changed, 505 insertions(+)

diff --git a/doclicense.texi b/doclicense.texi
new file mode 100644
index 00..eaf3da0e92
--- /dev/null
+++ b/doclicense.texi
@@ -0,0 +1,505 @@
+@c The GNU Free Documentation License.
+@center Version 1.3, 3 November 2008
+
+@c This file is intended to be included within another document,
+@c hence no sectioning command or @node.
+
+@display
+Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, 
Inc.
+@uref{https://fsf.org/}
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document @dfn{free} in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+@item
+APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The ``Document'', below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as ``you''.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text forma

[elpa] externals/ellama 1982ee296e 11/25: Fix formatting in README.org

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 1982ee296ebced46be967b22c32c57a7478c340b
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Fix formatting in README.org

Remove bold formatted text.
---
 README.org  | 38 
 ellama.info | 99 ++---
 2 files changed, 68 insertions(+), 69 deletions(-)

diff --git a/README.org b/README.org
index 22dca00d18..eb46b331f6 100644
--- a/README.org
+++ b/README.org
@@ -365,19 +365,19 @@ multiple sessions and buffers.
 
 Key features include:
 
-- *Context Header Line Modes*: ~ellama-context-header-line-mode~ and its global
+- Context Header Line Modes: ~ellama-context-header-line-mode~ and its global
   counterpart, ~ellama-context-header-line-global-mode~, update the header line
   to display what elements are added to the global Ellama context. This is
   particularly useful for keeping track of what information is currently in
   context.
-- *Context Mode Line Modes*: Similarly, ~ellama-context-mode-line-mode~ and
+- Context Mode Line Modes: Similarly, ~ellama-context-mode-line-mode~ and
   ~ellama-context-mode-line-global-mode~ provide information about the
   current global context directly within the mode line, ensuring that users
   always have relevant information at a glance.
-- *Session Header Line Mode*: ~ellama-session-header-line-mode~ and its global
+- Session Header Line Mode: ~ellama-session-header-line-mode~ and its global
   version display the current Ellama session ID in the header line, helping
   users manage multiple sessions efficiently.
-- *Session Mode Line Mode*: ~ellama-session-mode-line-mode~ and its global
+- Session Mode Line Mode: ~ellama-session-mode-line-mode~ and its global
   counterpart offer an additional way to track session IDs by displaying them
   in the mode line.
 
@@ -387,11 +387,11 @@ across all buffers or selectively within individual 
buffers.
 
 ** ellama-context-header-line-mode
 
-*Description:*
+Description:
 Toggle the Ellama Context header line mode. This minor mode updates the header 
line to display
 context-specific information.
 
-*Usage:*
+Usage:
 To enable or disable ~ellama-context-header-line-mode~, use the command:
 
 M-x ellama-context-header-line-mode
@@ -405,11 +405,11 @@ When disabled, it removes the evaluation of ~(:eval 
(ellama-context-line))~ from
 
 ** ellama-context-header-line-global-mode
 
-*Description:*
+Description:
 Globalized version of ~ellama-context-header-line-mode~. This mode ensures that
 ~ellama-context-header-line-mode~ is enabled in all buffers.
 
-*Usage:*
+Usage:
 To enable or disable ~ellama-context-header-line-global-mode~, use the command:
 
 M-x ellama-context-header-line-global-mode
@@ -419,11 +419,11 @@ information is always available, regardless of the buffer 
being edited.
 
 ** ellama-context-mode-line-mode
 
-*Description:*
+Description:
 Toggle the Ellama Context mode line mode. This minor mode updates the mode line
 to display context-specific information.
 
-*Usage:*
+Usage:
 To enable or disable ~ellama-context-mode-line-mode~, use the command:
 
 M-x ellama-context-mode-line-mode
@@ -438,11 +438,11 @@ When disabled, it removes the evaluation of ~(:eval 
(ellama-context-line))~ from
 
 ** ellama-context-mode-line-global-mode
 
-*Description:*
+Description:
 Globalized version of ~ellama-context-mode-line-mode~. This mode ensures that
 ~ellama-context-mode-line-mode~ is enabled in all buffers.
 
-*Usage:*
+Usage:
 To enable or disable ~ellama-context-mode-line-global-mode~, use the command:
 
 M-x ellama-context-mode-line-global-mode
@@ -510,27 +510,27 @@ providing a structured framework for interactions.
 
 ** Key Components of Ellama Blueprints
 
-1. *Act*: This is the primary identifier for a blueprint, representing the
+1. Act: This is the primary identifier for a blueprint, representing the
 action or purpose of the blueprint.
-2. *Prompt*: The content that will be used to initiate the chat session. This
+2. Prompt: The content that will be used to initiate the chat session. This
 can include instructions, context, or any other relevant information needed to
 guide the conversation.
-3. *For Developers*: A flag indicating whether the blueprint is intended for
+3. For Developers: A flag indicating whether the blueprint is intended for
 developers.
 
 ** Creating and Managing Blueprints
 
 Ellama provides several functions to create, select, and manage blueprints:
 
-- *~ellama-blueprint-create~*: This function allows users to create a new
+- ~ellama-blueprint-create~: This function allows users to create a new
blueprint from the current buffer. It prompts for a name and whether the
blueprint is for developers, then saves the content of the current buffer as
the prompt.
 
-- *~ellama-blueprint-new~*: This function creates a new buffer for a blueprint,
+- ~ellama-blueprint-new~: This function creates a new buffer for a blueprint,
optionally inserting the conte

[elpa] externals/ellama c9bb37913c 01/25: Add manual generation functionality for Ellama

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit c9bb37913c6d5d00e663af129478fce9eb0084dd
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add manual generation functionality for Ellama

Added a new `.gitignore` entry to exclude `ellama.texi`. Created
`ellama-manual.el` to include a function for exporting an info manual from 
the
README. Also, added a binary file `ellama.info`, which is the generated info
file from the manual export process.
---
 .gitignore   |   1 +
 ellama-manual.el |  51 +++
 ellama.info  | Bin 0 -> 45364 bytes
 3 files changed, 52 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00..f825bf3c9a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+ellama.texi
diff --git a/ellama-manual.el b/ellama-manual.el
new file mode 100644
index 00..95704ea309
--- /dev/null
+++ b/ellama-manual.el
@@ -0,0 +1,51 @@
+;;; ellama-manual.el --- Working with ellama info manual -*- lexical-binding: 
t; package-lint-main-file: "ellama.el"; -*-
+
+;; Copyright (C) 2023-2025  Free Software Foundation, Inc.
+
+;; Author: Sergey Kostyaev 
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see .
+
+;;; Commentary:
+;;
+;; Ellama is a tool for interacting with large language models from Emacs.
+;; It allows you to ask questions and receive responses from the
+;; LLMs.  Ellama can perform various tasks such as translation, code
+;; review, summarization, enhancing grammar/spelling or wording and
+;; more through the Emacs interface.  Ellama natively supports streaming
+;; output, making it effortless to use with your preferred text editor.
+;;
+
+;;; Code:
+
+;;;###autoload
+(defun ellama-manual-export ()
+  "Create info manual from readme."
+  (interactive)
+  (declare-function org-export-to-file "ox")
+  (declare-function org-texinfo-compile "ox-texinfo")
+  (declare-function project-root "project")
+  (declare-function project-current "project")
+  (require 'ox-texinfo)
+  (let* ((org-export-with-broken-links t))
+(with-current-buffer (find-file-noselect
+ (file-name-concat
+  (project-root (project-current))
+  "README.org"))
+  (org-export-to-file
+ 'texinfo "ellama.texi"
+   nil nil nil nil nil
+   #'org-texinfo-compile
+;;; ellama-manual.el ends here.
diff --git a/ellama.info b/ellama.info
new file mode 100644
index 00..5bb0b8ea30
Binary files /dev/null and b/ellama.info differ



[elpa] externals/ellama 6904cdc47b 13/25: Simplify marker creation in ellama.el

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 6904cdc47b8bdba099663a96fb1a76fbf923da5a
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Simplify marker creation in ellama.el

Refactored the marker creation logic to use `copy-marker` for both 
`beg-marker`
and `end-marker`, reducing redundancy and improving readability.
---
 ellama.el | 8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/ellama.el b/ellama.el
index dff74191a3..8028f80797 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1206,14 +1206,10 @@ FILTER is a function for text transformation."
   (declare-function org-fill-paragraph "org")
   (with-current-buffer
   buffer
-(let* ((beg-marker (make-marker))
-  (end-marker (make-marker))
+(let* ((end-marker (copy-marker (or point (point)) t))
+   (beg-marker (copy-marker end-marker nil))
   (previous-filtered-text "")
   (safe-common-prefix ""))
-  (set-marker end-marker (or point (point)))
-  (set-marker beg-marker end-marker)
-  (set-marker-insertion-type end-marker t)
-  (set-marker-insertion-type beg-marker nil)
   (lambda
(text)
(with-current-buffer buffer



[elpa] externals/ellama 84d2f3bc6f 04/25: Update README with transient menu recommendation

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 84d2f3bc6f9ef1747e672da5f1f86b18f3d6648c
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README with transient menu recommendation

Updated the README to recommend using a transient menu (M-x ellama) instead 
of a
keymap for better user experience.
---
 README.org  |   3 +++
 ellama.info | Bin 45324 -> 45440 bytes
 2 files changed, 3 insertions(+)

diff --git a/README.org b/README.org
index 0e3822f21d..603698b7dd 100644
--- a/README.org
+++ b/README.org
@@ -357,6 +357,9 @@ Prompt user for values of variables found in current buffer 
and update them.
 
 ** Keymap
 
+It's better to use a transient menu (~M-x ellama~) instead of a keymap. It
+offers a better user experience.
+
 In any buffer where there is active ellama streaming, you can press
 ~C-g~ and it will cancel current stream.
 
diff --git a/ellama.info b/ellama.info
index b8e366ec6c..2ae8b11c48 100644
Binary files a/ellama.info and b/ellama.info differ



[elpa] externals/ellama 44de9e5acd 08/25: Update README.org and ellama.info with command descriptions

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 44de9e5acd305c4aaca2301ec0a6a7b5dbd108b5
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README.org and ellama.info with command descriptions

Updated the `README.org` and `ellama.info` files to provide a more concise 
list
of commands, removing detailed descriptions for each command. This makes the
documentation cleaner and easier to navigate while still retaining all 
necessary
information.
---
 README.org  | 329 ---
 ellama.info | 735 +++-
 2 files changed, 223 insertions(+), 841 deletions(-)

diff --git a/README.org b/README.org
index 57539849cb..a83ac95a52 100644
--- a/README.org
+++ b/README.org
@@ -125,240 +125,101 @@ More sofisticated configuration example:
 
 ** Commands
 
-*** ellama
-
-This is the entry point for Ellama. It displays the main transient menu,
-allowing you to access all other Ellama commands from here.
-
-*** ellama-chat
-
-Ask Ellama about something by entering a prompt in an interactive
-buffer and continue conversation. If called with universal argument
-(~C-u~) will start new session with llm model interactive selection.
-[[imgs/ellama-ask.gif]]
-
-*** ellama-write
-
-This command allows you to generate text using an LLM. When called
-interactively, it prompts for an instruction that is then used to
-generate text based on the context. If a region is active, the
-selected text is added to the context before generating the response.
-
-*** ellama-chat-send-last-message
-
-Send last user message extracted from current ellama chat buffer.
-
-*** ellama-ask-about
-
-Ask Ellama about a selected region or the current buffer.
-[[imgs/ellama-ask-about.gif]]
-
-*** ellama-ask-selection
-
-Send selected region or current buffer to ellama chat.
-
-*** ellama-ask-line
-
-Send current line to ellama chat.
-
-*** ellama-complete
-
-Complete text in current buffer with ellama.
-
-*** ellama-translate
-
-Ask Ellama to translate a selected region or word at the point.
-[[imgs/ellama-translate.gif]]
-
-*** ellama-translate-buffer
-
-Translate current buffer.
-
-*** ellama-define-word
-
-Find the definition of the current word using Ellama.
-[[imgs/ellama-define-word.gif]]
-
-*** ellama-summarize
-
-Summarize a selected region or the current buffer using Ellama.
-[[imgs/ellama-summarize.gif]]
-
-*** ellama-summarize-killring
-
-Summarize text from the kill ring.
-
-*** ellama-code-review
-
-Review code in a selected region or the current buffer using Ellama.
-[[imgs/ellama-code-review.gif]]
-
-*** ellama-change
-
-Change text in a selected region or the current buffer according to a
-provided change.
-
-*** ellama-make-list
-
-Create a markdown list from the active region or the current buffer using 
Ellama.
-
-*** ellama-make-table
-
-Create a markdown table from the active region or the current buffer using 
Ellama.
-
-*** ellama-summarize-webpage
-
-Summarize a webpage fetched from a URL using Ellama.
-
-*** ellama-provider-select
-
-Select ellama provider.
-
-*** ellama-code-complete
-
-Complete selected code or code in the current buffer according to a
-provided change using Ellama.
-
-*** ellama-code-add
-
-Generate and insert new code based on description. This function
-prompts the user to describe the code they want to generate. If a
-region is active, it includes the selected text as context for code
-generation.
-[[file:imgs/writing-code.gif]]
-
-*** ellama-code-edit
-
-Change selected code or code in the current buffer according to a
-provided change using Ellama.
-
-*** ellama-code-improve
-
-Change selected code or code in the current buffer according to a
-provided change using Ellama.
-
-*** ellama-generate-commit-message
-
-Generate commit message based on diff.
-
-*** ellama-proofread
-
-Proofread selected text.
-
-*** ellama-improve-wording
-
-Enhance the wording in the currently selected region or buffer using Ellama.
-
-*** ellama-improve-grammar
-Enhance the grammar and spelling in the currently selected region or
-buffer using Ellama.
-[[imgs/ellama-enhance-grammar-spelling.gif]]
-
-*** ellama-improve-conciseness
-
-Make the text of the currently selected region or buffer concise and
-simple using Ellama.
-
-*** ellama-make-format
-
-Render the currently selected text or the text in the current buffer
-as a specified format using Ellama.
-
-*** ellama-load-session
-
-Load ellama session from file.
-
-*** ellama-session-delete
-
-Delete ellama session.
-
-*** ellama-session-switch
-
-Change current active session.
-
-*** ellama-session-kill
-
-Select and kill one of active sessions.
-
-*** ellama-session-rename
-
-Rename current ellama session.
-
-*** ellama-context-add-file
-
-Add file to context.
-
-*** ellama-context-add-directory
-
-Add all files in directory to the context.
-
-*** ellama-context-add-buffer
-
-Add buffer to context.
-
-*** ellama-context-add-selection
-
-Add selected region to context.
-
-*** ellama-context-ad

[elpa] externals/ellama c4a1fcd7e8 03/25: Simplify ellama binding

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit c4a1fcd7e8683bface4dd7b08db45361e5fd0064
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Simplify ellama binding

Changed the keybinding for ellama from "C-c e" to call `ellama` alias.
Updated both README.org and ellama.info accordingly.
---
 README.org  |   4 ++--
 ellama.info | Bin 45364 -> 45324 bytes
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index ba82ee2bec..0e3822f21d 100644
--- a/README.org
+++ b/README.org
@@ -34,7 +34,7 @@ You can customize ellama configuration like this:
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
-:bind ("C-c e" . ellama-transient-main-menu)
+:bind ("C-c e" . ellama)
 ;; send last message in chat buffer with C-c C-c
 :hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
 :init (setopt ellama-auto-scroll t)
@@ -50,7 +50,7 @@ More sofisticated configuration example:
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
-:bind ("C-c e" . ellama-transient-main-menu)
+:bind ("C-c e" . ellama)
 ;; send last message in chat buffer with C-c C-c
 :hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
 :init
diff --git a/ellama.info b/ellama.info
index 5bb0b8ea30..b8e366ec6c 100644
Binary files a/ellama.info and b/ellama.info differ



[nongnu] elpa/proof-general a36eb9bed9 02/10: Fix #757 indentation of "\in"

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit a36eb9bed9b8f7f63943fd2e0d505ad34e426136
Author: Pierre Courtieu 
Commit: Pierre Courtieu 

Fix #757 indentation of "\in"

The lexer now glues a "\" to an immediately following word if it is
itself preceded by a space.

Note that for really good indentation you should try to add something
like this to your configuration:

(setq coq-smie-user-tokens '(("\\in" . "=")))

to tell the indentation grammar that \in has the same precedence as
"=".

Test added.
---
 ci/test-indent/indent-backslash-ops.v | 23 +++
 coq/coq-smie.el   | 35 +++
 2 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/ci/test-indent/indent-backslash-ops.v 
b/ci/test-indent/indent-backslash-ops.v
new file mode 100644
index 00..5af1556458
--- /dev/null
+++ b/ci/test-indent/indent-backslash-ops.v
@@ -0,0 +1,23 @@
+Require Import mathcomp.ssreflect.ssrbool.
+
+Definition xx := nat.
+Module foo.
+  (* from PG issue #757 *)
+  Lemma test:
+forall a : nat,
+  a \in [::] ->  (* "\in" should be detected as one token *)
+  False.
+  Proof.
+  Abort.
+  Qed.
+
+  Lemma test2:
+forall a : nat,
+  a \in  (* "\in" should be detected as one token *)
+[::] ->
+  False.
+  Proof.
+  Abort.
+  Qed.
+End foo.
+
diff --git a/coq/coq-smie.el b/coq/coq-smie.el
index d944e94958..5528c65586 100644
--- a/coq/coq-smie.el
+++ b/coq/coq-smie.el
@@ -266,14 +266,18 @@ the token of \".\" is simply \".\"."
 
 
 ;; A variant of smie-default-backward-token that recognize "." and ";"
-;; as single token even if glued at the end of another symbols.
-
+;; as single token even if glued at the end of another symbols. We
+;; glue "\" in front of a word though, to follow ssreflects
+;; ocnvention.
 (defun coq-backward-token-fast-nogluing-dot-friends ()
   (forward-comment (- (point)))
   (let* ((pt (point))
  (tok-punc (skip-syntax-backward "."))
  (str-punc (buffer-substring-no-properties pt (point
-(if (zerop tok-punc) (skip-syntax-backward "w_'"))
+;; skip a regular word + one backslash
+(when (zerop tok-punc)
+  (skip-syntax-backward "w_'")
+  (if (looking-back "\\s-") (forward-char -1)))
 ;; Special case: if the symbols found end by "." or ";",
 ;; then consider this last letter alone as a token
 (when (and (not (zerop tok-punc)) (string-match "\\s.+[.;]" str-punc))
@@ -286,7 +290,9 @@ the token of \".\" is simply \".\"."
   (let* ((pt (point))
  (tok-punc (skip-syntax-forward "."))
  (str-punc (buffer-substring-no-properties pt (point
-(if (zerop tok-punc) (skip-syntax-forward "w_'"))
+(if (or (zerop tok-punc) (string-match "" str-punc)
+)
+(skip-syntax-forward "w_'"))
 ;; Special case: if the symbols found end by "." or ";",
 ;; then consider this last letter alone as a token
 (when (and (not (zerop tok-punc)) (string-match "\\s.+[.;]" str-punc))
@@ -653,6 +659,27 @@ The point should be at the beginning of the command name."
 (cdr res)))
  (tok
 
+;; Modified from smie.el
+(defun smie-default-forward-token ()
+  (forward-comment (point-max))
+  (buffer-substring-no-properties
+   (point)
+   (let ((dist (skip-syntax-forward ".")))
+ 
+ (when (or (zerop dist)
+   (and (= 1 dist) (looking-back "")))
+   (skip-syntax-forward "w_'"))
+ (point
+
+(defun smie-default-backward-token ()
+  (forward-comment (- (point)))
+  (buffer-substring-no-properties
+   (point)
+   (progn (when (zerop (skip-syntax-backward "."))
+(skip-syntax-backward "w_'")
+(if (looking-back "\\s-") (forward-char -1)))
+  (point
+
 (defun coq-smie-backward-token-aux ()
   (let* ((tok (smie-default-backward-token)))
 (cond



[nongnu] elpa/proof-general 307831e26e 01/10: Fixed an error when `proof-ignore-for-undo-count` is a function.

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 307831e26e67f3a85ea28bc250b5dee343b462a1
Author: rssoc <8051656+rs...@users.noreply.github.com>
Commit: rssoc <8051656+rs...@users.noreply.github.com>

Fixed an error when `proof-ignore-for-undo-count` is a function.
---
 generic/proof-script.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generic/proof-script.el b/generic/proof-script.el
index 31e5d083b2..d4e26405cd 100644
--- a/generic/proof-script.el
+++ b/generic/proof-script.el
@@ -2736,7 +2736,7 @@ with something different."
  (eq typ 'proverproc)
  (eq typ 'proof)
  (and proof-ignore-for-undo-count cmd
-  (proof-string-match proof-ignore-for-undo-count cmd
+  (proof-stringfn-match proof-ignore-for-undo-count cmd
 ;; some named element: use generic forget-id function; finish.
 ((setq name (span-property span 'name))
  (setq ans (format proof-forget-id-command name))



[nongnu] elpa/proof-general 3a2af43ce9 06/10: Merge pull request #813 from Matafou/fix-real-start

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 3a2af43ce973ac4a6dce336181a04914a67d2d4a
Merge: 809b01e845 28497cd899
Author: Pierre Courtieu 
Commit: GitHub 

Merge pull request #813 from Matafou/fix-real-start

Fix low level code to find the start of a command.
---
 ci/test-indent/indent-tac.v | 13 +
 coq/coq-indent.el   |  4 ++--
 coq/coq.el  |  5 -
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/ci/test-indent/indent-tac.v b/ci/test-indent/indent-tac.v
index 4a27e7038b..77a9987685 100644
--- a/ci/test-indent/indent-tac.v
+++ b/ci/test-indent/indent-tac.v
@@ -269,6 +269,19 @@ Module M1.
 { auto.
 }
   }
+  1:{
+destruct n.
+2:{ auto.
+}
+{ auto. }
+  }
+  {
+destruct n.
+2:{
+  auto. }
+{ auto.
+}
+  }
 Qed.
   End M2.
 End M1.
diff --git a/coq/coq-indent.el b/coq/coq-indent.el
index 7ceff93281..aab99837fa 100644
--- a/coq/coq-indent.el
+++ b/coq/coq-indent.el
@@ -217,10 +217,10 @@ position."
 (coq-find-previous-endcmd)
 (while (not something-found)
   (forward-comment (point-max))
-  (if (and (looking-at "\\({\\|}\\|\\++\\|\\*+\\|-+\\)")
+  (if (and (looking-at "\\(?1:{\\|}\\|\\++\\|\\*+\\|-+\\|[0-9]+\\s-*:{\\)")
(< (point) p) ;; if we are after the starting point then 
anything is the start of the current command, even "#" or ".".
)
-  (forward-char 1)
+  (goto-char (match-end 1))
 (setq something-found t
   (point))
 
diff --git a/coq/coq.el b/coq/coq.el
index 2b83a1ddd4..b57220a9af 100644
--- a/coq/coq.el
+++ b/coq/coq.el
@@ -2504,13 +2504,15 @@ tacitcs like destruct and induction reuse hypothesis 
names by
 default, which makes the detection of new hypothesis incorrect.
 the hack consists in adding the \"!\" modifier on the argument
 destructed, so that it is left in the goal and the name cannot be
-reused.  We also had a \"clear\" at the end of the tactic so that
+reused.  We also add a \"clear\" at the end of the tactic so that
 the whole tactic behaves correctly.
 Warning: this makes the error messages (and location) wrong.")
 
 (defun coq-hack-cmd-for-infoH (s)
   "return the tactic S hacked with infoH tactical."
   (cond
+   ;; We cannot rebuild the sub-patterns from the final goal, so ';' is not
+   ;; supported. Only single tactics like destruct.
((string-match ";" s) s) ;; composed tactic cannot be treated
((string-match coq-auto-as-hack-hyp-name-regex s)
 (concat "infoH " (match-string 1 s) " (" (match-string 2 s) ")."))
@@ -2711,6 +2713,7 @@ Used for automatic insertion of \"Proof using\" 
annotations.")
   (interactive)
   (save-excursion
 (goto-char (proof-unprocessed-begin))
+(forward-char 1)
 (coq-find-real-start)
 (let* ((pt (point))
(_ (coq-script-parse-cmdend-forward))



[nongnu] elpa/proof-general 85cde55a86 10/10: Merge pull request #679 from rssoc/master

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 85cde55a86b2c3a67d8bbffa8de0d0276f724643
Merge: 2185896333 307831e26e
Author: Pierre Courtieu 
Commit: GitHub 

Merge pull request #679 from rssoc/master

Fixed an error when `proof-ignore-for-undo-count` is a function.
---
 generic/proof-script.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generic/proof-script.el b/generic/proof-script.el
index afa2e50b63..d62f2ea54c 100644
--- a/generic/proof-script.el
+++ b/generic/proof-script.el
@@ -2901,7 +2901,7 @@ with something different."
  (eq typ 'proverproc)
  (eq typ 'proof)
  (and proof-ignore-for-undo-count cmd
-  (proof-string-match proof-ignore-for-undo-count cmd
+  (proof-stringfn-match proof-ignore-for-undo-count cmd
 ;; some named element: use generic forget-id function; finish.
 ((setq name (span-property span 'name))
  (setq ans (format proof-forget-id-command name))



[nongnu] elpa/proof-general f69ea38e57 08/10: Merge pull request #796 from andreas-roehler/master

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit f69ea38e577f7ee94d7e763439cbdb4bdc7d8ea9
Merge: 8e3384e8f5 0e84b2bdd0
Author: Pierre Courtieu 
Commit: GitHub 

Merge pull request #796 from andreas-roehler/master

#795, Compiler warnings: wrong usage of unescaped single quotes
---
 coq/coq-db.el | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/coq/coq-db.el b/coq/coq-db.el
index 6e79e95f3b..680292d161 100644
--- a/coq/coq-db.el
+++ b/coq/coq-db.el
@@ -65,7 +65,7 @@ menu but only in interactive completions.
 Example of what could be in your emacs init file:
 
 \(defvar coq-user-tactics-db
-  '(
+  \\='(
 (\"mytac\" \"mt\" \"mytac # #\" t \"mytac\")
 (\"myassert by\" \"massb\" \"myassert ( # : # ) by #\" t \"assert\")
 ))
@@ -354,19 +354,19 @@ See `coq-syntax-db' for DB structure."
 
 (defconst coq-solve-tactics-face 'coq-solve-tactics-face
   "Expression that evaluates to a face.
-Required so that 'coq-solve-tactics-face is a proper facename")
+Required so that \\='coq-solve-tactics-face is a proper facename")
 
 (defconst coq-cheat-face 'coq-cheat-face
   "Expression that evaluates to a face.
-Required so that 'coq-cheat-face is a proper facename")
+Required so that \\='coq-cheat-face is a proper facename")
 
 (defconst coq-symbol-binder-face 'coq-symbol-binder-face
   "Expression that evaluates to a face.
-Required so that 'coq-symbol-binder-face is a proper facename")
+Required so that \\='coq-symbol-binder-face is a proper facename")
 
 (defconst coq-symbol-face 'coq-symbol-face
   "Expression that evaluates to a face.
-Required so that 'coq-symbol-binder-face is a proper facename")
+Required so that \\='coq-symbol-binder-face is a proper facename")
 
 (defconst coq-question-mark-face 'coq-question-mark-face)
 



[nongnu] elpa/proof-general 8e3384e8f5 07/10: Merge pull request #812 from ulm/which

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 8e3384e8f538c823e6574c023227ff9480704524
Merge: 3a2af43ce9 2dac06d9e3
Author: Pierre Courtieu 
Commit: GitHub 

Merge pull request #812 from ulm/which

Makefile: Replace "which" by POSIX "command -v"
---
 Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 7a5df56023..b9b28aab5c 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@
 
 # Set this according to your version of Emacs.
 # NB: this is also used to set default install path names below.
-EMACS=$(shell if [ -z "`which emacs`" ]; then echo "Emacs executable not 
found"; exit 1; else echo emacs; fi)
+EMACS=$(shell if [ -z "`command -v emacs`" ]; then echo "Emacs executable not 
found"; exit 1; else echo emacs; fi)
 
 # We default to /usr rather than /usr/local because installs of
 # desktop and doc files under /usr/local are unlikely to work with
@@ -273,7 +273,7 @@ scripts: bashscripts perlscripts
 
 .PHONY: bashscripts
 bashscripts:
-   (bash="`which bash`";   \
+   (bash="`command -v bash`";  \
 if [ -z "$$bash" ]; then   \
   echo "Could not find bash - bash paths not checked" >&2; \
   exit 0;  \
@@ -281,7 +281,7 @@ bashscripts:
 
 .PHONY: perlscripts
 perlscripts:
-   (perl="`which perl`";   \
+   (perl="`command -v perl`";  \
 if [ -z "$$perl" ]; then   \
   echo "Could not find perl - perl paths not checked" >&2; \
   exit 0;  \



[nongnu] elpa/proof-general 2dac06d9e3 04/10: Makefile: Replace "which" by POSIX "command -v"

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 2dac06d9e3f8e66f1619585c86f05a538a75de08
Author: Ulrich Müller 
Commit: Ulrich Müller 

Makefile: Replace "which" by POSIX "command -v"
---
 Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 7a5df56023..b9b28aab5c 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@
 
 # Set this according to your version of Emacs.
 # NB: this is also used to set default install path names below.
-EMACS=$(shell if [ -z "`which emacs`" ]; then echo "Emacs executable not 
found"; exit 1; else echo emacs; fi)
+EMACS=$(shell if [ -z "`command -v emacs`" ]; then echo "Emacs executable not 
found"; exit 1; else echo emacs; fi)
 
 # We default to /usr rather than /usr/local because installs of
 # desktop and doc files under /usr/local are unlikely to work with
@@ -273,7 +273,7 @@ scripts: bashscripts perlscripts
 
 .PHONY: bashscripts
 bashscripts:
-   (bash="`which bash`";   \
+   (bash="`command -v bash`";  \
 if [ -z "$$bash" ]; then   \
   echo "Could not find bash - bash paths not checked" >&2; \
   exit 0;  \
@@ -281,7 +281,7 @@ bashscripts:
 
 .PHONY: perlscripts
 perlscripts:
-   (perl="`which perl`";   \
+   (perl="`command -v perl`";  \
 if [ -z "$$perl" ]; then   \
   echo "Could not find perl - perl paths not checked" >&2; \
   exit 0;  \



[nongnu] elpa/proof-general 0e84b2bdd0 03/10: #795, Compiler warnings: wrong usage of unescaped single quotes

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 0e84b2bdd0c3f32680a956cf83e24c805eddeca8
Author: Andreas Roehler 
Commit: Andreas Roehler 

#795, Compiler warnings: wrong usage of unescaped single quotes

coq/coq-db.el:31:11: Warning: defconst ‘coq-syntax-db’ docstring has wrong 
usage of unescaped single quotes

fixed
---
 coq/coq-db.el | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/coq/coq-db.el b/coq/coq-db.el
index 6e79e95f3b..680292d161 100644
--- a/coq/coq-db.el
+++ b/coq/coq-db.el
@@ -65,7 +65,7 @@ menu but only in interactive completions.
 Example of what could be in your emacs init file:
 
 \(defvar coq-user-tactics-db
-  '(
+  \\='(
 (\"mytac\" \"mt\" \"mytac # #\" t \"mytac\")
 (\"myassert by\" \"massb\" \"myassert ( # : # ) by #\" t \"assert\")
 ))
@@ -354,19 +354,19 @@ See `coq-syntax-db' for DB structure."
 
 (defconst coq-solve-tactics-face 'coq-solve-tactics-face
   "Expression that evaluates to a face.
-Required so that 'coq-solve-tactics-face is a proper facename")
+Required so that \\='coq-solve-tactics-face is a proper facename")
 
 (defconst coq-cheat-face 'coq-cheat-face
   "Expression that evaluates to a face.
-Required so that 'coq-cheat-face is a proper facename")
+Required so that \\='coq-cheat-face is a proper facename")
 
 (defconst coq-symbol-binder-face 'coq-symbol-binder-face
   "Expression that evaluates to a face.
-Required so that 'coq-symbol-binder-face is a proper facename")
+Required so that \\='coq-symbol-binder-face is a proper facename")
 
 (defconst coq-symbol-face 'coq-symbol-face
   "Expression that evaluates to a face.
-Required so that 'coq-symbol-binder-face is a proper facename")
+Required so that \\='coq-symbol-binder-face is a proper facename")
 
 (defconst coq-question-mark-face 'coq-question-mark-face)
 



[nongnu] elpa/proof-general updated (809b01e845 -> 85cde55a86)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/proof-general.

  from  809b01e845 Merge pull request #816 from Matafou/fix-first-cmd
   new  28497cd899 Fix low level code to find the start of a command.
   new  3a2af43ce9 Merge pull request #813 from Matafou/fix-real-start
   new  2dac06d9e3 Makefile: Replace "which" by POSIX "command -v"
   new  8e3384e8f5 Merge pull request #812 from ulm/which
   new  0e84b2bdd0 #795, Compiler warnings: wrong usage of unescaped single 
quotes
   new  f69ea38e57 Merge pull request #796 from andreas-roehler/master
   new  a36eb9bed9 Fix #757 indentation of "\in"
   new  2185896333 Merge pull request #789 from 
Matafou/fix-indent-backslashid
   new  307831e26e Fixed an error when `proof-ignore-for-undo-count` is a 
function.
   new  85cde55a86 Merge pull request #679 from rssoc/master


Summary of changes:
 Makefile  |  6 +++---
 ci/test-indent/indent-backslash-ops.v | 23 +++
 ci/test-indent/indent-tac.v   | 13 +
 coq/coq-db.el | 10 +-
 coq/coq-indent.el |  4 ++--
 coq/coq-smie.el   | 35 +++
 coq/coq.el|  5 -
 generic/proof-script.el   |  2 +-
 8 files changed, 82 insertions(+), 16 deletions(-)
 create mode 100644 ci/test-indent/indent-backslash-ops.v



[elpa] externals/ellama 3f20c1b194 06/25: Update README with detailed description of Ellama minor modes

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 3f20c1b1949e6cefa45b4596e11c2007cee7447f
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README with detailed description of Ellama minor modes

Added comprehensive documentation for various Ellama minor modes, including
their descriptions, usage, and customization options. This update helps 
users
understand how to utilize these features effectively within Emacs for better
session management and context awareness.
---
 README.org  |  28 
 ellama.info | Bin 45731 -> 47372 bytes
 2 files changed, 28 insertions(+)

diff --git a/README.org b/README.org
index 3ed44bbf9c..57539849cb 100644
--- a/README.org
+++ b/README.org
@@ -498,6 +498,34 @@ argument generated text string.
 
 ** Minor modes
 
+The Ellama package for Emacs offers a suite of minor modes designed to enhance
+the user experience by providing context-specific information directly within
+the editor's interface. These minor modes focus on updating both the header 
line
+and mode line with relevant details, making it easier to manage and navigate
+multiple sessions and buffers.
+
+Key features include:
+
+- *Context Header Line Modes*: ~ellama-context-header-line-mode~ and its global
+  counterpart, ~ellama-context-header-line-global-mode~, update the header line
+  to display what elements are added to the global Ellama context. This is
+  particularly useful for keeping track of what information is currently in
+  context.
+- *Context Mode Line Modes*: Similarly, ~ellama-context-mode-line-mode~ and
+  ~ellama-context-mode-line-global-mode~ provide information about the
+  current global context directly within the mode line, ensuring that users
+  always have relevant information at a glance.
+- *Session Header Line Mode*: ~ellama-session-header-line-mode~ and its global
+  version display the current Ellama session ID in the header line, helping
+  users manage multiple sessions efficiently.
+- *Session Mode Line Mode*: ~ellama-session-mode-line-mode~ and its global
+  counterpart offer an additional way to track session IDs by displaying them
+  in the mode line.
+
+These minor modes are easily toggled on or off using specific commands,
+providing flexibility for users who may want to enable these features globally
+across all buffers or selectively within individual buffers.
+
 *** ellama-context-header-line-mode
 
 *Description:*
diff --git a/ellama.info b/ellama.info
index c4ef60c069..bc30d01943 100644
Binary files a/ellama.info and b/ellama.info differ



[elpa] externals/ellama 0fcf73d959 21/25: Bump version

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 0fcf73d95963952dd7b7709a239eafbfcbf53834
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

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

diff --git a/NEWS.org b/NEWS.org
index 5bb5eec10a..29e47a6587 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,7 @@
+* Version 1.7.1
+- Set default directory for new sessions.
+- Added functionality to set the file name before saving a session.
+- Enhanced session ID generation to prevent overwriting existing session files.
 * Version 1.7.0
 - Added manual generation functionality for Ellama, including a new .gitignore
   entry to exclude ellama.texi, created ellama-manual.el for exporting an info
diff --git a/ellama.el b/ellama.el
index 8c1e11ce34..e517b2fdb6 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.24.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.7.0
+;; Version: 1.7.1
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/ellama 213da10f88 24/25: Bump version

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 213da10f885dcb2f040245276ca8b9f755c0f1a8
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 29e47a6587..f21abf4945 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,5 @@
+* Version 1.7.2
+- Added detailed context management documentation.
 * Version 1.7.1
 - Set default directory for new sessions.
 - Added functionality to set the file name before saving a session.
diff --git a/ellama.el b/ellama.el
index e517b2fdb6..a085afacad 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.24.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.7.1
+;; Version: 1.7.2
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/ellama d7160ee661 19/25: Check for existing session file in directory

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit d7160ee6616fadf3dd7ad52d7b0a7cb7b3daaf9b
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Check for existing session file in directory

Enhanced the function to ensure that a new session ID is generated not only 
if a
buffer with the same name exists, but also if a file with the same name 
exists
in the sessions directory. This prevents overwriting existing session files.
---
 ellama.el | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ellama.el b/ellama.el
index 837e48da5c..58c954800a 100644
--- a/ellama.el
+++ b/ellama.el
@@ -838,9 +838,15 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   (let* ((name (ellama-generate-name provider 'ellama prompt))
 (count 1)
 (name-with-suffix (format "%s %d" name count))
-(id (if (not (ellama-get-session-buffer name))
+(id (if (and (not (ellama-get-session-buffer name))
+ (not (file-exists-p (file-name-concat
+  ellama-sessions-directory
+  (concat name "." 
(ellama-get-session-file-extension))
 name
-  (while (ellama-get-session-buffer name-with-suffix)
+  (while (or (ellama-get-session-buffer name-with-suffix)
+ (file-exists-p (file-name-concat
+ ellama-sessions-directory
+ (concat name-with-suffix "." 
(ellama-get-session-file-extension)
 (setq count (+ count 1))
 (setq name-with-suffix (format "%s %d" name count)))
   name-with-suffix))



[elpa] externals/el-job 006af3ffd4 104/143: DROP SUPPORT Emacs 28

2025-03-28 Thread ELPA Syncer
branch: externals/el-job
commit 006af3ffd4ebbbf172881f3d6d18236b2b0c13db
Author: Martin Edström 
Commit: Martin Edström 

DROP SUPPORT Emacs 28

Mystery: in my testing on Emacs 28, subprocesses apparently never
receive the input from process-send-string, so they do nothing and
wait forever.
---
 el-job-child.el | 2 --
 el-job.el   | 5 +
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/el-job-child.el b/el-job-child.el
index b604242188..b59b5e1fda 100644
--- a/el-job-child.el
+++ b/el-job-child.el
@@ -21,8 +21,6 @@
 
 ;;; Code:
 
-(when (= emacs-major-version 28) (require 'subr-x))
-
 (defun el-job-child--zip (meta-list1 meta-list2)
   "Destructively zip two lists into one.
 Like the Dash expression \(-zip-with #\\='nconc list1 list2).
diff --git a/el-job.el b/el-job.el
index c06babf44f..cb637244d8 100644
--- a/el-job.el
+++ b/el-job.el
@@ -20,7 +20,7 @@
 ;; Created:  2024-10-30
 ;; Keywords: processes
 ;; Package-Version:  2.0.1
-;; Package-Requires: ((emacs "28.1") (compat "30"))
+;; Package-Requires: ((emacs "29.1"))
 
 ;;; Commentary:
 
@@ -36,10 +36,7 @@
 
 ;;; Code:
 
-(when (<= emacs-major-version 28)
-  (require 'subr-x))
 (require 'cl-lib)
-(require 'compat)
 (require 'el-job-child)
 
 (defvar el-job-major-version 2



[elpa] externals/corfu updated (c302b0526a -> 061d926d0f)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/corfu.

  from  c302b0526a README: clarify kind-icon terminal support
   new  51f3ad71bd corfu-quick: Ensure that popup does not move (Fix #566)
   new  e05575741f Update changelog
   new  061d926d0f Version 2.0


Summary of changes:
 CHANGELOG.org |  4 
 corfu.el  |  2 +-
 extensions/corfu-echo.el  |  4 ++--
 extensions/corfu-history.el   |  4 ++--
 extensions/corfu-indexed.el   |  4 ++--
 extensions/corfu-info.el  |  4 ++--
 extensions/corfu-popupinfo.el |  4 ++--
 extensions/corfu-quick.el | 34 +-
 8 files changed, 28 insertions(+), 32 deletions(-)



[elpa] externals/corfu 51f3ad71bd 1/3: corfu-quick: Ensure that popup does not move (Fix #566)

2025-03-28 Thread ELPA Syncer
branch: externals/corfu
commit 51f3ad71bd9f199aa20ba0ab19baf883bc31fc8a
Author: Daniel Mendler 
Commit: Daniel Mendler 

corfu-quick: Ensure that popup does not move (Fix #566)
---
 extensions/corfu-quick.el | 30 +++---
 1 file changed, 11 insertions(+), 19 deletions(-)

diff --git a/extensions/corfu-quick.el b/extensions/corfu-quick.el
index dd87b5f6e9..4a98f01fd6 100644
--- a/extensions/corfu-quick.el
+++ b/extensions/corfu-quick.el
@@ -80,10 +80,10 @@ TWO is non-nil if two keys should be displayed."
   (cond
((eq first two)
 (list
- (concat " " (propertize (char-to-string second) 'face 
'corfu-quick1))
+ (propertize (char-to-string second) 'face 'corfu-quick1)
  (cons second (+ corfu--scroll idx
(two
-(list "  "))
+(list ""))
(t
 (list
  (concat (propertize (char-to-string first) 'face 'corfu-quick1)
@@ -91,31 +91,23 @@ TWO is non-nil if two keys should be displayed."
  (cons first (list first))
   (let ((first (elt corfu-quick1 (mod idx fst
 (if two
-(list "  ")
+(list "")
   (list
-   (concat (propertize (char-to-string first) 'face 'corfu-quick1) " ")
+   (propertize (char-to-string first) 'face 'corfu-quick1)
(cons first (+ corfu--scroll idx
 
 (defun corfu-quick--read (&optional first)
   "Read quick key given FIRST pressed key."
   (cl-letf* ((list nil)
- (space1 (propertize " " 'display
- `(space :width
- (+ 0.5 (,(alist-get
-   'child-frame-border-width
-   
corfu--frame-parameters))
- (space2 #(" " 0 1 (display (space :width 0.5
- (orig (symbol-function #'corfu--affixate))
- ((symbol-function #'corfu--affixate)
+ (orig (symbol-function #'corfu--format-candidates))
+ ((symbol-function #'corfu--format-candidates)
   (lambda (cands)
-(setq cands (cdr (funcall orig cands)))
-(cl-loop for cand in cands for index from 0 do
+(setq cands (funcall orig cands))
+(cl-loop for cand in-ref (nth 2 cands) for index from 0 do
  (pcase-let ((`(,keys . ,events) (corfu-quick--keys 
first index)))
-   (setq list (nconc events list))
-   (setf (cadr cand) (concat space1 (propertize " " 
'display keys) space2
-(cons t cands)))
- ;; Increase minimum width to avoid odd jumping
- (corfu-min-width (+ 3 corfu-min-width)))
+   (setf list (nconc events list)
+ cand (concat keys (substring cand (min 
(length cand) (length keys)))
+cands)))
 (corfu--candidates-popup
  (posn-at-point (+ (car completion-in-region--data) (length corfu--base
 (alist-get (read-key) list)))



[elpa] externals/corfu e05575741f 2/3: Update changelog

2025-03-28 Thread ELPA Syncer
branch: externals/corfu
commit e05575741f9f44a504cfc6d6c3162bf2818227dd
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update changelog
---
 CHANGELOG.org | 4 
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 8c7a88b966..0970a65dd7 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,6 +2,10 @@
 #+author: Daniel Mendler
 #+language: en
 
+* Development
+
+- ~corfu-quick~: Ensure that popup does not move.
+
 * Version 1.7 (2025-01-28)
 
 - Bugfixes only.



[elpa] externals/corfu 061d926d0f 3/3: Version 2.0

2025-03-28 Thread ELPA Syncer
branch: externals/corfu
commit 061d926d0f0eb2633416deeddc403a1a67b062ae
Author: Daniel Mendler 
Commit: Daniel Mendler 

Version 2.0
---
 CHANGELOG.org | 2 +-
 corfu.el  | 2 +-
 extensions/corfu-echo.el  | 4 ++--
 extensions/corfu-history.el   | 4 ++--
 extensions/corfu-indexed.el   | 4 ++--
 extensions/corfu-info.el  | 4 ++--
 extensions/corfu-popupinfo.el | 4 ++--
 extensions/corfu-quick.el | 4 ++--
 8 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 0970a65dd7..17d1b0ac5e 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,7 +2,7 @@
 #+author: Daniel Mendler
 #+language: en
 
-* Development
+* Version 2.0 (2025-03-28)
 
 - ~corfu-quick~: Ensure that popup does not move.
 
diff --git a/corfu.el b/corfu.el
index 194793b7dc..cdf09f77f2 100644
--- a/corfu.el
+++ b/corfu.el
@@ -5,7 +5,7 @@
 ;; Author: Daniel Mendler 
 ;; Maintainer: Daniel Mendler 
 ;; Created: 2021
-;; Version: 1.7
+;; Version: 2.0
 ;; Package-Requires: ((emacs "28.1") (compat "30"))
 ;; URL: https://github.com/minad/corfu
 ;; Keywords: abbrev, convenience, matching, completion, text
diff --git a/extensions/corfu-echo.el b/extensions/corfu-echo.el
index 6d085a91eb..e41de1c4ea 100644
--- a/extensions/corfu-echo.el
+++ b/extensions/corfu-echo.el
@@ -5,8 +5,8 @@
 ;; Author: Daniel Mendler 
 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.
diff --git a/extensions/corfu-history.el b/extensions/corfu-history.el
index 2242f17756..c14a0dfb43 100644
--- a/extensions/corfu-history.el
+++ b/extensions/corfu-history.el
@@ -5,8 +5,8 @@
 ;; Author: Daniel Mendler 
 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.
diff --git a/extensions/corfu-indexed.el b/extensions/corfu-indexed.el
index 64eee771b3..374c884446 100644
--- a/extensions/corfu-indexed.el
+++ b/extensions/corfu-indexed.el
@@ -5,8 +5,8 @@
 ;; Author: Luis Henriquez-Perez , Daniel Mendler 

 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.
diff --git a/extensions/corfu-info.el b/extensions/corfu-info.el
index 439872449f..2b2c3370f9 100644
--- a/extensions/corfu-info.el
+++ b/extensions/corfu-info.el
@@ -5,8 +5,8 @@
 ;; Author: Daniel Mendler 
 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.
diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index f5114f4ff0..7df50d63aa 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -5,8 +5,8 @@
 ;; Author: Yuwei Tian , Daniel Mendler 

 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.
diff --git a/extensions/corfu-quick.el b/extensions/corfu-quick.el
index 4a98f01fd6..9f9f648671 100644
--- a/extensions/corfu-quick.el
+++ b/extensions/corfu-quick.el
@@ -5,8 +5,8 @@
 ;; Author: Luis Henriquez-Perez , Daniel Mendler 

 ;; Maintainer: Daniel Mendler 
 ;; Created: 2022
-;; Version: 1.7
-;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "1.7"))
+;; Version: 2.0
+;; Package-Requires: ((emacs "28.1") (compat "30") (corfu "2.0"))
 ;; URL: https://github.com/minad/corfu
 
 ;; This file is part of GNU Emacs.



[elpa] externals/ellama 4b6e3e34df 16/25: Merge pull request #302 from s-kostyaev/add-info-manual

2025-03-28 Thread ELPA Syncer
branch: externals/ellama
commit 4b6e3e34df444630017c3ead822a9405becb2b3e
Merge: a5bea6db68 3ea615b952
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #302 from s-kostyaev/add-info-manual

Add manual generation functionality for Ellama
---
 .gitignore   |1 +
 NEWS.org |   11 +
 README.org   |  908 +---
 doclicense.texi  |  505 
 ellama-manual.el |  118 +
 ellama.el|   10 +-
 ellama.info  | 1348 ++
 7 files changed, 2619 insertions(+), 282 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00..f825bf3c9a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+ellama.texi
diff --git a/NEWS.org b/NEWS.org
index 7974f28d1c..5bb5eec10a 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,14 @@
+* Version 1.7.0
+- Added manual generation functionality for Ellama, including a new .gitignore
+  entry to exclude ellama.texi, created ellama-manual.el for exporting an info
+  manual from the README, and added the file ellama.info.
+- Added the GNU Free Documentation License (FDL) text to README.org and updated
+  ellama-manual.el to include FDL information ensuring compliance with FDL
+  requirements. Added GNU Free Documentation License document to the project,
+  ensuring that manuals remain free in terms of freedom to copy, distribute, 
and
+  modify.
+- Refactored the marker creation logic in ellama.el to use copy-marker for both
+  beg-marker and end-marker, reducing redundancy and improving readability.
 * Version 1.6.2
 - Fix marker handling in block processing to correctly handle block boundaries
   during text processing and updated tests to include inline code translation
diff --git a/README.org b/README.org
index ba82ee2bec..eb46b331f6 100644
--- a/README.org
+++ b/README.org
@@ -1,5 +1,3 @@
-* Ellama
-
 
[[http://www.gnu.org/licenses/gpl-3.0.txt][file:https://img.shields.io/badge/license-GPL_3-green.svg]]
 
[[https://melpa.org/#/ellama][file:https://melpa.org/packages/ellama-badge.svg]]
 
[[https://stable.melpa.org/#/ellama][file:https://stable.melpa.org/packages/ellama-badge.svg]]
@@ -16,7 +14,7 @@ The name "ellama" is derived from "Emacs Large LAnguage Model
 Assistant". Previous sentence was written by Ellama itself.
 [[file:imgs/reasoning-models.gif]]
 
-** Installation
+* Installation
 
 Just ~M-x~ ~package-install~ @@html:@@Enter@@html:@@
 ~ellama~ @@html:@@Enter@@html:@@. By default it uses 
[[https://github.com/jmorganca/ollama][ollama]]
@@ -34,7 +32,7 @@ You can customize ellama configuration like this:
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
-:bind ("C-c e" . ellama-transient-main-menu)
+:bind ("C-c e" . ellama)
 ;; send last message in chat buffer with C-c C-c
 :hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
 :init (setopt ellama-auto-scroll t)
@@ -50,7 +48,7 @@ More sofisticated configuration example:
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
-:bind ("C-c e" . ellama-transient-main-menu)
+:bind ("C-c e" . ellama)
 ;; send last message in chat buffer with C-c C-c
 :hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
 :init
@@ -123,239 +121,108 @@ More sofisticated configuration example:
 (advice-add 'end-of-buffer :after #'ellama-enable-scroll))
 #+END_SRC
 
-** Commands
-
-*** ellama-chat
-
-Ask Ellama about something by entering a prompt in an interactive
-buffer and continue conversation. If called with universal argument
-(~C-u~) will start new session with llm model interactive selection.
-[[imgs/ellama-ask.gif]]
-
-*** ellama-write
-
-This command allows you to generate text using an LLM. When called
-interactively, it prompts for an instruction that is then used to
-generate text based on the context. If a region is active, the
-selected text is added to the context before generating the response.
-
-*** ellama-chat-send-last-message
-
-Send last user message extracted from current ellama chat buffer.
-
-*** ellama-ask-about
-
-Ask Ellama about a selected region or the current buffer.
-[[imgs/ellama-ask-about.gif]]
-
-*** ellama-ask-selection
-
-Send selected region or current buffer to ellama chat.
-
-*** ellama-ask-line
-
-Send current line to ellama chat.
-
-*** ellama-complete
-
-Complete text in current buffer with ellama.
-
-*** ellama-translate
-
-Ask Ellama to translate a selected region or word at the point.
-[[imgs/ellama-translate.gif]]
-
-*** ellama-translate-buffer
-
-Translate current buffer.
-
-*** ellama-define-word
-
-Find the definition of the current word using Ellama.
-[[imgs/ellama-define-word.gif]]
-
-*** ellama-summarize
-
-Summarize a selected region or the current buffer using Ellama.
-[[imgs/ellama-summarize.gif]]
-
-*** ellama-summarize-killring
-
-Summarize text from the kill ring.
-
-*** ellama-code-review
-
-Review code in a selected region or the current buffer us

[nongnu] elpa/proof-general updated (e0ec3db200 -> 809b01e845)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/proof-general.

  from  e0ec3db200 Merge pull request #808 from hendriktews/comment-tests
   new  9ca691fdab Fix problems with error on the first command of a file.
   new  4cd61e2138 Adding a test for error location at first command.
   new  809b01e845 Merge pull request #816 from Matafou/fix-first-cmd


Summary of changes:
 ci/coq-tests.el | 42 +-
 ci/test_error_loc_fst_cmd.v |  4 
 coq/coq-indent.el   |  3 ++-
 3 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 ci/test_error_loc_fst_cmd.v



[nongnu] elpa/cider 2d86379210 2/2: [docs] Update user manual about completion

2025-03-28 Thread ELPA Syncer
branch: elpa/cider
commit 2d86379210e81d02db460aca59ca877668aca0b6
Author: Oleksandr Yakushev 
Commit: Oleksandr Yakushev 

[docs] Update user manual about completion
---
 doc/modules/ROOT/pages/usage/code_completion.adoc | 86 +++
 1 file changed, 41 insertions(+), 45 deletions(-)

diff --git a/doc/modules/ROOT/pages/usage/code_completion.adoc 
b/doc/modules/ROOT/pages/usage/code_completion.adoc
index e354b587fa..68d8379bde 100644
--- a/doc/modules/ROOT/pages/usage/code_completion.adoc
+++ b/doc/modules/ROOT/pages/usage/code_completion.adoc
@@ -35,32 +35,6 @@ Normally kbd:[TAB] only indents, but now it will also do 
completion if the code
 is already properly indented.
 
 
-== Completion styles
-
-CIDER defines a specialized completion category through the 
`cider-complete-at-point` function,
-added to `completion-at-point-functions`, establishing a dedicated completion 
category named
-`cider`.
-
-The CIDER completion at point function supports most completion styles,
-including `partial-completion`, `orderless` and `flex`. It also supports a
-custom completion style that is confusingly named `cider` too. Activating it
-provides a richer set of completion candidates (see
-xref:usage/code_completion.adoc#fuzzy-candidate-matching[fuzzy candidate
-matching]).
-
-Sometimes the user may want to use a different completion style just for the 
CIDER
-complete at point function. That can be achieved by setting
-`completion-category-overrides`, overwriting the completion style of the CIDER
-complete at point function. The following snippet accomplishes that:
-
-[source,lisp]
-
-(add-to-list 'completion-category-overrides '(cider (styles basic)))
-
-
-This specifies that the `cider` completion category should employ the basic 
completion style by
-default.
-
 == Auto-completion
 
 While the standard Emacs tooling works just fine, we suggest that
@@ -139,31 +113,30 @@ without needing to hit an extra key, please customize:
 (custom-set-variables '(company-auto-update-doc t))
 
 
-=== Fuzzy candidate matching
+=== Rich candidate matching
+
+Starting with version 1.18, CIDER by default enables a custom completion style
+that provides richer and more useful candidate matching, for example:
 
-By default, CIDER will use the completion styles defined in
-`completion-styles`, the defaults being `(basic partial-completion
-emacs22)` since Emacs 23. For a better description of how those
-completion styles operates, refer to the official Emacs manual on
-https://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Styles.html[how
 completion alternatives are chosen].
+- Long vars that contain dashes by first characters of individual parts, e.g.
+  `mi` or `mai` complete to `map-indexed`.
+- Namespaces by first characters of parts, e.g. `cji` completes to
+  `clojure.java.io`.
+- Not imported classnames by their short name prefixes, e.g. `BiFun` completes
+  to `java.util.function.BiFunction`.
+
+You can learn all completion scenarios and features
+https://github.com/alexander-yakushev/compliment/wiki/Examples[here].
 
-CIDER provides a function to enable the `cider` completion style for 
CIDER-specific
-completions. If you wish to enable that, you can add this to your config:
+If you only want to receive standard prefix-restricted completions (where the
+candidate must contain the prefix at the beginning verbatim), you can disable
+this feature by adding this to your config:
 
 [source,lisp]
 
-(cider-enable-cider-completion-style)
+(cider-enable-cider-completion-style -1)
 
 
-This adds the `cider` completion style for CIDER buffers.
-
-Now, `company-mode` (and other completion packages like `corfu`) will
-accept certain fuzziness when matching candidates against the
-prefix. For example, typing `mi` will show you `map-indexed` as one of
-the possible completion candidates and `cji` will complete to
-`clojure.java.io`. Different completion examples are shown
-https://github.com/alexander-yakushev/compliment/wiki/Examples[here].
-
 === Completion annotations
 
 Completion candidates will be annotated by default with an abbreviation
@@ -178,6 +151,29 @@ image::completion-annotations.png[Completion Annotations]
 TIP: Completion annotations can be disabled by setting
 `cider-annotate-completion-candidates` to `nil`.
 
+=== Completion styles
+
+The CIDER completion at point function supports most completion styles,
+including `partial-completion`, `orderless`, `flex`, and its own custom
+completion style named `cider`. The latter is enabled by default. Sometimes the
+user may want to use a different completion style for the CIDER complete at
+point function. That can be achieved by setting 
`completion-category-overrides`,
+overwriting the completion style of the CIDER complete at point function. The
+following snippet accomplishes that:
+
+[source,lisp]
+
+(add-to-list 'completion-category-overrides '(cider (styles basic)))
+
+
+For a better description of how those 

[nongnu] elpa/cider updated (65383b8d1e -> 2d86379210)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/cider.

  from  65383b8d1e [completion] Disable client-side sorting
   new  dbc1a6fcc0 [completion] Enable cider-completion-style by default
   new  2d86379210 [docs] Update user manual about completion


Summary of changes:
 CHANGELOG.md  |  1 +
 cider-completion.el   | 42 +--
 cider-mode.el |  1 +
 doc/modules/ROOT/pages/usage/code_completion.adoc | 86 +++
 4 files changed, 65 insertions(+), 65 deletions(-)



[nongnu] elpa/cider dbc1a6fcc0 1/2: [completion] Enable cider-completion-style by default

2025-03-28 Thread ELPA Syncer
branch: elpa/cider
commit dbc1a6fcc0003bab23b1b2b47e72cdfafce08bf4
Author: Oleksandr Yakushev 
Commit: Oleksandr Yakushev 

[completion] Enable cider-completion-style by default
---
 CHANGELOG.md|  1 +
 cider-completion.el | 42 ++
 cider-mode.el   |  1 +
 3 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9fa7a0d9fd..0f2167d38f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@
 - [#3790](https://github.com/clojure-emacs/cider/issues/3790): Stacktrace: 
show messages and data for all exception causes by default.
 - [#3789](https://github.com/clojure-emacs/cider/issues/3789): Refactor and 
simplify exception handling.
 - [#3789](https://github.com/clojure-emacs/cider/issues/3796): Completion: 
disable client-side sorting (defer to backend-provided candidate order).
+- [#3797](https://github.com/clojure-emacs/cider/issues/3797): Completion: 
enable `cider-completion-style` by default (this enables richer completion 
suggestions where candidates don't have to strictly match the prefix).
 
 ## 1.17.1 (2025-02-25)
 
diff --git a/cider-completion.el b/cider-completion.el
index 325a3868a2..e55216ee91 100644
--- a/cider-completion.el
+++ b/cider-completion.el
@@ -283,27 +283,31 @@ DEPRECATED: please use 
`cider-enable-cider-completion-style' instead."
   (interactive)
   (cider-enable-cider-completion-style))
 
-(defun cider-enable-cider-completion-style ()
-  "Enables `cider' completion style for CIDER in all buffers.
+(defun cider-enable-cider-completion-style (&optional arg)
+  "Enables or disables `cider' completion style for CIDER in all buffers.
 
 This style supports non-prefix completion candidates returned by the
-completion backend.  Only affects the `cider' completion category."
+completion backend.  Only affects the `cider' completion category.  If ARG
+is `1' or nil, enables the custom completion style; if `-1', disables it."
   (interactive)
-  (let* ((cider (assq 'cider completion-category-overrides))
- (found-styles (assq 'styles cider))
- (new-styles (if found-styles
- (cons 'styles (cons 'cider (cdr found-styles)))
-   '(styles cider basic)))
- (new-cider (if cider
-(cons 'cider
-  (cons new-styles
-(seq-remove (lambda (x) (equal 'styles 
(car x)))
-(cdr cider
-  (list 'cider new-styles)))
- (new-overrides (cons new-cider
-  (seq-remove (lambda (x) (equal 'cider (car x)))
-  completion-category-overrides
-(setq completion-category-overrides new-overrides)))
+  (if (= arg -1)
+  (setq completion-category-overrides
+(assq-delete-all 'cider completion-category-overrides))
+(let* ((cider (assq 'cider completion-category-overrides))
+   (found-styles (assq 'styles cider))
+   (new-styles (if found-styles
+   (cons 'styles (cons 'cider (cdr found-styles)))
+ '(styles cider basic)))
+   (new-cider (if cider
+  (cons 'cider
+(cons new-styles
+  (seq-remove (lambda (x) (equal 'styles 
(car x)))
+  (cdr cider
+(list 'cider new-styles)))
+   (new-overrides (cons new-cider
+(seq-remove (lambda (x) (equal 'cider (car x)))
+completion-category-overrides
+  (setq completion-category-overrides new-overrides
 
 (make-obsolete 'cider-company-enable-fuzzy-completion 
'cider-enable-cider-completion-style "1.17.0")
 
@@ -312,8 +316,6 @@ completion backend.  Only affects the `cider' completion 
category."
 
 Only affects the `cider' completion category.`"
   (interactive)
-  (when (< emacs-major-version 27)
-(user-error "`cider-enable-flex-completion' requires Emacs 27 or later"))
   (let ((found-styles (when-let ((cider (assq 'cider 
completion-category-overrides)))
 (assq 'styles cider)))
 (found-cycle (when-let ((cider (assq 'cider 
completion-category-overrides)))
diff --git a/cider-mode.el b/cider-mode.el
index 64567b46a5..8e5af6c2d0 100644
--- a/cider-mode.el
+++ b/cider-mode.el
@@ -1098,6 +1098,7 @@ property."
 (setq-local clojure-expected-ns-function #'cider-expected-ns)
 (when cider-use-xref
   (add-hook 'xref-backend-functions #'cider--xref-backend 
cider-xref-fn-depth 'local))
+(cider-enable-cider-completion-style 1)
 (setq next-error-function #'cider-jump-to-compilation-error))
 ;; Mode cleanup
 (mapc #'kill-local-variable '(next-error-function



[nongnu] elpa/proof-general 4cd61e2138 2/3: Adding a test for error location at first command.

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 4cd61e2138c75a3512f0dcbb71dc6684ef06ee26
Author: Pierre Courtieu 
Commit: Pierre Courtieu 

Adding a test for error location at first command.
---
 ci/coq-tests.el | 42 +-
 ci/test_error_loc_fst_cmd.v |  4 
 2 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/ci/coq-tests.el b/ci/coq-tests.el
index 78e53dcf93..65bbdd9705 100644
--- a/ci/coq-tests.el
+++ b/ci/coq-tests.el
@@ -446,7 +446,47 @@ For example, COMMENT could be (*test-definition*)"
(coq-test-goto-before "(*proof*)")
(backward-char 3)
(should (span-at (point) 'proofusing))
- 
+
+
+
+(ert-deftest 110_coq-test-regression_error_on_fst_cmd ()
+  "Test error highlghting in the first line."
+  (coq-fixture-on-file
+   (coq-test-full-path "test_error_loc_fst_cmd.v")
+   (lambda ()
+ (coq-test-goto-before " (*after-error*)")
+ ;; redefining this function locally so that self removing spans
+ ;; remain longer. Cf span.el
+ (cl-letf (((symbol-function 'span-make-self-removing-span)
+(lambda (beg end &rest props)
+  (let ((ol (span-make beg end)))
+(while props
+  (overlay-put ol (car props) (cadr props))
+  (setq props (cddr props)))
+(add-timeout 10 'delete-overlay ol)
+ol
+   
+   (let ((proof-cmd-point (save-excursion
+(coq-test-goto-before "(*after-error*)")
+(re-search-backward "bar" 
+ (coq-test-goto-after " (*after-error*)")
+ (proof-goto-point)
+ (proof-shell-wait)
+ (coq-should-buffer-string "Error: The reference bar was not found in 
the current environment.")
+ ;; checking that there is an overlay with warning face
+ ;; exactly on "bar". WARNING: this overlay lasts only for 12
+ ;; secs (thx to the add-timeout above), if this test is done
+ ;; in a (very) slow virtual machine this may fail.
+ (should (equal (point) proof-cmd-point))
+ (let ((sp (span-at proof-cmd-point 'face)))
+   (should sp)
+   (should (equal (span-property sp 'face) 'proof-warning-face))
+   (should (equal (span-start sp) proof-cmd-point))
+   ;; coq-8.11 used to hace ending ps shifted by one
+   (should (or (equal (span-end sp) (+ proof-cmd-point (length "bar")))
+   (equal (span-end sp) (+ 1 proof-cmd-point (length 
"bar")
+   )
+ (should (equal (proof-queue-or-locked-end) (point-min 
 (provide 'coq-tests)
 
 ;;; coq-tests.el ends here
diff --git a/ci/test_error_loc_fst_cmd.v b/ci/test_error_loc_fst_cmd.v
new file mode 100644
index 00..72c9541aa1
--- /dev/null
+++ b/ci/test_error_loc_fst_cmd.v
@@ -0,0 +1,4 @@
+Definition foo:= bar. (*after-error*)
+
+Definition foobar := nat.
+



[nongnu] elpa/proof-general 9ca691fdab 1/3: Fix problems with error on the first command of a file.

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 9ca691fdaba77074853b9b743c944564ca608f43
Author: Pierre Courtieu 
Commit: Pierre Courtieu 

Fix problems with error on the first command of a file.
---
 coq/coq-indent.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/coq/coq-indent.el b/coq/coq-indent.el
index b1e3e0425b..7ceff93281 100644
--- a/coq/coq-indent.el
+++ b/coq/coq-indent.el
@@ -208,7 +208,8 @@ position."
   (while (coq-looking-at-comment) ;; we are looking for ". " so this is enough
 (re-search-backward (concat "\\(?2:" 
coq-simple-cmd-ender-prefix-regexp-backward "\\)\\.\\s-") (point-min) 'dummy))
   ;; unless we reached point-min, jump over the "."
-  (when (match-end 2) (goto-char (match-end 2)) (forward-char 1))
+  (when (and (not (eq (point) (point-min))) (match-end 2))
+(goto-char (match-end 2)) (forward-char 1))
   (point))
 
 (defun coq-find-start-of-cmd ()



[elpa] externals/minuet 88975cd910 58/97: doc: update troubleshooting section.

2025-03-28 Thread ELPA Syncer
branch: externals/minuet
commit 88975cd9104d401e143f26ef33c2881f105b9971
Author: Milan Glacier 
Commit: Milan Glacier 

doc: update troubleshooting section.
---
 README.md | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index 233adc49d5..61dd1c90b0 100644
--- a/README.md
+++ b/README.md
@@ -170,11 +170,11 @@ function should be fast as it will be called with each 
completion request.
 # Selecting a Provider or Model
 
 The `gemini-flash` and `codestral` models offer high-quality output with free
-and fast processing. For optimal quality, consider using the `deepseek-chat`
-model, which is compatible with both `openai-fim-compatible` and
-`openai-compatible` providers. For local LLM inference, you can deploy either
-`qwen-2.5-coder` or `deepseek-coder-v2` through Ollama using the
-`openai-fim-compatible` provider.
+and fast processing. For optimal quality (albeit slower generation speed),
+consider using the `deepseek-chat` model, which is compatible with both
+`openai-fim-compatible` and `openai-compatible` providers. For local LLM
+inference, you can deploy either `qwen-2.5-coder` or `deepseek-coder-v2` 
through
+Ollama using the `openai-fim-compatible` provider.
 
 # Prompt
 
@@ -515,12 +515,12 @@ If your setup failed, there are two most likely reasons:
 1. You are setting the API key to a literal value instead of the environment
variable name.
 2. You are using a model or a context window that is too large, causing
-   completion items to timeout before returning any tokens. It is recommended
-   to:
-   - Test with manual completion first
-   - Use a smaller context window (e.g., `context_window = 768`)
+   completion items to timeout before returning any tokens. This is 
particularly
+   common with local LLM. It is recommended to start with the following 
settings
+   to have a better understanding of your provider's inference speed.
+   - Begin by testing with manual completions.
+   - Use a smaller context window (e.g., `context-window = 768`)
- Use a smaller model
-   - Set a longer request timeout (e.g., `request_timeout = 5`) to evaluate 
your
- provider's inference latency.
+   - Set a longer request timeout (e.g., `request-timeout = 5`)
 
 To diagnose issues, examine the buffer content from `*minuet*`.



[elpa] externals/minuet 32085f5efc 24/97: fix: fix api-key fetching for OpenAI provider.

2025-03-28 Thread ELPA Syncer
branch: externals/minuet
commit 32085f5efcee417c2adae58ca3191f36d9c27cbd
Author: Milan Glacier 
Commit: Milan Glacier 

fix: fix api-key fetching for OpenAI provider.
---
 minuet.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/minuet.el b/minuet.el
index 19f2bda843..6e909a0cd4 100644
--- a/minuet.el
+++ b/minuet.el
@@ -841,7 +841,7 @@ to be called when completion items arrive."
   (plz 'post (plist-get options :end-point)
   :headers `(("Content-Type" . "application/json")
  ("Accept" . "application/json")
- ("Authorization" . ,(concat "Bearer " (getenv (plist-get 
options :api-key)
+ ("Authorization" . ,(concat "Bearer " 
(minuet--get-api-key (plist-get options :api-key)
   :timeout minuet-request-timeout
   :body (json-serialize `(,@(plist-get options :optional)
   :stream t



[elpa] externals/dape 5fba6b59a6 3/3: Improve customization for dape-info-variable-table-row-config

2025-03-28 Thread ELPA Syncer
branch: externals/dape
commit 5fba6b59a68009144be445791246ba354c9bafbd
Author: Daniel Pettersson 
Commit: Daniel Pettersson 

Improve customization for dape-info-variable-table-row-config
---
 dape.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/dape.el b/dape.el
index 19b5ff7bd9..4fb052f14c 100644
--- a/dape.el
+++ b/dape.el
@@ -623,7 +623,12 @@ column.  A value of 0 means there is no limit.
 
 Additionally, the order the element in the ALIST determines the
 left-to-right display order of the properties."
-  :type '(alist :key-type symbol :value-type integer))
+  :type '(alist :key-type
+(choice (const :tag "Name" name)
+(const :tag "Value" value)
+(const :tag "Type" type))
+:value-type (choice (const :tag "Full" 0)
+(natnum :tag "Width"
 
 (defcustom dape-info-thread-buffer-locations t
   "Show file information or library names in threads buffer."



[elpa] externals/matlab-mode e92fe818ac 1/2: Add support TAB completion in matlab-shell for R2025a

2025-03-28 Thread ELPA Syncer
branch: externals/matlab-mode
commit e92fe818acd71c4bead7bdf837e791b5aa456d11
Author: John Ciolfi 
Commit: John Ciolfi 

Add support TAB completion in matlab-shell for R2025a
---
 matlab-shell.el   | 117 +-
 toolbox/emacsdocomplete.m | 101 ---
 toolbox/emacsdocomplete.p | Bin 0 -> 1146 bytes
 3 files changed, 74 insertions(+), 144 deletions(-)

diff --git a/matlab-shell.el b/matlab-shell.el
index 6e8d7f5624..55369d6972 100644
--- a/matlab-shell.el
+++ b/matlab-shell.el
@@ -1,7 +1,7 @@
 ;;; matlab-shell.el --- Run MATLAB in an inferior process -*- lexical-binding: 
t -*-
-
-;; Copyright (C) 2024 Free Software Foundation, Inc.
-
+;;
+;; Copyright 2019-2024 Eric Ludlam
+;;
 ;; Author: Eric Ludlam 
 ;;
 ;; This program is free software; you can redistribute it and/or
@@ -1169,49 +1169,80 @@ STR is a command substring to complete."
  (cmd-text-to-replace "")
  (completions nil))
 (with-current-buffer msbn
-  (if (not (matlab-on-prompt-p))
-  (error "MATLAB shell must be non-busy to do that"))
+  (when (not (matlab-on-prompt-p))
+(user-error "MATLAB shell must be non-busy to do that"))
+
   (setq output (matlab-shell-collect-command-output cmd))
-  (if (not (string-match "emacs_completions_output =" output))
-  (error "Internal error, '%s' returned unexpected output, %s" cmd 
output))
-  (setq output (substring output (match-end 0)))
-  (when (string-match "^'\\([^']+\\)' --> '\\([^']*\\)'" output)
-;; 'CMD_TEXT_TO_REPLACE' --> 'REPLACEMENT_TEXT'
-;; 'OPTION1'
-;; 'OPTION2'
-;; ...
-;; Note, the CMD_TEXT_TO_REPLACE line is only present when there needs
-;; to be replacement, e.g. imagine a command that takes glob patterns
-;;   >> mycmd foo*ba
-;;   'foo*-bar' --> 'foo-and-bar'
-;; '-or-goo'
-;; '-or-too'
-;; which completes to either 'foo-and-bar-or-goo' OR 
'foo-and-bar-or-too'.
-;; If there is only one completion that needs replacement, don't have 
options:
-;;   >> mycmd foo*ba*-too
-;;   'foo*ba*-too' --> 'foo-and-bar-or-too'
-;; The replacement line is not present when the completion just 
appends to the
-;; command str, e.g.
-;;   >> mycmd foo-and-bar
-;;   '-or-goo'
-;;   '-or-too'
-(setq cmd-text-to-replace (match-string 1 output))
-(setq replacement-text (match-string 2 output))
-(setq output (substring output (match-end 0
-  ;; Parse the output string.
-  (while (string-match "'" output)
-;; Hack off the preceding quote
+
+  (cond
+   ;; Case: R2025a and later
+   ((string-match 
"^\s*Completions-Lisp:[[:space:]]*\\('(\\(?:.\\|\n\\)+)\\)[[:space:]]*$"
+  output)
+;; Completions that can be provided to `display-completion-list'
+(let ((completions-str (match-string 1 output)))
+  (setq completions (eval (car (read-from-string completions-str))
+
+
+   ;; Case: R2024b or have "CMD -complete ARGS" results
+   ((string-match "^\s*emacs_completions_output =" output)
 (setq output (substring output (match-end 0)))
-(string-match "'" output)
-;; we are making a completion list, so that is a list of lists.
-(setq completions (cons (list (substring output 0 (match-beginning 0)))
-completions)
-  output (substring output (match-end 0
-  ;; Return them
+
+(when (string-match "^'\\([^']+\\)' --> '\\([^']*\\)'" output)
+  ;; "CMD -complete ARGS" results:
+  ;;STR is of form "CMD ARGS" where CMD is a *.m file and it 
contains the string
+  ;;"SUPPORTS_DASH_COMPLETE", in this case emacsdocomplete will 
run "CMD -complete ARGS"
+  ;;providing replacements.
+  ;;
+  ;; 'CMD_TEXT_TO_REPLACE' --> 'REPLACEMENT_TEXT'
+  ;; 'OPTION1'
+  ;; 'OPTION2'
+  ;; ...
+  ;; Note, the CMD_TEXT_TO_REPLACE line is only present when there 
needs
+  ;; to be replacement, e.g. imagine a command that takes glob patterns
+  ;;   >> mycmd foo*ba
+  ;;   'foo*-bar' --> 'foo-and-bar'
+  ;; '-or-goo'
+  ;; '-or-too'
+  ;; which completes to either 'foo-and-bar-or-goo' OR 
'foo-and-bar-or-too'.
+  ;; If there is only one completion that needs replacement, don't 
have options:
+  ;;   >> mycmd foo*ba*-too
+  ;;   'foo*ba*-too' --> 'foo-and-bar-or-too'
+  ;; The replacement line is not present when the completion just 
appends to the
+  ;; command str, e.g.
+  ;;   >> mycmd foo-and-bar
+  ;;   '-or-goo'
+  ;;   '-or-too'
+  (setq cmd-text-to-replace (match-string 1 output))
+  

[elpa] externals/dape f2ca9c53bf 1/3: Change dape repl welcome message

2025-03-28 Thread ELPA Syncer
branch: externals/dape
commit f2ca9c53bf17fc992272daa85e1d3801936f1909
Author: Daniel Pettersson 
Commit: Daniel Pettersson 

Change dape repl welcome message
---
 dape.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dape.el b/dape.el
index 7cdf2df541..f895f6d6a1 100644
--- a/dape.el
+++ b/dape.el
@@ -4778,7 +4778,7 @@ If EXPRESSIONS is non blank add or remove expression to 
watch list."
 'comint-output-filter)
 (insert
  (format
-  "* Welcome to Dape REPL! *
+  "* Welcome to the Dape REPL *
 Available Dape commands: %s
 Empty input will rerun last command.\n\n"
   (mapconcat (pcase-lambda (`(,str . ,command))



[elpa] externals/dape updated (0dee0cfd97 -> 5fba6b59a6)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/dape.

  from  0dee0cfd97 Using future history for dape-info-variable-edit
   new  f2ca9c53bf Change dape repl welcome message
   new  70f99a7a8c Formatting fixups
   new  5fba6b59a6 Improve customization for 
dape-info-variable-table-row-config


Summary of changes:
 dape.el | 67 -
 1 file changed, 33 insertions(+), 34 deletions(-)



[elpa] externals/matlab-mode updated (89b585e6d9 -> 42fabf83c6)

2025-03-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/matlab-mode.

  from  89b585e6d9 fix emacs 30 warnings
   new  e92fe818ac Add support TAB completion in matlab-shell for R2025a
   new  42fabf83c6 Correct copyright in matlab-shell.el


Summary of changes:
 matlab-shell.el   | 113 +-
 toolbox/emacsdocomplete.m | 101 -
 toolbox/emacsdocomplete.p | Bin 0 -> 1146 bytes
 3 files changed, 72 insertions(+), 142 deletions(-)
 delete mode 100644 toolbox/emacsdocomplete.m
 create mode 100644 toolbox/emacsdocomplete.p



[nongnu] elpa/slime 1b09820154: slime-parse-context: fix defmethod parsing.

2025-03-28 Thread ELPA Syncer
branch: elpa/slime
commit 1b098201545a473d3f3e6eaab18a56556706a0d5
Author: Stas Boukarev 
Commit: Stas Boukarev 

slime-parse-context: fix defmethod parsing.
---
 contrib/slime-parse.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/slime-parse.el b/contrib/slime-parse.el
index c89e1f533e..cd5451c529 100644
--- a/contrib/slime-parse.el
+++ b/contrib/slime-parse.el
@@ -168,8 +168,8 @@ For other contexts we return the symbol at point."
(backward-up-list 1)
(slime-parse-context `(setf ,name)))
   ((slime-in-expression-p '(defmethod *))
-   (unless (looking-at "\\s ")
- (forward-sexp 1)) ; skip over the methodname
+   (slime-beginning-of-list)
+   (forward-sexp 2)
(let (qualifiers arglist)
  (cl-loop for e = (read (current-buffer))
   until (listp e) do (push e qualifiers)



[elpa] externals/dape 70f99a7a8c 2/3: Formatting fixups

2025-03-28 Thread ELPA Syncer
branch: externals/dape
commit 70f99a7a8c186ced234f9670a68f5d43fb1b1b9a
Author: Daniel Pettersson 
Commit: Daniel Pettersson 

Formatting fixups
---
 dape.el | 58 ++
 1 file changed, 26 insertions(+), 32 deletions(-)

diff --git a/dape.el b/dape.el
index f895f6d6a1..19b5ff7bd9 100644
--- a/dape.el
+++ b/dape.el
@@ -4246,42 +4246,36 @@ calls should continue.  If NO-HANDLES is non nil skip + 
- handles."
  (path (cons name path))
  (expanded-p (funcall test-expanded path))
  row)
-(setq name
-  (propertize name
+(setq
+ name (propertize name
   'font-lock-face 'font-lock-variable-name-face
   'mouse-face 'highlight
   'help-echo "mouse-2: create or remove watch expression"
   'keymap dape-info-variable-name-map)
-  type
-  (propertize type 'font-lock-face 'font-lock-type-face)
-  value
-  (propertize value
-  'mouse-face 'highlight
-  'help-echo "mouse-2: edit value"
-  'keymap dape-info-variable-value-map)
-  prefix
-  (cond
-   (no-handles prefix)
-   ((zerop (or (plist-get object :variablesReference) 0))
-(concat prefix "  "))
-   ((and expanded-p (plist-get object :variables))
-(concat
- (propertize (concat prefix "-")
- 'mouse-face 'highlight
- 'help-echo "mouse-2: contract"
- 'keymap dape-info-variable-prefix-map)
- " "))
-   (t
-(concat
- (propertize (concat prefix "+")
- 'mouse-face 'highlight
- 'help-echo "mouse-2: expand"
- 'keymap dape-info-variable-prefix-map)
- " "
-(setq row (dape--info-locals-table-columns-list
-   `((name  . ,name)
- (type  . ,type)
- (value . ,value
+ type (propertize type 'font-lock-face 'font-lock-type-face)
+ value (propertize value
+   'mouse-face 'highlight
+   'help-echo "mouse-2: edit value"
+   'keymap dape-info-variable-value-map)
+ prefix (cond (no-handles prefix)
+  ((zerop (or (plist-get object :variablesReference) 0))
+   (concat prefix "  "))
+  ((and expanded-p (plist-get object :variables))
+   (concat
+(propertize (concat prefix "-")
+'mouse-face 'highlight
+'help-echo "mouse-2: contract"
+'keymap dape-info-variable-prefix-map)
+" "))
+  ((concat
+(propertize (concat prefix "+")
+'mouse-face 'highlight
+'help-echo "mouse-2: expand"
+'keymap dape-info-variable-prefix-map)
+" ")))
+ row (dape--info-locals-table-columns-list `((name  . ,name)
+ (type  . ,type)
+ (value . ,value
 (setcar row (concat prefix (car row)))
 (gdb-table-add-row table
(if dape-info-variable-table-aligned



[nongnu] elpa/proof-general 28497cd899 05/10: Fix low level code to find the start of a command.

2025-03-28 Thread ELPA Syncer
branch: elpa/proof-general
commit 28497cd899d11948ceff601929d062f8a92524df
Author: Pierre Courtieu 
Commit: Pierre Courtieu 

Fix low level code to find the start of a command.
---
 ci/test-indent/indent-tac.v | 13 +
 coq/coq-indent.el   |  4 ++--
 coq/coq.el  |  5 -
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/ci/test-indent/indent-tac.v b/ci/test-indent/indent-tac.v
index 4a27e7038b..77a9987685 100644
--- a/ci/test-indent/indent-tac.v
+++ b/ci/test-indent/indent-tac.v
@@ -269,6 +269,19 @@ Module M1.
 { auto.
 }
   }
+  1:{
+destruct n.
+2:{ auto.
+}
+{ auto. }
+  }
+  {
+destruct n.
+2:{
+  auto. }
+{ auto.
+}
+  }
 Qed.
   End M2.
 End M1.
diff --git a/coq/coq-indent.el b/coq/coq-indent.el
index b1e3e0425b..cc066e694e 100644
--- a/coq/coq-indent.el
+++ b/coq/coq-indent.el
@@ -216,10 +216,10 @@ position."
 (coq-find-previous-endcmd)
 (while (not something-found)
   (forward-comment (point-max))
-  (if (and (looking-at "\\({\\|}\\|\\++\\|\\*+\\|-+\\)")
+  (if (and (looking-at "\\(?1:{\\|}\\|\\++\\|\\*+\\|-+\\|[0-9]+\\s-*:{\\)")
(< (point) p) ;; if we are after the starting point then 
anything is the start of the current command, even "#" or ".".
)
-  (forward-char 1)
+  (goto-char (match-end 1))
 (setq something-found t
   (point))
 
diff --git a/coq/coq.el b/coq/coq.el
index 4eb4938106..130a948e68 100644
--- a/coq/coq.el
+++ b/coq/coq.el
@@ -2500,13 +2500,15 @@ tacitcs like destruct and induction reuse hypothesis 
names by
 default, which makes the detection of new hypothesis incorrect.
 the hack consists in adding the \"!\" modifier on the argument
 destructed, so that it is left in the goal and the name cannot be
-reused.  We also had a \"clear\" at the end of the tactic so that
+reused.  We also add a \"clear\" at the end of the tactic so that
 the whole tactic behaves correctly.
 Warning: this makes the error messages (and location) wrong.")
 
 (defun coq-hack-cmd-for-infoH (s)
   "return the tactic S hacked with infoH tactical."
   (cond
+   ;; We cannot rebuild the sub-patterns from the final goal, so ';' is not
+   ;; supported. Only single tactics like destruct.
((string-match ";" s) s) ;; composed tactic cannot be treated
((string-match coq-auto-as-hack-hyp-name-regex s)
 (concat "infoH " (match-string 1 s) " (" (match-string 2 s) ")."))
@@ -2707,6 +2709,7 @@ Used for automatic insertion of \"Proof using\" 
annotations.")
   (interactive)
   (save-excursion
 (goto-char (proof-unprocessed-begin))
+(forward-char 1)
 (coq-find-real-start)
 (let* ((pt (point))
(_ (coq-script-parse-cmdend-forward))



  1   2   >