[nongnu] elpa/gptel 35d53cada3: gptel-ollama: Fix docstring (#752)

2025-03-29 Thread ELPA Syncer
branch: elpa/gptel
commit 35d53cada3e1fc323b6a18739368e85a82a9e419
Author: Henrik Ahlgren 
Commit: GitHub 

gptel-ollama: Fix docstring (#752)

* gptel-ollama.el (gptel--request-data): Replace "ChatGPT" with
"Ollama" in docstring for ollama method.
---
 gptel-ollama.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gptel-ollama.el b/gptel-ollama.el
index 1b530ed0a7..006d73b246 100644
--- a/gptel-ollama.el
+++ b/gptel-ollama.el
@@ -93,7 +93,7 @@ Store response metadata in state INFO."
finally (plist-put info :tool-use tool-use)))
 
 (cl-defmethod gptel--request-data ((backend gptel-ollama) prompts)
-  "JSON encode PROMPTS for sending to ChatGPT."
+  "JSON encode PROMPTS for sending to Ollama."
   (when gptel--system-message
 (push (list :role "system"
 :content gptel--system-message)



[elpa] externals/matlab-mode 9f129aa243: Restore emacsdocomplete.m, remove emacsdocomplete.p

2025-03-29 Thread ELPA Syncer
branch: externals/matlab-mode
commit 9f129aa24307d956327c9cda3d1dfd66c784d6eb
Author: John Ciolfi 
Commit: John Ciolfi 

Restore emacsdocomplete.m, remove emacsdocomplete.p

The API to get completions in MATLAB R2025a release has changed.  We are 
looking for a
solution. Until then disable TAB completions in matlab-shell when running 
MATLAB R2025a.
---
 toolbox/emacsdocomplete.m | 133 ++
 toolbox/emacsdocomplete.p | Bin 1146 -> 0 bytes
 2 files changed, 133 insertions(+)

diff --git a/toolbox/emacsdocomplete.m b/toolbox/emacsdocomplete.m
new file mode 100644
index 00..8b28ad398d
--- /dev/null
+++ b/toolbox/emacsdocomplete.m
@@ -0,0 +1,133 @@
+% Copyright (C) 2010-2025 Free Software Foundation, Inc.
+%
+% Author: Eric Ludlam , John Ciolfi 
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program.  If not, see .
+
+function emacsdocomplete(substring)
+% EMACSDOCOMPLETE - get completions of SUBSTRING
+%
+% This is used by Emacs TAB in matlab-shell to provide possible completions.
+%
+
+if UseDashComplete(substring)
+return
+end
+
+persistent verNum;
+if isempty(verNum)
+v = ver('MATLAB'); %#ok<*VERMATLAB>
+verNum = str2double(v.Version);
+end
+
+if verNum >= 25 % R2025a and later
+
+% Completions TBD
+disp(['Completions-Lisp:', newline, '''(']);
+disp(')');
+
+else % R2024b and earlier
+
+if verNum < 8.4
+% Pre R2014b: partial_string
+extracmd = '';
+else
+% Post R2014b: partial_string, caret, num
+extracmd = [ ', ' num2str(length(substring)) ',0' ];
+end
+
+substringQuoted = strrep(substring, , '');
+
+command = ...
+['matlabMCRprocess_emacs = com.mathworks.jmi.MatlabMCR;' ...
+ 'emacs_completions_output = 
matlabMCRprocess_emacs.mtFindAllTabCompletions(''' ...
+ substringQuoted  extracmd '),' ...
+ 
'clear(''matlabMCRprocess_emacs'',''emacs_completions_output'');'];
+
+% Completion engine needs to run in the base workspace to know what 
the variables you have
+% to work with are.
+evalin('base', command);
+
+end
+
+end
+
+
+function done = UseDashComplete(substring)
+% UseDashComplete - given SUBSTRING 'CMD ARGS', run 'CMD -complete ARGS' to 
get completions?
+%
+% For substring of form 'cmd ARGS', use 'cmd -complete ARGS' to get 
completions if cmd is a *.m file
+% and it contains the string 'SUPPORTS_DASH_COMPLETE'.
+%   1. In a comment, place the string "SUPPORTS_DASH_COMPLETE"
+%   2. Handle the -complete argument which produces completion strings
+%  of the form:
+%  'CMD_TEXT_TO_REPLACE' --> 'REPLACEMENT_TEXT'
+%  'OPTION1'
+%  'OPTION2'
+%  ...
+% Example
+%   >> cd2 -complete $d/s*
+%   '$d/s*' --> '/local/USER/'
+%   'sub1'
+%   'sub2'
+%   'sub3'
+%
+% See details in `matlab-shell-completion-list'.
+%
+
+persistent completeSw; % if completeSw(cmd), then supports -complete
+if isempty(completeSw)
+completeSw=containers.Map();
+end
+
+done = false;
+
+cmd = regexp(substring, '^(\w+)\s+[^\)]', 'tokens');
+if isscalar(cmd)
+cmd=cmd{1}{1};
+
+if completeSw.isKey(cmd)
+supportsDashComplete = completeSw(cmd);
+else
+supportsDashComplete = false; % assume
+f = which(cmd);
+if regexp(f,'\.m$')
+fid=fopen(f, 'r');
+if fid ~= -1
+while true
+l = fgetl(fid);
+if ~ischar(l), break, end
+if regexp(l,'SUPPORTS_DASH_COMPLETE')
+supportsDashComplete = true;
+break
+end
+end
+fclose(fid);
+end
+end
+completeSw(cmd) = supportsDashComplete;
+end
+
+if supportsDashComplete
+% For /path/to/cmd.ext we have /path/to/cmd.complete which
+% signals that we can get the completions by calling
+%CMD -complete ARGS
+completeCmd = regexprep(substring,'^(\w+)','$1 -complete');
+disp('emacs_completions_output =');
+evalin

[elpa] externals/compat updated (c89bba6524 -> 4e60f48b37)

2025-03-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/compat.

  from  c89bba6524 ; .dir-locals.el - indent-tabs-mode=nil should not apply 
to makefiles
   new  8d896bf8f7 compat-30: Add oklab color functions
   new  4e60f48b37 compat-tests--color-approx-equal: Fix naming convention


Summary of changes:
 NEWS.org|  4 
 compat-30.el| 44 
 compat-tests.el | 40 
 compat.texi | 24 
 4 files changed, 112 insertions(+)



[elpa] externals/compat 8d896bf8f7 1/2: compat-30: Add oklab color functions

2025-03-29 Thread ELPA Syncer
branch: externals/compat
commit 8d896bf8f7542b14480c005e8ed5e87e06a506fc
Author: Daniel Mendler 
Commit: Daniel Mendler 

compat-30: Add oklab color functions

Co-authored-by: Elijah Gabe Pérez 
---
 NEWS.org|  4 
 compat-30.el| 44 
 compat-tests.el | 40 
 compat.texi | 24 
 4 files changed, 112 insertions(+)

diff --git a/NEWS.org b/NEWS.org
index 5a5832f5c8..34c30818e9 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -2,6 +2,10 @@
 #+link:compat-gh   https://github.com/emacs-compat/compat/issues/
 #+options: toc:nil num:nil author:nil
 
+* Development
+
+- compat-30: Add oklab color functions.
+
 * Release of "Compat" Version 30.0.2.0
 
 - compat-30: Rename =trusted-files= to =trusted-content=.
diff --git a/compat-30.el b/compat-30.el
index cb6e44249d..2decb93711 100644
--- a/compat-30.el
+++ b/compat-30.el
@@ -215,6 +215,50 @@ details."
   (funcall completion-lazy-hilit-fn (copy-sequence str))
 str))
 
+ Defined in color.el
+
+(compat-defun color-oklab-to-xyz (l a b) ;; 
+  "Convert the OkLab color represented by L A B to CIE XYZ.
+Oklab is a perceptual color space created by Björn Ottosson
+.  It has the property that
+changes in the hue and saturation of a color can be made while maintaining
+the same perceived lightness."
+  :feature color
+  (let ((ll (expt (+ (* 1.0 l) (* 0.39633779 a) (* 0.21580376 b)) 3))
+(mm (expt (+ (* 1.0001 l) (* -0.10556134 a) (* -0.06385417 b)) 3))
+(ss (expt (+ (* 1.0005 l) (* -0.08948418 a) (* -1.29148554 b)) 3)))
+(list (+ (* ll 1.22701385) (* mm -0.55779998) (* ss 0.28125615))
+  (+ (* ll -0.04058018) (* mm 1.11225687) (* ss -0.07167668))
+  (+ (* ll -0.07638128) (* mm -0.42148198) (* ss 1.58616322)
+
+(compat-defun color-xyz-to-oklab (x y z) ;; 
+  "Convert the CIE XYZ color represented by X Y Z to Oklab."
+  :feature color
+  (let ((ll (+ (* x 0.8189330101) (* y 0.3618667424) (* z -0.1288597137)))
+(mm (+ (* x 0.0329845436) (* y 0.9293118715) (* z 0.0361456387)))
+(ss (+ (* x 0.0482003018) (* y 0.2643662691) (* z 0.6338517070
+(let*
+((cube-root (lambda (f)
+  (if (< f 0)
+  (- (expt (- f) (/ 1.0 3.0)))
+(expt f (/ 1.0 3.0)
+ (lll (funcall cube-root ll))
+ (mmm (funcall cube-root mm))
+ (sss (funcall cube-root ss)))
+  (list (+ (* lll 0.2104542553) (* mmm 0.7936177850) (* sss -0.0040720468))
+(+ (* lll 1.9779984951) (* mmm -2.4285922050) (* sss 0.4505937099))
+(+ (* lll 0.0259040371) (* mmm 0.7827717662) (* sss 
-0.8086757660))
+
+(compat-defun color-oklab-to-srgb (l a b) ;; 
+  "Convert the Oklab color represented by L A B to sRGB."
+  :feature color
+  (apply #'color-xyz-to-srgb (color-oklab-to-xyz l a b)))
+
+(compat-defun color-srgb-to-oklab (r g b) ;; 
+  "Convert the sRGB color R G B to Oklab."
+  :feature color
+  (apply #'color-xyz-to-oklab (color-srgb-to-xyz r g b)))
+
  Defined in subr.el
 
 (compat-defmacro static-if (condition then-form &rest else-forms) ;; 

diff --git a/compat-tests.el b/compat-tests.el
index 223d0dde69..baba1c296a 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -56,6 +56,7 @@
 (require 'time-date)
 (require 'image)
 (require 'text-property-search nil t)
+(require 'color)
 
 ;; Setup tramp mock
 (require 'tramp)
@@ -2681,6 +2682,45 @@
   (should-not (color-values-from-color-spec "rgbi : 0/0/0"))
   (should-not (color-values-from-color-spec "rgbi:0/0.5/10")))
 
+(defun compat--color-approx-equal (color1 color2)
+  "Return t if COLOR1 and COLOR2 are approximately equal."
+  (seq-every-p
+   (lambda (x) (< (abs x) 0.1))
+   (cl-mapcar #'- color1 color2)))
+
+(ert-deftest compat-color-oklab-to-xyz ()
+  (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0 0 0) 
'(0.0 0.0 0.0)))
+  (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 1.0 0.0 
0.0)
+ '(0.95047005 1.0 1.0883001)))
+  (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.450 
1.236 -0.019) '(1.000604 -0.08 -0.38)))
+  (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.922 
-0.671 0.263) '(0.000305 1.000504 0.000898)))
+  (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.153 
-1.415 -0.449) '(0.000590 0.57 1.001650
+
+(ert-deftest compat-color-xyz-to-oklab ()
+  (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0 0 0) 
'(0.0 0.0 0.0)))
+  (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0.95 1.0 
1.089)
+ '(0.69 -0.000258 -0.000115)))
+  (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 1.0 0.0 
0.0)
+ '(0.4499

[nongnu] elpa/gptel 9db263ab12: gptel-openai-extras: Linting

2025-03-29 Thread ELPA Syncer
branch: elpa/gptel
commit 9db263ab12c44187d29c96f565e3368e32e404e3
Author: Karthik Chikmagalur 
Commit: Karthik Chikmagalur 

gptel-openai-extras: Linting

* gptel-openai-extras.el (gptel-make-deepseek): Appease byte
compiler. (#753)
---
 gptel-openai-extras.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gptel-openai-extras.el b/gptel-openai-extras.el
index 078666cb7b..3b7f9d368e 100644
--- a/gptel-openai-extras.el
+++ b/gptel-openai-extras.el
@@ -331,7 +331,7 @@ The Deepseek API requires strictly alternating roles 
(user/assistant) in message
 ;;;###autoload
 (cl-defun gptel-make-deepseek
 (name &key curl-args stream key request-params
-  (header (lambda () (when-let (key (gptel--get-api-key))
+  (header (lambda () (when-let* ((key (gptel--get-api-key)))
   `(("Authorization" . ,(concat "Bearer " key))
   (host "api.deepseek.com")
   (protocol "https")



[elpa] externals/denote d7a46ae47c 7/8: Remove needless node in the manual for two link aliases and mention those in context

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

Remove needless node in the manual for two link aliases and mention those 
in context
---
 README.org | 45 ++---
 1 file changed, 14 insertions(+), 31 deletions(-)

diff --git a/README.org b/README.org
index e4cc905322..71f03e4377 100644
--- a/README.org
+++ b/README.org
@@ -2598,11 +2598,12 @@ The following sections cover all the details 
([[#h:4f354db1-aa78-47fd-ac60-c3d1e
 :END:
 
 #+findex: denote-link
-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)=.
+#+findex: denote-insert-link
+The ~denote-link~ command (alias ~denote-insert-link~) 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)=.
 
 When ~denote-link~ is called with a prefix argument (=C-u= by
 default), it formats links like =[[denote:IDENTIFIER]]=, regardless of
@@ -3001,11 +3002,13 @@ creating a new one 
([[#h:ad91ca39-cf10-4e16-b224-fdf78f093883][Open an existing
   removed. ]
 
 #+findex: denote-backlinks
-The command ~denote-backlinks~ produces a bespoke buffer which
-displays backlinks to the current note. A "backlink" is a link back to
-the present entry. Backlinks can be generated for any file type that
-has a Denote file-naming scheme, such as PDFs, images, and videos, as
-well as the regular plain text files.
+#+findex: denote-show-backlinks-buffer
+The command ~denote-backlinks~ (alias ~denote-show-backlinks-buffer~)
+produces a bespoke buffer which displays backlinks to the current
+note. A "backlink" is a link back to the present entry. Backlinks can
+be generated for any file type that has a Denote file-naming scheme,
+such as PDFs, images, and videos, as well as the regular plain text
+files.
 
 The backlinks' buffer is, in essence, the equivalent of a Unix ~grep~
 command across the ~denote-directory~ 
([[#h:893eec49-d7be-4603-bcff-fcc247244011][Speed up backlinks' buffer 
creation?]]).
@@ -3144,27 +3147,7 @@ In files whose major mode is ~markdown-mode~, the 
default key binding
 correctly resolves =denote:= links. Interested users can refer to the
 function ~denote-link-markdown-follow~ for the implementation details.
 
-** Miscellaneous information about links
-:PROPERTIES:
-:CUSTOM_ID: h:dd8f2231-8d77-49b9-acc4-af525c68b271
-:END:
-
-*** Aliases for the linking commands
-:PROPERTIES:
-:CUSTOM_ID: h:078856d9-f608-43a8-be84-f2cad4c27d0e
-:END:
-
-#+findex: denote-insert-link
-#+findex: denote-show-backlinks-buffer
-#+findex: denote-link-insert-links-matching-regexp
-For convenience, the ~denote-link~ command has an alias called
-~denote-insert-link~.  The ~denote-backlinks~ can also be used as
-~denote-show-backlinks-buffer~.  While ~denote-add-links~ is
-aliased ~denote-link-insert-links-matching-regexp~.  The purpose of
-these aliases is to offer alternative, more descriptive names of
-select commands.
-
-*** The ~denote-link-description-format~ to format link descriptions
+** The ~denote-link-description-format~ to format link descriptions
 :PROPERTIES:
 :CUSTOM_ID: h:f634427c-b451-40e2-993e-e00ac627af68
 :END:



[elpa] externals/denote c1b0fecc70 5/8: Document new linking commands for direct links to files with content match (per commit ba08101)

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

Document new linking commands for direct links to files with content match 
(per commit ba08101)
---
 README.org | 186 +
 1 file changed, 125 insertions(+), 61 deletions(-)

diff --git a/README.org b/README.org
index 140bcd193f..e4cc905322 100644
--- a/README.org
+++ b/README.org
@@ -2592,7 +2592,7 @@ by Denote:
 
 The following sections cover all the details 
([[#h:4f354db1-aa78-47fd-ac60-c3d1e0f0b0a4][Why are some Org links opening 
outside Emacs?]]).
 
-** Adding a single direct link
+** Add a single direct link using a file name prompt
 :PROPERTIES:
 :CUSTOM_ID: h:5e5e3370-12ab-454f-ba09-88ff44214324
 :END:
@@ -2622,6 +2622,13 @@ By default, the description of the link is determined 
thus:
   name.
 - If the target file has no signature, the title is used.
 
+To insert multiple such links at once, use the command
+~denote-add-links~ ([[#h:9bec2c83-36ca-4951-aefc-7187c5463f90][Insert links 
matching a regexp in their file name]]).
+
+If you want to directly link to a single file whose contents match a
+given query, then use the command ~denote-link-to-file-with-contents~
+([[#h:25a983ca-049e-43d4-8f6e-06a2325e2c3c][Adding a direct link to a file 
whose contents include the given query]]).
+
 #+vindex: denote-faces-link
 Links are styled with the ~denote-faces-link~ face, which looks
 exactly like an ordinary link by default.
@@ -2631,7 +2638,33 @@ exactly like an ordinary link by default.
   Other file types do not have the features of Org, so we cannot
   generalise this. ]
 
-** Adding a query link
+** Add a direct link to a file whose contents include the given query
+:PROPERTIES:
+:CUSTOM_ID: h:25a983ca-049e-43d4-8f6e-06a2325e2c3c
+:END:
+
+[ The ~denote-link-to-file-with-contents~ is part of 
{{{development-version}}}. ]
+
+#+findex: denote-link-to-file-with-contents
+The ~denote-link~ command that we covered before prompts to select a
+file among those in the ~denote-directory~ 
([[#h:5e5e3370-12ab-454f-ba09-88ff44214324][Adding a single direct link using a 
file name prompt]]).
+The match is done against the file's name. Users may, however, be
+interested to create a link to a file whose contents include some
+text, regardless of how the file name is called. To this end, the
+command ~denote-link-to-file-with-contents~, (i) prompts for a query
+which is a plain string or regular expression, (ii) if there are
+matching files, asks to select one among them, and (iii) inserts the
+direct link at point.
+
+When called with an optional prefix argument (=C-u= by default), the
+command ~denote-link-to-file-with-contents~ creates a link that does
+not include a description for the target file: it just has the file's
+identifier (same as with ~denote-link~).
+
+The command ~denote-link-to-file-with-contents~ is the counterpart of
+~denote-link-to-all-files-with-contents~ 
([[#h:299d3aeb-9946-489e-bd91-e06f8c4ae2a9][Insert links to all files matching 
a query in their contents]]).
+
+** Add a query link
 :PROPERTIES:
 :CUSTOM_ID: h:d9a84289-2f73-4ef9-b4f0-9a0aa3e9bf0d
 :END:
@@ -2671,6 +2704,94 @@ The user option 
~denote-query-links-display-buffer-action~ controls
 the placement of query link buffers. By default, they are designed to
 appear below the current window.
 
+#+vindex: denote-faces-query-link
+Query links are styled with the ~denote-faces-query-link~ face, which
+looks a bit different that ~denote-faces-link~ (though this depends on
+the active theme).
+
+** Insert links to all files matching a query in their file name
+:PROPERTIES:
+:CUSTOM_ID: h:9bec2c83-36ca-4951-aefc-7187c5463f90
+:END:
+
+#+findex: denote-add-links
+The command ~denote-add-links~ adds links at point to all file names
+in the ~denote-directory~ that match a regular expression or plain
+string. This is similar to the ~denote-link~ command, which
+establishes a direct link to a specified file 
([[#h:5e5e3370-12ab-454f-ba09-88ff44214324][Adding a single direct link]]).
+Links to files whose names match the given search terms are inserted
+as a typographic list, such as:
+
+#+begin_example
+- link1
+- link2
+- link3
+#+end_example
+
+Each link is formatted according to the file type of the current note,
+as explained further above about the ~denote-link~ command.  The current
+note is excluded from the matching entries (adding a link to itself is
+pointless).
+
+When called with a prefix argument (=C-u=) ~denote-add-links~ will
+format all links as =[[denote:IDENTIFIER]]=, hence a typographic list:
+
+#+begin_example
+- [[denote:IDENTIFIER-1]]
+- [[denote:IDENTIFIER-2]]
+- [[denote:IDENTIFIER-3]]
+#+end_example
+
+Same examples of a regular expression that can be used with this
+command:
+
+- =journal= match all files which include =journal= anywhere in their
+  name.
+
+- =_journal= match all files which include =journal= as a keyword

[elpa] externals/denote d59645cd03 1/8: Reorganise some backlink-related functions to be under the same outline heading

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

Reorganise some backlink-related functions to be under the same outline 
heading
---
 denote.el | 59 ++-
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/denote.el b/denote.el
index c911c3e124..7ea6504da6 100644
--- a/denote.el
+++ b/denote.el
@@ -4989,7 +4989,8 @@ Also see `denote-link-return-backlinks'."
 
 ;;;###autoload
 (defun denote-find-link ()
-  "Use minibuffer completion to visit linked file."
+  "Use minibuffer completion to visit linked file.
+Also see `denote-find-backlink'."
   (declare (interactive-only t))
   (interactive)
   (find-file
@@ -4999,34 +5000,6 @@ Also see `denote-link-return-backlinks'."
  (or (denote-link-return-links)
  (user-error "No links found"))
 
-(defun denote-link-return-backlinks (&optional file)
-  "Return list of backlinks in current or optional FILE.
-Also see `denote-link-return-links'."
-  (when-let* ((current-file (or file (buffer-file-name)))
-  (id (denote-retrieve-filename-identifier-with-error 
current-file)))
-(delete current-file (denote-retrieve-files-xref-query id
-
-;; TODO 2024-09-04: Instead of using `denote-link-return-backlinks' we
-;; should have a function that does not try to find all backlinks but
-;; simply exits as soon as it finds one.
-(defun denote--file-has-backlinks-p (file)
-  "Return non-nil if FILE has backlinks."
-  (not (zerop (length (denote-link-return-backlinks file)
-
-;;;###autoload
-(defun denote-find-backlink ()
-  "Use minibuffer completion to visit backlink to current file.
-
-Like `denote-find-link', but select backlink to follow."
-  (declare (interactive-only t))
-  (interactive)
-  (find-file
-   (denote-get-path-by-id
-(denote-extract-id-from-string
- (denote-select-linked-file-prompt
-  (or (denote-link-return-backlinks)
-  (user-error "No backlinks found")))
-
 ;;;###autoload
 (defun denote-link-after-creating (&optional id-only)
   "Create new note in the background and link to it directly.
@@ -5212,6 +5185,34 @@ Place the buffer below the current window or wherever 
the user option
 (defalias 'denote-show-backlinks-buffer 'denote-backlinks
   "Alias for `denote-backlinks' command.")
 
+
+(defun denote-link-return-backlinks (&optional file)
+  "Return list of backlinks in current or optional FILE.
+Also see `denote-link-return-links'."
+  (when-let* ((current-file (or file (buffer-file-name)))
+  (id (denote-retrieve-filename-identifier-with-error 
current-file)))
+(delete current-file (denote-retrieve-files-xref-query id
+
+;; TODO 2024-09-04: Instead of using `denote-link-return-backlinks' we
+;; should have a function that does not try to find all backlinks but
+;; simply exits as soon as it finds one.
+(defun denote--file-has-backlinks-p (file)
+  "Return non-nil if FILE has backlinks."
+  (not (zerop (length (denote-link-return-backlinks file)
+
+;;;###autoload
+(defun denote-find-backlink ()
+  "Use minibuffer completion to visit backlink to current file.
+Alo see `denote-find-link'."
+  (declare (interactive-only t))
+  (interactive)
+  (find-file
+   (denote-get-path-by-id
+(denote-extract-id-from-string
+ (denote-select-linked-file-prompt
+  (or (denote-link-return-backlinks)
+  (user-error "No backlinks found")))
+
 ;; Query links
 
 (defvar denote-query-link-history nil



[elpa] externals/denote ba081010fa 4/8: Define commands to create direct links to files whose contents match a query

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

Define commands to create direct links to files whose contents match a query
---
 denote.el | 36 
 1 file changed, 36 insertions(+)

diff --git a/denote.el b/denote.el
index 9cf3dedc1d..ec2d08519c 100644
--- a/denote.el
+++ b/denote.el
@@ -5552,6 +5552,42 @@ inserts links with just the identifier."
 (defalias 'denote-link-insert-links-matching-regexp 'denote-add-links
   "Alias for `denote-add-links' command.")
 
+; Link to file with matching contents
+
+;;;###autoload
+(defun denote-link-to-file-with-contents (query &optional id-only)
+  "Link to a file whose contents match QUERY.
+This is similar to `denote-link', except that the file prompt is limited
+to files matching QUERY.  Optional ID-ONLY has the same meaning as in
+`denote-link'."
+  (interactive
+   (list (denote-query-link-prompt nil "Files whose contents include QUERY")))
+  (if-let* ((files (denote-retrieve-files-xref-query query))
+;; NOTE 2025-03-29: Maybe we should have a named prompt
+;; for this case, but I think we do not need it right now.
+(file (completing-read
+   (format "Select FILE with contents `%s': "
+   (propertize query 'face 
'denote-faces-prompt-current-name))
+   (denote--completion-table 'file files)
+   nil t nil 'denote-file-history)))
+  (denote-link file
+   (denote-filetype-heuristics buffer-file-name)
+   (denote-get-link-description file)
+   id-only)
+(user-error "No files include the query `%s' in their contents" query)))
+
+;;;###autoload
+(defun denote-link-to-all-files-with-contents (query &optional id-only)
+  "Link to all files whose contents match QUERY.
+This is similar to `denote-add-links', except it searches inside file
+contents, not file names.  Optional ID-ONLY has the same meaning as in
+`denote-link' and `denote-add-links'."
+  (interactive
+   (list (denote-query-link-prompt nil "Files whose contents include QUERY")))
+  (if-let* ((files (denote-retrieve-files-xref-query query)))
+  (denote-link--insert-links files (denote-filetype-heuristics 
buffer-file-name) id-only)
+(user-error "No files include the query `%s' in their contents" query)))
+
 ; Links from Dired marks
 
 ;; NOTE 2022-07-21: I don't think we need a history for this one.



[elpa] externals/denote ec045e814b 8/8: Include the two new direct link commands in the menu bar (see commit ba08101)

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

Include the two new direct link commands in the menu bar (see commit 
ba08101)
---
 denote.el | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/denote.el b/denote.el
index 57bd27f2d8..9f8e9ba260 100644
--- a/denote.el
+++ b/denote.el
@@ -5694,6 +5694,9 @@ This command is meant to be used from a Dired buffer."
 ["Insert a direct link" denote-link
  :help "Insert link to a file in the `denote-directory'"
  :enable (derived-mode-p 'text-mode)]
+["Insert a direct link to file with contents" 
denote-link-to-file-with-contents
+ :help "Insert link to a file in the `denote-directory' whose contents 
include a query"
+ :enable (derived-mode-p 'text-mode)]
 ["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)]
@@ -5701,8 +5704,11 @@ This command is meant to be used from a Dired buffer."
  :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'"
+["Insert links to file names matching regexp" denote-add-links
+ :help "Insert links to file names in the `denote-directory' matching 
regexp"
+ :enable (derived-mode-p 'text-mode)]
+["Insert links to files whose contents match regexp" 
denote-link-to-all-files-with-contents
+ :help "Insert links to file in the `denote-directory' whose contents 
match regexp"
  :enable (derived-mode-p 'text-mode)]
 ["Insert Dired marked files as links" denote-link-dired-marked-notes
  :help "Rename marked files in Dired as links in a Denote buffer"



[elpa] externals/denote updated (e88af3a4aa -> ec045e814b)

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

  from  e88af3a4aa Merge pull request #567 from eum3l/fix-org-location-links
   new  d59645cd03 Reorganise some backlink-related functions to be under 
the same outline heading
   new  2885ce0d62 Add denote-query-link-prompt to 
denote-prompts-with-history-as-completion
   new  54480f9f86 Clarify denote-add-links doc string
   new  ba081010fa Define commands to create direct links to files whose 
contents match a query
   new  c1b0fecc70 Document new linking commands for direct links to files 
with content match (per commit ba08101)
   new  38b0e922e7 Remove alias for denote-add-links
   new  d7a46ae47c Remove needless node in the manual for two link aliases 
and mention those in context
   new  ec045e814b Include the two new direct link commands in the menu bar 
(see commit ba08101)


Summary of changes:
 README.org | 231 +
 denote.el  | 118 ---
 2 files changed, 218 insertions(+), 131 deletions(-)



[elpa] externals/denote 54480f9f86 3/8: Clarify denote-add-links doc string

2025-03-29 Thread ELPA Syncer
branch: externals/denote
commit 54480f9f8639605a7c5d37e0d100fafa61fff903
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Clarify denote-add-links doc string
---
 denote.el | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/denote.el b/denote.el
index 9f96e34753..9cf3dedc1d 100644
--- a/denote.el
+++ b/denote.el
@@ -5530,10 +5530,10 @@ Optional INCLUDE-DATE has the same meaning as in 
`denote-format-link'."
 
 ;;;###autoload
 (defun denote-add-links (regexp &optional id-only)
-  "Insert links to all notes matching REGEXP.
-Use this command to reference multiple files at once.
-Particularly useful for the creation of metanotes (read the
-manual for more on the matter).
+  "Insert links to all files whose file names match REGEXP.
+Use this command to reference multiple files at once.  Particularly
+useful for the creation of metanotes (read the manual for more on the
+matter).
 
 Optional ID-ONLY has the same meaning as in `denote-link': it
 inserts links with just the identifier."



[elpa] externals/denote 38b0e922e7 6/8: Remove alias for denote-add-links

2025-03-29 Thread ELPA Syncer
branch: externals/denote
commit 38b0e922e73d1ca1b6e09edc89cc56a43fa57b39
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Remove alias for denote-add-links
---
 denote.el | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/denote.el b/denote.el
index ec2d08519c..57bd27f2d8 100644
--- a/denote.el
+++ b/denote.el
@@ -5549,9 +5549,6 @@ inserts links with just the identifier."
 (denote-link--insert-links files file-type id-only)
   (message "No links matching `%s'" regexp
 
-(defalias 'denote-link-insert-links-matching-regexp 'denote-add-links
-  "Alias for `denote-add-links' command.")
-
 ; Link to file with matching contents
 
 ;;;###autoload



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

2025-03-29 Thread Jonas Bernoulli via
branch: externals/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] externals/el-job f4653c6cfc 008/143: .

2025-03-29 Thread ELPA Syncer
branch: externals/el-job
commit f4653c6cfc0f2d110dbdba04860cd2d416b5c5d1
Author: Martin Edström 
Commit: Martin Edström 

.
---
 el-job-child.el | 15 ---
 el-job.el   | 48 +---
 2 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/el-job-child.el b/el-job-child.el
index 50d8cac8af..47d68f9ff7 100644
--- a/el-job-child.el
+++ b/el-job-child.el
@@ -16,12 +16,11 @@
 
 ;;; Commentary:
 
-;;; Code:
+;; We use `time-convert' instead of `current-time' because
+;; 1. (TICKS . HZ) implies a bit less GC churn than (HIGH LOW USEC PSEC)
+;; 2. With `current-time', we would have to inject `current-time-list'
 
-;; We call `time-convert' instead of `current-time' because the child process
-;; may have a different setting of `current-time-list' ...
-;; But we could just inject that...
-;; But also, (TICKS . HZ) implies a bit less garbage than (HIGH LOW USEC PSEC).
+;;; Code:
 
 (defun el-job-child--zip (alist1 alist2)
   "Zip two alists into one, destructively.
@@ -48,10 +47,12 @@ information to the final return value."
   (setq start (time-convert nil t))
   (setq output (funcall func item))
   (push (time-since start) meta)
+  ;; May affect the durations erratically, so do this step after.
   (setq results (el-job-child--zip output results)))
-;; Now the durations are in same order that ITEMS came in
+;; Ensure durations are in same order that ITEMS came in, letting us
+;; associate which with which just by index.
 (setq meta (nreverse meta))
-;; This will be the very `car' of the metadata
+;; Timestamp at finish.  Will be the very `car' of the metadata.
 (push (time-convert nil t) meta)
 (let (print-length
   print-level
diff --git a/el-job.el b/el-job.el
index a7d7247e89..b1a6087bdc 100644
--- a/el-job.el
+++ b/el-job.el
@@ -44,9 +44,9 @@
 ;;; Subroutines:
 
 (defvar el-job--feature-mem nil)
-(defun el-job--loaded-lib (feature)
+(defun el-job--find-lib (feature)
   "Look for .eln, .elc or .el file corresponding to FEATURE.
-FEATURE is a symbol as it shows up in `load'.
+FEATURE is a symbol as it shows up in `features'.
 
 Guess which one was in fact loaded by the current Emacs,
 and return it if it is .elc or .eln.
@@ -141,9 +141,10 @@ Note: if you are currently editing the source code for 
FEATURE, use
 (defun el-job--split-optimally (items n table)
   "Split ITEMS into N lists of items.
 
-Inspect TABLE for how long a batch took to execute on a given item last
-time, to return balanced lists that should each take around the same
-total wall-time to process.
+Assuming TABLE has benchmarks for how long this job took last time to
+execute on a given item, use the benchmarks to rebalance the lists so
+that each list should take around the same total wall-time to work
+through this time.
 
 This reduces the risk that one subprocess takes noticably longer due to
 being saddled with a mega-item in addition to the average workload."
@@ -221,9 +222,9 @@ each element is wrapped in its own list."
 (setq big-list (nthcdr sublist-length big-list
 (delq nil result)))
 
-(defvar el-job-force-cores nil
+(defvar el-job--force-cores nil
   "Explicit default for `el-job--cores'.
-If non-nil, use this value instead of attempting to count CPU cores.")
+If set, use this value instead of attempting to count CPU cores.")
 
 (defvar el-job--cores nil
   "Max simultaneous processes for a given batch of jobs.")
@@ -277,9 +278,9 @@ See `el-job-child--zip' for details."
   funcall
   inputs
   wrapup
-  await-max
+  await
   lock
-  max-children ;; will deprecate
+  max-children ;; may deprecate
   ;; TODO
   ;;  use-file-handlers
   debug)
@@ -315,7 +316,7 @@ file; that file should end with a `provide' call to the 
same feature.
 
 While subprocesses do not inherit `load-path', it is the mother Emacs
 process that locates that file \(by inspecting `load-history', see
-`el-job--loaded-lib' for particulars), then gives the file to the
+`el-job--find-lib' for particulars), then gives the file to the
 subprocess.
 
 Due to the absence of `load-path', be careful writing `require'
@@ -323,9 +324,9 @@ statements into that Emacs Lisp file.  You can pass 
`load-path' via
 INJECT-VARS, but consider that less requires means faster spin-up.
 
 
-SPLITABLE-DATA is a list that will be split by up to the number
+INPUTS is a list that will be split by up to the number
 of CPU cores on your machine, and this determines how many
-subprocesses will spawn.  If SPLITABLE-DATA is nil, only
+subprocesses will spawn.  If INPUTS is nil, only
 one subprocess will spawn.
 
 The subprocesses have no access to current E

[elpa] externals/org 593785527b: oc-basic.el: New option org-cite-basic-complete-key-crm-separator

2025-03-29 Thread ELPA Syncer
branch: externals/org
commit 593785527b8c0feee8163b59b4443e5ed5b642c6
Author: Daanturo 
Commit: Ihor Radchenko 

oc-basic.el: New option org-cite-basic-complete-key-crm-separator

* lisp/oc-basic.el: Define `org-cite-basic-complete-key-crm-separator;
and `org-cite-basic--complete-key-dynamic-crm-separator'.
(org-cite-basic--complete-key): Conditionally use the new option.
* etc/ORG-NEWS: (New option ~org-cite-basic-complete-key-crm-separator~):
Document the new feature.

Link: 
https://list.orgmode.org/d77467cb-7e40-40a4-b5a2-88c738890...@getmailspring.com/
---
 etc/ORG-NEWS |   7 
 lisp/oc-basic.el | 101 ++-
 2 files changed, 99 insertions(+), 9 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 1b9dc70300..982bac4e93 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -328,6 +328,13 @@ behaviour of other exporters. In this case, to exclude a 
section from
 the table of contents, mark it as =:UNNUMBERED: notoc= in its
 properties.
 
+*** New option ~org-cite-basic-complete-key-crm-separator~
+
+This option makes ~org-cite~'s ~basic~ insert processor use
+~completing-read-multiple~ instead of the default consecutive prompts.
+It can also be set to dynamically compute ~crm-separator~ so that the
+separator does not appear in completion candidates.
+
 ** New functions and changes in function arguments
 
 # This also includes changes in function behavior from Elisp perspective.
diff --git a/lisp/oc-basic.el b/lisp/oc-basic.el
index 32a99e9870..e2b36c49a2 100644
--- a/lisp/oc-basic.el
+++ b/lisp/oc-basic.el
@@ -140,6 +140,31 @@
   :type 'face
   :safe #'facep)
 
+(defcustom org-cite-basic-complete-key-crm-separator nil
+  "When non-nil, use `completing-read-multiple' with this as the separator.
+When nil, use multiple `completing-read' prompts.  When set to a string,
+it should be a regexp to be used as `crm-separator' (which see).  The
+regexp string can carry the text properties `separator', which if
+present `completing-read-multiple' will show as part of the prompt.
+When set to symbol `dynamic', use \";;...\" as a separator with the
+number of \";\" sufficient so that none of the completion candidates
+contain the separator."
+  :group 'org-cite
+  :package-version '(Org . "9.8")
+  :type
+  '(choice
+(const
+ :tag
+ "Use \";;\" as the separator."
+ (propertize "[ \t]*;;[ \t]*" 'separator ";;"))
+(const
+ :tag
+ "Dynamically compute \";\"+ with the needed length."
+ dynamic)
+(string :tag "Custom regexp for the separator.")
+(const :tag "Prompt multiple times." nil))
+  :safe (lambda (obj) (or (string-or-null-p obj) (member obj '(dynamic)
+
 
 ;;; Internal variables
 (defvar org-cite-basic--bibliography-cache nil
@@ -884,6 +909,39 @@ Return nil if there are no bibliography files or no 
entries."
 (puthash entries t org-cite-basic--completion-cache)
 org-cite-basic--completion-cache)
 
+(defun org-cite-basic--complete-key-dynamic-crm-separator
+(completion-candidates separator)
+  "Return a repeated version of SEPARATOR as needed.
+The number of appeared SEPARATORs in the returned string is sufficient
+so that none of COMPLETION-CANDIDATES contains it.  SEPARATOR should be
+a literal string."
+  (let* ((dyn-sep separator)
+ (consecutive-sep-regexp
+  (format "%s+" (regexp-opt (list separator)
+(with-temp-buffer
+  (dolist (cand completion-candidates)
+(when (stringp cand)
+  (insert cand "\n")))
+  (goto-char (point-min))
+  (while (re-search-forward consecutive-sep-regexp nil t)
+(while (<= (length dyn-sep) (length (match-string 0)))
+  (setq dyn-sep (concat dyn-sep separator)
+dyn-sep))
+
+(defvar crm-separator) ; defined in crm.el
+
+(defun org-cite-basic--crm-indicate-prompt (orig-prompt)
+  "Return annotated ORIG-PROMPT with `crm-separator'.
+For Emacs version 31 and above, just return ORIG-PROMPT."
+  (cond
+   ((boundp 'crm-prompt)
+orig-prompt)
+   (t
+(let ((sep
+   (or (get-text-property 0 'separator crm-separator)
+   (string-replace "[ \t]*" "" crm-separator
+  (format "[list separated by %s] %s" sep orig-prompt)
+
 (defun org-cite-basic--complete-key (&optional multiple)
   "Prompt for a reference key and return a citation reference string.
 
@@ -895,12 +953,36 @@ Raise an error when no bibliography is set in the buffer."
   (let* ((table
   (or (org-cite-basic--key-completion-table)
   (user-error "No bibliography set")))
- (prompt
-  (lambda (text)
-(completing-read text table nil t
-(if (null multiple)
-(let ((key (gethash (funcall prompt "Key: ") table)))
-  (org-string-nw-p key))
+ (prompt-single
+  (lambda (text) (completing-read text table nil t)))
+ (choice-to-citation
+  (lambda (choice)
+

[elpa] externals/org 4750b37809: org-indent-line: Fix undindented line with non-zero `org-edit-src-content-indentation'

2025-03-29 Thread ELPA Syncer
branch: externals/org
commit 4750b37809b12c1266722b7024cd4037020f4af3
Author: Lukas Rudd Andersen 
Commit: Ihor Radchenko 

org-indent-line: Fix undindented line with non-zero 
`org-edit-src-content-indentation'

* org.el (org-indent-line): Indent to content before indenting with
mode.  Indent to content before the block contents are put in the edit
buffer to indent according to mode, ensuring that the whole block is
properly cleaned of content indentation, avoiding unintended
over-indentation when the contents of the edit buffer are reinserted.
* test-org.el (org-indent-line): Add test.

TINYCHANGE

Link: https://orgmode.org/list/omp_5ys--...@phdk.org
---
 lisp/org.el  |  4 
 testing/lisp/test-org.el | 14 --
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index e9f11db1e8..3fcc036970 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -19469,6 +19469,10 @@ Also align node properties according to 
`org-property-format'."
   (org-with-point-at (org-element-property :begin element)
 (+ (org-current-text-indentation)
org-edit-src-content-indentation)
+   ;; Avoid over-indenting when beginning of a new line is not 
empty.
+   ;; https://list.orgmode.org/omcpuwz--...@phdk.org/
+   (when block-content-ind
+ (save-excursion (indent-line-to block-content-ind)))
(ignore-errors ; do not err when there is no proper major mode
  ;; It is important to call `indent-according-to-mode'
  ;; rather than `indent-line-function' here or we may
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 2487c9ace6..a55c4162ea 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -1220,8 +1220,9 @@ Otherwise, evaluate RESULT as an sexp and return its 
result."
 (org-indent-line)
 (org-get-indentation)
   ;; Within code part of a source block, use language major mode if
-  ;; `org-src-tab-acts-natively' is non-nil.  Otherwise, indent
-  ;; according to line above.
+  ;; `org-src-tab-acts-natively' is non-nil, only add
+  ;; `org-edit-src-content-indentation' to lines with indentation that
+  ;; is lower. Otherwise, indent according to line above.
   (should
(= 6
   (org-test-with-temp-text
@@ -1230,6 +1231,15 @@ Otherwise, evaluate RESULT as an sexp and return its 
result."
  (org-edit-src-content-indentation 0))
  (org-indent-line))
(org-get-indentation
+  (should
+   (= 2
+  (org-test-with-temp-text
+ "#+BEGIN_SRC emacs-lisp\n  (and A\nB)\n#+END_SRC"
+   (let ((org-src-tab-acts-natively t)
+ (org-edit-src-content-indentation 2))
+ (org-indent-line))
+(forward-line -1)
+   (org-get-indentation
   (should
(= 1
   (org-test-with-temp-text



[elpa] externals-release/org 74dde3abae: Update version number for the 9.7.27 release

2025-03-29 Thread ELPA Syncer
branch: externals-release/org
commit 74dde3abae74c97ba336a11a1d0efcb79585e32f
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Update version number for the 9.7.27 release
---
 lisp/org.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org.el b/lisp/org.el
index 20ce5c8c8a..40b9dc0fb2 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -9,7 +9,7 @@
 ;; URL: https://orgmode.org
 ;; Package-Requires: ((emacs "26.1"))
 
-;; Version: 9.7.26
+;; Version: 9.7.27
 
 ;; This file is part of GNU Emacs.
 ;;



[nongnu] elpa/magit updated (107e9015e6 -> bec296e8d7)

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

  from  107e9015e6 Revert "magit-diff-mode: Add diff-mode as an extra 
parent"
   new  7b13ced297 Use ## more
   new  bec296e8d7 magit-push: Add --follow-tags and --tags


Summary of changes:
 lisp/git-commit.el|  2 +-
 lisp/git-rebase.el|  3 +--
 lisp/magit-apply.el   |  7 ++-
 lisp/magit-base.el|  6 +++---
 lisp/magit-bisect.el  |  2 +-
 lisp/magit-blame.el   |  3 +--
 lisp/magit-diff.el| 16 
 lisp/magit-ediff.el   |  3 +--
 lisp/magit-fetch.el   |  4 ++--
 lisp/magit-git.el | 20 
 lisp/magit-log.el |  8 ++--
 lisp/magit-push.el|  5 +++--
 lisp/magit-refs.el|  7 +++
 lisp/magit-remote.el  |  8 +++-
 lisp/magit-section.el | 10 +-
 lisp/magit-sequence.el|  4 ++--
 lisp/magit-sparse-checkout.el |  2 +-
 lisp/magit-stash.el   |  2 +-
 lisp/magit-status.el  |  3 +--
 19 files changed, 49 insertions(+), 66 deletions(-)



[elpa] externals/ivy d63d52f140: Bump version to point release 0.15.1

2025-03-29 Thread Basil L. Contovounesios
branch: externals/ivy
commit d63d52f140105d4a072fbc18f1405ab8313a4cd5
Author: Basil L. Contovounesios 
Commit: Basil L. Contovounesios 

Bump version to point release 0.15.1

* ivy.el:
* doc/ivy.org: Bump version to 0.15.1 (#3001).
* doc/ivy.texi: Regenerate docs.
---
 doc/ivy.org  | 2 +-
 doc/ivy.texi | 2 +-
 ivy.el   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/doc/ivy.org b/doc/ivy.org
index b0b9d4a418..8a7c0582b0 100644
--- a/doc/ivy.org
+++ b/doc/ivy.org
@@ -58,7 +58,7 @@ ivy-ox.el then ~C-c C-e i t~ in the ivy.org buffer.
 :CUSTOM_ID: copying
 :END:
 #+TEXINFO: @ifnottex
-Ivy manual, version 0.15.0
+Ivy manual, version 0.15.1
 
 Ivy is an interactive interface for completion in Emacs.  Emacs uses
 completion mechanism in a variety of contexts: code, menus, commands,
diff --git a/doc/ivy.texi b/doc/ivy.texi
index 0752d49e81..be3c1e1ed8 100644
--- a/doc/ivy.texi
+++ b/doc/ivy.texi
@@ -8,7 +8,7 @@
 
 @copying
 @ifnottex
-Ivy manual, version 0.15.0
+Ivy manual, version 0.15.1
 
 Ivy is an interactive interface for completion in Emacs.  Emacs uses
 completion mechanism in a variety of contexts: code, menus, commands,
diff --git a/ivy.el b/ivy.el
index 5a221bc395..063c9eee59 100644
--- a/ivy.el
+++ b/ivy.el
@@ -5,7 +5,7 @@
 ;; Author: Oleh Krehel 
 ;; Maintainer: Basil L. Contovounesios 
 ;; URL: https://github.com/abo-abo/swiper
-;; Version: 0.15.0
+;; Version: 0.15.1
 ;; Package-Requires: ((emacs "24.5"))
 ;; Keywords: matching
 



[elpa] externals/jinx bd0b4673eb: Improve lighter and menu

2025-03-29 Thread ELPA Syncer
branch: externals/jinx
commit bd0b4673eb2b3bbddd7814e7b61128acb644615b
Author: Daniel Mendler 
Commit: Daniel Mendler 

Improve lighter and menu
---
 jinx.el | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/jinx.el b/jinx.el
index 3273f62c97..75b00bdd60 100644
--- a/jinx.el
+++ b/jinx.el
@@ -256,8 +256,10 @@ checking."
   "Menu used when Jinx is active."
   '("Jinx"
 ["Correct nearest" jinx-correct]
-["Correct all" (jinx-correct t)
+["Correct all" jinx-correct-all
  :keys "\\[universal-argument] \\[jinx-correct]"]
+["Correct word" jinx-correct-word
+ :keys "\\[universal-argument] \\[universal-argument] \\[jinx-correct]"]
 ["Change languages" jinx-languages]
 ""
 ["Manual" (info "(jinx)")]
@@ -1102,7 +1104,7 @@ This command dispatches to the following commands:
 ;;;###autoload
 (define-minor-mode jinx-mode
   "Enchanted Spell Checker."
-  :lighter (:eval (concat " Jinx[" jinx-languages "]"))
+  :lighter (" " (:eval (concat "Jinx[" jinx-languages "]")))
   :group 'jinx
   :keymap jinx-mode-map
   (cond



[nongnu] elpa/magit bec296e8d7 2/2: magit-push: Add --follow-tags and --tags

2025-03-29 Thread Jonas Bernoulli via
branch: elpa/magit
commit bec296e8d7d524beabcb9f56d9befb3f8e4d29fb
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-push: Add --follow-tags and --tags

Previously users were expected to push tags explicitly either
individually (using "T"/`magit-push-tag') or all at once (using
"t"/`magit-push-tags').

The goal of this design was to avoid pushing tags only intended for
local use.  The actual result is that many users often forget to push
tags.  The fact that the release tags of many Emacs packages lag
behind the Package-Requires headers is a strong indication of that.

Git provides a better mechanism to ensure "public" tags are always
pushed:

--follow-tags
Push all the refs that would be pushed without this option, and
also push annotated tags in refs/tags that are missing from the
remote but are pointing at commit-ish that are reachable from the
refs being pushed. This can also be specified with configuration
variable push.followTags. For more information, see push.followTags
in git-config(1).

To take full advantage of that, one should set `push.followTags' to
true and then *always* annotate "public" tags and *never* annotate
"private" tags.

Of course not everyone knows that, so we stop short of enabling
`--follow-tags' by default (but if you see this, I strongly recommend
that you enable it locally).  Instead we make both `--follow-tags' and
`--tags' *available* by default and use verbose descriptions that spell
out the difference between the two.
---
 lisp/magit-push.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/magit-push.el b/lisp/magit-push.el
index 51bd4f3b39..ca90b62d4e 100644
--- a/lisp/magit-push.el
+++ b/lisp/magit-push.el
@@ -39,8 +39,9 @@
("-F" "Force"("-f" "--force"))
("-h" "Disable hooks""--no-verify")
("-n" "Dry run"  ("-n" "--dry-run"))
-   (5 "-u" "Set upstream"   "--set-upstream")
-   (7 "-t" "Follow tags""--follow-tags")]
+   ("-u" "Set upstream"   "--set-upstream" :level 5)
+   ("-T" "Include all tags" "--tags")
+   ("-t" "Include related annotated tags" "--follow-tags")]
   [:if magit-get-current-branch
:description (lambda ()
   (format (propertize "Push %s to" 'face 'transient-heading)



[elpa] externals/org f30f6dc4bc: org-preview-latex-process-alist: Add xelatex support for latex preview

2025-03-29 Thread ELPA Syncer
branch: externals/org
commit f30f6dc4bc50490c7e1b7e406994b9713880b413
Author: Billy Lei 
Commit: Ihor Radchenko 

org-preview-latex-process-alist: Add xelatex support for latex preview

* lisp/org.el (org-preview-latex-process-alist): Add new process
"xelatex" to allow using xelatex to generate latex preview.

TINYCHANGE
---
 etc/ORG-NEWS |  8 
 lisp/org.el  | 11 ++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 919dea33d2..1b9dc70300 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -237,6 +237,14 @@ You may return to the previous behaviour by setting
 Note that Emacs warnings can always be suppressed by clicking on ⛔
 symbol or by customizing ~warning-suppress-types~.
 
+*** Allow using =xelatex= for LaTeX preview
+
+A new process =xelatex= is added to ~org-preview-process-alist~ to
+allow generating LaTeX fragment preview through =xdv= file produced by
+XeLaTeX, which has better support for Unicode.
+
+You can now set ~org-preview-latex-default-process~ to ~'xelatex~.
+
 *** New option ~org-edit-keep-region~
 
 Since Org 9.7, structure editing commands do not deactivate region
diff --git a/lisp/org.el b/lisp/org.el
index 3fcc036970..f73e4f70e7 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -3392,6 +3392,15 @@ All available processes and theirs documents can be 
found in
  :image-size-adjust (1.7 . 1.5)
  :latex-compiler ("latex -interaction nonstopmode -output-directory %o %f")
  :image-converter ("dvisvgm %f --no-fonts --exact-bbox --scale=%S 
--output=%O"))
+(xelatex
+ :programs ("xelatex" "dvisvgm")
+ :description "xdv > svg"
+ :message "you need to install the programs: xelatex and dvisvgm."
+ :image-input-type "xdv"
+ :image-output-type "svg"
+ :image-size-adjust (1.7 . 1.5)
+ :latex-compiler ("xelatex -no-pdf -interaction nonstopmode 
-output-directory %o %f")
+ :image-converter ("dvisvgm %f --no-fonts --exact-bbox --scale=%S 
--output=%O"))
 (imagemagick
  :programs ("latex" "convert")
  :description "pdf > png"
@@ -3453,7 +3462,7 @@ Place-holders only used by `:image-converter':
   %Sthe image size scale ratio, which is used to adjust image size by some
 processing commands."
   :group 'org-latex
-  :package-version '(Org . "9.6")
+  :package-version '(Org . "9.8")
   :type '(alist :tag "LaTeX to image backends"
:value-type (plist)))
 



[elpa] externals/denote 9aed12156e 2/2: Merge pull request #569 from jeanphilippegg/docstring

2025-03-29 Thread ELPA Syncer
branch: externals/denote
commit 9aed12156ee8a9a969fb411e525f64d0f3e95567
Merge: ec045e814b b5eac20052
Author: Protesilaos Stavrou 
Commit: GitHub 

Merge pull request #569 from jeanphilippegg/docstring

Add info in docstring of denote-file-name-components-order
---
 denote.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 9f8e9ba260..50d0c65b28 100644
--- a/denote.el
+++ b/denote.el
@@ -385,7 +385,12 @@ components are actually used in the order specified herein.
 Before deciding on this, please consider the longer-term implications
 of file names with varying patterns. Consistency makes things
 predictable and thus easier to find. So pick one order and never touch
-it again. When in doubt, leave the default file-naming scheme as-is."
+it again. When in doubt, leave the default file-naming scheme as-is.
+
+This user option should only be used to build a file name.  Custom code
+should not have behaviors that depend on its value.  The reason is that
+its value can change over time and Denote should be able to handle past
+and current notes."
   :group 'denote
   :package-version '(denote . "3.0.0")
   ;; FIXME 2024-05-19: This technically works to display the user



[elpa] externals/denote b5eac20052 1/2: Add info in docstring of denote-file-name-components-order

2025-03-29 Thread ELPA Syncer
branch: externals/denote
commit b5eac20052dc4b06ec17ad3f61e5f39b5f8a4ddb
Author: Jean-Philippe Gagné Guay 
Commit: Jean-Philippe Gagné Guay 

Add info in docstring of denote-file-name-components-order
---
 denote.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/denote.el b/denote.el
index 9f8e9ba260..50d0c65b28 100644
--- a/denote.el
+++ b/denote.el
@@ -385,7 +385,12 @@ components are actually used in the order specified herein.
 Before deciding on this, please consider the longer-term implications
 of file names with varying patterns. Consistency makes things
 predictable and thus easier to find. So pick one order and never touch
-it again. When in doubt, leave the default file-naming scheme as-is."
+it again. When in doubt, leave the default file-naming scheme as-is.
+
+This user option should only be used to build a file name.  Custom code
+should not have behaviors that depend on its value.  The reason is that
+its value can change over time and Denote should be able to handle past
+and current notes."
   :group 'denote
   :package-version '(denote . "3.0.0")
   ;; FIXME 2024-05-19: This technically works to display the user



[nongnu] elpa/slime 5a0d95583e 1/2: Add swank-indentation to *contribs*

2025-03-29 Thread ELPA Syncer
branch: elpa/slime
commit 5a0d95583e88f3a03f8ef352ca955b98012305bd
Author: Stas Boukarev 
Commit: Stas Boukarev 

Add swank-indentation to *contribs*
---
 swank-loader.lisp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/swank-loader.lisp b/swank-loader.lisp
index c71f0efa9d..b83c1776f6 100644
--- a/swank-loader.lisp
+++ b/swank-loader.lisp
@@ -264,7 +264,8 @@ If LOAD is true, load the fasl file."
 swank-mrepl
 swank-trace-dialog
 swank-macrostep
-swank-quicklisp)
+swank-quicklisp
+swank-indentation)
   "List of names for contrib modules.")
 
 (defun append-dir (absolute name)



[elpa] externals/org updated (f30f6dc4bc -> 0e731a4e71)

2025-03-29 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  f30f6dc4bc org-preview-latex-process-alist: Add xelatex support for 
latex preview
   new  fbf39134f3 Fix all the users of org-table-map-tables that expect 
org table type
   new  0e731a4e71 org-export-expand-include-keyword: Preserve indentation


Summary of changes:
 lisp/org-table.el   | 16 +++-
 lisp/org.el |  2 +-
 lisp/ox.el  | 13 -
 testing/lisp/test-ox.el | 10 ++
 4 files changed, 30 insertions(+), 11 deletions(-)



[elpa] externals/org 0e731a4e71 2/2: org-export-expand-include-keyword: Preserve indentation

2025-03-29 Thread ELPA Syncer
branch: externals/org
commit 0e731a4e71d46218f973ca05dab9360b2e8384ff
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-export-expand-include-keyword: Preserve indentation

* lisp/ox.el (org-export--blindly-expand-include): Accept INDENTATION
as keyword argument rather than using `current-text-indentation'.
(org-export-expand-include-keyword): Pass indentation of the #+include
keyword to `org-export--blindly-expand-include'.  Compute it before we
delete the keyword.
* testing/lisp/test-ox.el (test-org-export/expand-include): Add test.

Reported-by: Jens Lechtenboerger 
Link: https://orgmode.org/list/87o6xusl38@wi.uni-muenster.de
---
 lisp/ox.el  | 13 -
 testing/lisp/test-ox.el | 10 ++
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/lisp/ox.el b/lisp/ox.el
index 7e8ffc715d..274ca21c36 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -3315,7 +3315,8 @@ variables in include file names."
   (when (org-element-type-p element 'keyword)
 (forward-line 0)
 ;; Extract arguments from keyword's value.
-(let* ((value (org-element-property :value element))
+(let* ((indentation (org-current-text-indentation))
+   (value (org-element-property :value element))
(parameters (org-export-parse-include-value value dir))
(file (if expand-env
  (substitute-env-in-file-name
@@ -3340,7 +3341,8 @@ variables in include file names."
  :file-prefix file-prefix
  :footnotes footnotes
  :already-included included
- :expand-env expand-env)
+ :expand-env expand-env
+ :indentation indentation)
 ;; Expand footnotes after all files have been
 ;; included.  Footnotes are stored at end of buffer.
 (unless included
@@ -3435,7 +3437,8 @@ provided as the :unmatched parameter."
 
 (cl-defun org-export--blindly-expand-include
 (parameters
- &key includer-file file-prefix footnotes already-included expand-env)
+ &key includer-file file-prefix footnotes
+ already-included expand-env indentation)
   "Unconditionally include reference defined by PARAMETERS in the buffer.
 PARAMETERS is a plist of the form returned by `org-export-parse-include-value'.
 
@@ -3447,7 +3450,7 @@ which when provided allows footnotes to be handled 
appropriately.
 ALREADY-INCLUDED is a list of included names along with their
 line restriction which prevents recursion.  EXPAND-ENV is a flag to
 expand environment variables for #+INCLUDE keywords in the included
-file."
+file.  INDENTATION is the common indentation to be added."
   (let* ((coding-system-for-read
   (or (plist-get parameters :coding-system)
   coding-system-for-read))
@@ -3455,7 +3458,7 @@ file."
  (lines (plist-get parameters :lines))
  (args (plist-get parameters :args))
  (block (plist-get parameters :block))
- (ind (org-current-text-indentation)))
+ (ind indentation))
 (cond
  ((eq (plist-get parameters :env) 'literal)
   (insert
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index 0a39ddf2db..ec16a75fc3 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -1302,6 +1302,16 @@ Text"
 org-test-dir)
   (org-export-expand-include-keyword)
   (buffer-string
+  ;; Keep indentation
+  (should
+   (equal
+"   #+BEGIN_SRC emacs-lisp\n(+ 2 1)\n   #+END_SRC\n"
+(org-test-with-temp-text
+   (format
+"   #+INCLUDE: \"%s/examples/include.org\" :lines \"4-5\" SRC 
emacs-lisp"
+org-test-dir)
+  (org-export-expand-include-keyword)
+  (buffer-string
   ;; Inclusion within an html export-block.
   (should
(equal



[nongnu] elpa/slime updated (1b09820154 -> 62f4a5bd11)

2025-03-29 Thread ELPA Syncer
elpasync pushed a change to branch elpa/slime.

  from  1b09820154 slime-parse-context: fix defmethod parsing.
   new  5a0d95583e Add swank-indentation to *contribs*
   new  62f4a5bd11 Don't lock packages.


Summary of changes:
 contrib/swank-repl.lisp |  2 +-
 packages.lisp   |  3 +--
 swank-loader.lisp   |  9 +++--
 swank.asd   |  4 ++--
 swank.lisp  | 22 ++
 swank/backend.lisp  | 17 -
 swank/sbcl.lisp |  9 -
 7 files changed, 17 insertions(+), 49 deletions(-)



[nongnu] elpa/slime 62f4a5bd11 2/2: Don't lock packages.

2025-03-29 Thread ELPA Syncer
branch: elpa/slime
commit 62f4a5bd11480229f1aceb6bf810a995da511a0b
Author: Stas Boukarev 
Commit: Stas Boukarev 

Don't lock packages.

Doesn't actually help anything.
---
 contrib/swank-repl.lisp |  2 +-
 packages.lisp   |  3 +--
 swank-loader.lisp   |  6 +-
 swank.asd   |  4 ++--
 swank.lisp  | 22 ++
 swank/backend.lisp  | 17 -
 swank/sbcl.lisp |  9 -
 7 files changed, 15 insertions(+), 48 deletions(-)

diff --git a/contrib/swank-repl.lisp b/contrib/swank-repl.lisp
index 4f531fdcab..51049865eb 100644
--- a/contrib/swank-repl.lisp
+++ b/contrib/swank-repl.lisp
@@ -359,7 +359,7 @@ dynamic binding."
 (defun prefixed-var (prefix variable-symbol)
   "(PREFIXED-VAR \"FOO\" '*BAR*) => SWANK::*FOO-BAR*"
   (let ((basename (subseq (symbol-name variable-symbol) 1)))
-(intern (format nil "*~A-~A" (string prefix) basename) :swank-repl)))
+(intern (format nil "*~A-~A" (string prefix) basename) :swank)))
 
 (defvar *standard-output-streams*
   '(*standard-output* *error-output* *trace-output*)
diff --git a/packages.lisp b/packages.lisp
index 175b01f288..0ffdb6fa64 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -66,8 +66,7 @@
#:with-lock
#:*slime-interrupts-enabled*
#:with-slime-interrupts
-   #:without-slime-interrupts
-   #:with-unlocked-packages))
+   #:without-slime-interrupts))
 
 (swank-loader:define-package #:swank/rpc
   (:use #:cl)
diff --git a/swank-loader.lisp b/swank-loader.lisp
index b83c1776f6..2d085d42c7 100644
--- a/swank-loader.lisp
+++ b/swank-loader.lisp
@@ -314,11 +314,7 @@ If LOAD is true, load the fasl file."
   (when (#-clisp probe-file
  #+clisp ext:probe-directory
  (contrib-dir *source-directory*))
-(eval `(pushnew (lambda ()
-  (,(q "swank/backend:with-unlocked-packages") 
-   (swank swank/backend)
-   (compile-contribs)))
-,(q "swank::*after-init-hook*"
+(eval `(pushnew 'compile-contribs ,(q "swank::*after-init-hook*"
   (funcall (q "swank::init")))
 
 (defun list-swank-packages ()
diff --git a/swank.asd b/swank.asd
index f441597f3c..ff916eb07c 100644
--- a/swank.asd
+++ b/swank.asd
@@ -28,9 +28,9 @@
  (uiop:symbol-call :swank-loader :slime-version-string)
  (list
   (uiop:symbol-call :swank-loader :contrib-dir
- (symbol-value (find-symbol "*FASL-DIRECTORY*" 
'swank-loader)))
+ (symbol-value (intern "*FASL-DIRECTORY*" 'swank-loader)))
   (uiop:symbol-call :swank-loader :contrib-dir
- (symbol-value (find-symbol "*SOURCE-DIRECTORY*" 
'swank-loader))
+ (symbol-value (intern "*SOURCE-DIRECTORY*" 
'swank-loader))
   :components ((:file "swank-loader")
(:file "packages")
(:file "xref" :if-feature :clisp)
diff --git a/swank.lisp b/swank.lisp
index a00fd210a2..476d84f4e8 100644
--- a/swank.lisp
+++ b/swank.lisp
@@ -2543,15 +2543,14 @@ Record compiler notes signalled as 
`compiler-condition's."
 
 (defslimefun swank-require (modules &optional filename)
   "Load the module MODULE."
-  (with-unlocked-packages (swank/backend)
-(dolist (module (ensure-list modules))
-  (unless (member (string module) *modules* :test #'string=)
-(catch 'dont-load
-  (require module (if filename
-  (filename-to-pathname filename)
-  (module-filename module)))
-  (assert (member (string module) *modules* :test #'string=)
-  () "Required module ~s was not provided" module)
+  (dolist (module (ensure-list modules))
+(unless (member (string module) *modules* :test #'string=)
+  (catch 'dont-load
+(require module (if filename
+(filename-to-pathname filename)
+(module-filename module)))
+(assert (member (string module) *modules* :test #'string=)
+() "Required module ~s was not provided" module
   *modules*)
 
 (defvar *find-module* 'find-module
@@ -3899,9 +3898,8 @@ Collisions are caused because package information is 
ignored."
 (defun before-init (version load-path)
   (pushnew :swank *features*)
   (setq *swank-wire-protocol-version* version)
-  (setq *load-path* load-path)
-  (loop for x in '(swank/backend swank/rpc swank/match swank-mop swank/gray)
-do (lock-package x)))
+  (setq *load-path* load-path))
+
 
 (defun init ()
   (run-hook *after-init-hook*))
diff --git a/swank/backend.lisp b/swank/backend.lisp
index 3148938d1b..21bb3fde60 100644
--- a/swank/backend.lisp
+++ b/swank/backend.lisp
@@ -1642,20 +1642,3 @@ Implementations intercept calls to SPEC and call, in 
this order:
   "Handle interrupts"
   (declare (ignore interrupt-handler))
   (f

[nongnu] elpa/gptel updated (c5ffae2fe1 -> 66d93f3ddc)

2025-03-29 Thread ELPA Syncer
elpasync pushed a change to branch elpa/gptel.

  from  c5ffae2fe1 gptel-org: Fix branching context prompt creation bug
   new  3dc1cf4cef gptel: tool block spacing changes (#735)
   new  0be44d569d gptel-gemini: Add gemini-2.5-pro-exp-03-25 (#742)
   new  66d93f3ddc gptel: Spacing changes around reasoning, tool result 
blocks


Summary of changes:
 gptel-gemini.el | 12 +++-
 gptel.el| 45 ++---
 2 files changed, 41 insertions(+), 16 deletions(-)