[elpa] externals/ellama 071f49f831 08/19: Add community prompt collection feature

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 071f49f8319faa3d80a0824719dad8c1c3184786
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add community prompt collection feature

Added a new file `ellama-community-prompts.el` to include functionality for
managing and using community prompts. This includes downloading, parsing, 
and
selecting prompts from a CSV file. Also updated `ellama.el` to support 
sending
buffers to new chat sessions and added a new mode `ellama-blueprint-mode` 
with
specific keybindings for handling blueprint buffers.

Fix #98
---
 README.org  |  14 +++
 ellama-community-prompts.el | 205 
 ellama.el   |  27 +-
 3 files changed, 245 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 6e5c2a6ad5..9b491ff40c 100644
--- a/README.org
+++ b/README.org
@@ -320,6 +320,16 @@ provides much better results on reasoning tasks using AoT.
 Solve domain specific problem with simple chain. It makes LLMs act
 like a professional and adds a planning step.
 
+*** ellama-community-prompts-select-blueprint
+
+Select a prompt from the community prompt collection.
+The user is prompted to choose a role, and then a
+corresponding prompt is inserted into a blueprint buffer.
+
+*** ellama-community-prompts-update-variables
+
+Prompt user for values of variables found in current buffer and update them.
+
 ** Keymap
 
 In any buffer where there is active ellama streaming, you can press
@@ -446,6 +456,10 @@ argument generated text string.
   action function for ~ellama-preview-context-element~.
 - ~ellama-context-line-always-visible~: Make context header or mode line always
   visible, even with empty context.
+- ~ellama-community-prompts-url~: The URL of the community prompts collection.
+- ~ellama-community-prompts-file~: Path to the CSV file containing community 
prompts.
+  This file is expected to be located inside an ~ellama~ subdirectory
+  within your ~user-emacs-directory~.
 
 ** Minor modes
 
diff --git a/ellama-community-prompts.el b/ellama-community-prompts.el
new file mode 100644
index 00..0899dae268
--- /dev/null
+++ b/ellama-community-prompts.el
@@ -0,0 +1,205 @@
+;;; ellama-community-prompts.el --- Community prompt collection -*- 
lexical-binding: t -*-
+
+;; Copyright (C) 2023-2025  Free Software Foundation, Inc.
+
+;; Author: Sergey Kostyaev 
+;; URL: http://github.com/s-kostyaev/ellama
+;; Keywords: help local tools
+;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (transient "0.7") (compat 
"29.1"))
+;; Version: 1.3.0
+;; SPDX-License-Identifier: GPL-3.0-or-later
+;; Created: 8th Oct 2023
+
+;; 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:
+(require 'plz)
+(require 'ellama)
+
+(defcustom ellama-community-prompts-url 
"https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv";
+  "The URL of the community prompts collection."
+  :type 'string
+  :group 'ellama)
+
+(defcustom ellama-community-prompts-file (expand-file-name
+ "community-prompts.csv"
+ (file-name-concat
+  user-emacs-directory
+  "ellama"))
+  "Path to the CSV file containing community prompts.
+This file is expected to be located inside an `ellama' subdirectory
+within your `user-emacs-directory'."
+  :type 'file
+  :group 'ellama)
+
+(defun ellama-community-prompts-ensure-file ()
+  "Ensure that the community prompt collection file is downloaded.
+Downloads the file from `ellama-community-prompts-url` if it does
+not already exist."
+  (unless (file-exists-p ellama-community-prompts-file)
+(let* ((directory (file-name-directory ellama-community-prompts-file))
+   (response (plz 'get ellama-community-prompts-url
+   :as 'file
+   :then (lambda

[elpa] externals/ellama 4340f71d75 06/19: Refactor `ellama-context-mode` to be a derived mode

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 4340f71d75ddc39b1731f14310a7c4f5f8129dce
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Refactor `ellama-context-mode` to be a derived mode

Refactored `ellama-context-mode` to be a derived mode from 
`fundamental-mode`
and added a mode-specific suffix "ellama-ctx". Removed the minor mode test 
as it
is no longer applicable.
---
 ellama.el| 6 --
 tests/test-ellama.el | 8 
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/ellama.el b/ellama.el
index 3fab3069e6..6f26f2bbe9 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1228,7 +1228,9 @@ the context."
   "d"   #'ellama-remove-context-element-at-point
   "RET" #'ellama-preview-context-element-at-point)
 
-(define-minor-mode ellama-context-mode
+(define-derived-mode ellama-context-mode
+  fundamental-mode
+  "ellama-ctx"
   "Toggle Ellama Context mode."
   :keymap ellama-context-mode-map
   :group 'ellama)
@@ -1239,7 +1241,7 @@ the context."
  (inhibit-read-only t))
 (with-current-buffer buf
   (read-only-mode +1)
-  (ellama-context-mode +1)
+  (ellama-context-mode)
   (erase-buffer)
   (dolist (el ellama--global-context)
 (insert (ellama-context-element-display el))
diff --git a/tests/test-ellama.el b/tests/test-ellama.el
index 6b47022191..6f695afe0c 100644
--- a/tests/test-ellama.el
+++ b/tests/test-ellama.el
@@ -415,14 +415,6 @@ Snake case helps improve readability, especially in 
languages that are sensitive
   (ellama--fix-file-name "a/\\?%*:|\"<>.;=")
   "a_")))
 
-(ert-deftest ellama-context-minor-mode-test ()
-  (with-temp-buffer
-(should-not ellama-context-mode)
-(ellama-context-mode 1)
-(should ellama-context-mode)
-(ellama-context-mode -1)
-(should-not ellama-context-mode)))
-
 (provide 'test-ellama)
 
 ;;; test-ellama.el ends here



[elpa] externals/ellama 7e0b688d7f 03/19: Enhance transient model loading description

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 7e0b688d7f4a188828e6ce5422a371605f05f7cc
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Enhance transient model loading description

Updated the transient menu item for loading from the current session to
dynamically display the current session ID.
---
 ellama.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ellama.el b/ellama.el
index 694057b0e4..171097dc2b 100644
--- a/ellama.el
+++ b/ellama.el
@@ -2951,6 +2951,7 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 ("f" "Load from provider" ellama-transient-model-get-from-provider
  :transient t)
 ("F" "Load from current session" 
ellama-transient-model-get-from-current-session
+ :description (lambda () (format "Load from current session (%s)" 
ellama--current-session-id))
  :transient t)
 ("m" "Set Model" ellama-transient-set-ollama-model
  :transient t



[elpa] externals/ellama ad88edf9ed 16/19: Merge pull request #238 from s-kostyaev/ux-improvements

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit ad88edf9edc313f10107c45a8a21ecf6b6b6d139
Merge: 1c52902d4d f94002a405
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #238 from s-kostyaev/ux-improvements

Improve transient menu
---
 NEWS.org|   7 ++
 README.org  |  20 +
 ellama-community-prompts.el | 200 
 ellama.el   | 172 +++--
 tests/test-ellama.el|   8 --
 5 files changed, 355 insertions(+), 52 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index 9ec0c38ba8..98e0d56657 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,10 @@
+* Version 1.4.0
+- Improved transient menus.
+- Added ellama-session-kill functionality.
+- Added community prompt collection feature.
+- Refactored ~ellama-context-mode~ to be a major mode.
+- Added functionality to remove context elements by name.
+- Added option to always show context line in header or mode line.
 * Version 1.3.0
 - Implemented ellama context header line and mode line features.
 - Added ~ellama-context-header-line-mode~, ~ellama-context-mode-line-mode~ and
diff --git a/README.org b/README.org
index 1bda4fb572..205216a3dc 100644
--- a/README.org
+++ b/README.org
@@ -250,6 +250,10 @@ Delete ellama session.
 
 Change current active session.
 
+*** ellama-session-kill
+
+Select and kill one of active sessions.
+
 *** ellama-session-rename
 
 Rename current ellama session.
@@ -320,6 +324,16 @@ provides much better results on reasoning tasks using AoT.
 Solve domain specific problem with simple chain. It makes LLMs act
 like a professional and adds a planning step.
 
+*** ellama-community-prompts-select-blueprint
+
+Select a prompt from the community prompt collection.
+The user is prompted to choose a role, and then a
+corresponding prompt is inserted into a blueprint buffer.
+
+*** ellama-community-prompts-update-variables
+
+Prompt user for values of variables found in current buffer and update them.
+
 ** Keymap
 
 In any buffer where there is active ellama streaming, you can press
@@ -444,6 +458,12 @@ argument generated text string.
   ~display-buffer-same-window~.
 - ~ellama-preview-context-element-display-action-function~: Display
   action function for ~ellama-preview-context-element~.
+- ~ellama-context-line-always-visible~: Make context header or mode line always
+  visible, even with empty context.
+- ~ellama-community-prompts-url~: The URL of the community prompts collection.
+- ~ellama-community-prompts-file~: Path to the CSV file containing community 
prompts.
+  This file is expected to be located inside an ~ellama~ subdirectory
+  within your ~user-emacs-directory~.
 
 ** Minor modes
 
diff --git a/ellama-community-prompts.el b/ellama-community-prompts.el
new file mode 100644
index 00..c4f1aebc05
--- /dev/null
+++ b/ellama-community-prompts.el
@@ -0,0 +1,200 @@
+;;; ellama-community-prompts.el --- Community prompt collection -*- 
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:
+(require 'plz)
+(require 'ellama)
+
+(defcustom ellama-community-prompts-url 
"https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv";
+  "The URL of the community prompts collection."
+  :type 'string
+  :group 'ellama)
+
+(defcustom ellama-community-prompts-file (expand-file-name
+ "community-prompts.csv"
+ (file-name-concat
+  user-emacs-directory
+  "ellama"))
+  "Path to the CSV file containing community prompts.
+This file is expected to be located inside an `ellama' subdirectory
+within your `user-emacs-directory'

[elpa] externals/ellama 4bb90fcbd6 18/19: Update README for ellama provider description

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 4bb90fcbd6d9eefe560234743cc88ce830907d31
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README for ellama provider description

Updated the description of `ellama-provider` in the README to remove the
specific mention of the default model and provide a general overview of
supported providers.
---
 README.org | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/README.org b/README.org
index f33a4524e4..bca8fb52a7 100644
--- a/README.org
+++ b/README.org
@@ -406,8 +406,7 @@ The following variables can be customized for the Ellama 
client:
 - ~ellama-assistant-nick~: The assistant nick in logs.
 - ~ellama-language~: The language for Ollama translation. Default
 language is english.
-- ~ellama-provider~: llm provider for ellama. Default provider is
-~ollama~ with [[https://ollama.ai/library/zephyr][zephyr]] model.
+- ~ellama-provider~: llm provider for ellama.
 There are many supported providers: ~ollama~, ~open ai~, ~vertex~,
 ~GPT4All~. For more information see 
[[https://elpa.gnu.org/packages/llm.html][llm documentation]].
 - ~ellama-providers~: association list of model llm providers with



[elpa] externals/ellama 62364b5a4e 05/19: Add functionality to remove context elements by name

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 62364b5a4eb85f15cf58cc143c2530ac967d4569
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add functionality to remove context elements by name

Added a new function `ellama-context--element-remove-by-name` to remove all
context elements that match by name. Also added an interactive function
`ellama-context-element-remove-by-name` to prompt the user for the name of 
the
element to remove and then call the internal function. Updated the transient
prefix menu to include a new "Delete element" option under the "Manage" 
section.
---
 ellama.el | 34 +-
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/ellama.el b/ellama.el
index 1201ccf045..3fab3069e6 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1057,6 +1057,27 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (erase-buffer))
   (ellama-update-context-show))
 
+(defun ellama-context--element-remove-by-name (name)
+  "Remove all context element that matches by NAME."
+  (setq ellama--global-context
+   (cl-remove-if (lambda (el)
+   (string= name (ellama-context-element-display el)))
+ ellama--global-context)))
+
+;;;###autoload
+(defun ellama-context-element-remove-by-name ()
+  "Remove a context element by its name from the global context.
+This function prompts the user to select a context element from
+the list of unique elements currently present in the global
+context and removes it.  After removal, it updates the display of
+the context."
+  (interactive)
+  (ellama-context--element-remove-by-name
+   (completing-read
+"Remove context element: "
+(seq-uniq (mapcar #'ellama-context-element-display 
ellama--global-context
+  (ellama-update-context-show))
+
 ;; Context elements
 
 (defclass ellama-context-element () ()
@@ -3075,18 +3096,21 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 
 (transient-define-prefix ellama-transient-context-menu ()
   "Context Commands."
-  [["Context Commands"
-:description (lambda ()
-  (ellama-update-context-buffer)
-  (format "Current context:
+  ["Context Commands"
+   :description (lambda ()
+ (ellama-update-context-buffer)
+ (format "Current context:
 %s" (with-current-buffer ellama-context-buffer
   (buffer-substring (point-min) (point-max)
+   ["Add"
 ("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)
+("i" "Add Info Node" ellama-context-add-info-node)]
+   ["Manage"
 ("m" "Manage context" ellama-manage-context)
+("D" "Delete element" ellama-context-element-remove-by-name)
 ("r" "Context reset" ellama-context-reset)]
["Quit" ("q" "Quit" transient-quit-one)]])
 



[elpa] externals/ellama 7ac470cc06 07/19: Enhance header line format handling in `ellama.el`

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 7ac470cc066200bbcc82a16c9ccb90bd9107cfe8
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Enhance header line format handling in `ellama.el`

Ensure that modifications to the `header-line-format` only occur when it is 
a
list. This prevents errors when `header-line-format` is not a list, such as
when magit set it to string.
---
 ellama.el | 14 --
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/ellama.el b/ellama.el
index 6f26f2bbe9..6fdbc3ca6d 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1157,7 +1157,8 @@ the context."
   (add-hook 'window-state-change-hook #'ellama-context-update-header-line)
   (if ellama-context-header-line-mode
   (ellama-context-update-header-line)
-(setq header-line-format (delete '(:eval (ellama-context-line)) 
header-line-format
+(when (listp header-line-format)
+  (setq header-line-format (delete '(:eval (ellama-context-line)) 
header-line-format)
 
 ;;;###autoload
 (define-globalized-minor-mode ellama-context-header-line-global-mode
@@ -1166,11 +1167,12 @@ the context."
 
 (defun ellama-context-update-header-line ()
   "Update and display context information in the header line."
-  (if (and ellama-context-header-line-mode
-  (or ellama-context-line-always-visible
-  ellama--global-context))
-  (add-to-list 'header-line-format '(:eval (ellama-context-line)) t)
-(setq header-line-format (delete '(:eval (ellama-context-line)) 
header-line-format
+  (when (listp header-line-format)
+(if (and ellama-context-header-line-mode
+(or ellama-context-line-always-visible
+ellama--global-context))
+   (add-to-list 'header-line-format '(:eval (ellama-context-line)) t)
+  (setq header-line-format (delete '(:eval (ellama-context-line)) 
header-line-format)
 
 ;;;###autoload
 (define-minor-mode ellama-context-mode-line-mode



[elpa] externals/ellama bbac4df186 01/19: Reorganize transient menu

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

Reorganize transient menu

Reorganized the `ellama-transient-main-menu` by grouping related commands
together and reordering them for better usability.

Relates #236
---
 ellama.el | 32 
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/ellama.el b/ellama.el
index e6171a1922..23a0ff6007 100644
--- a/ellama.el
+++ b/ellama.el
@@ -3072,25 +3072,25 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 
 (transient-define-prefix ellama-transient-main-menu ()
   "Main Menu."
-  [["Main"
-("c" "Chat" ellama-chat)
-("w" "Write" ellama-write)
+  ["Main"
+   [("c" "Chat" ellama-chat)]
+   [("a" "Ask Commands" ellama-transient-ask-menu)
+("C" "Code Commands" ellama-transient-code-menu)]]
+  ["Text"
+   [("w" "Write" ellama-write)
 ("P" "Proofread" ellama-proofread)
-("a" "Ask Commands" ellama-transient-ask-menu)
-("C" "Code Commands" ellama-transient-code-menu)
-("o" "Ollama model" ellama-select-ollama-model)]]
-  [["Text"
-("s" "Summarize Commands" ellama-transient-summarize-menu)
-("i" "Improve Commands" ellama-transient-improve-menu)
-("t" "Translate Commands" ellama-transient-translate-menu)
-("m" "Make Commands" ellama-transient-make-menu)
 ("k" "Text Complete" ellama-complete)
 ("g" "Text change" ellama-change)
-("d" "Define word" ellama-define-word)]]
-  [["System"
-("S" "Session Commands" ellama-transient-session-menu)
-("x" "Context Commands" ellama-transient-context-menu)
-("p" "Provider selection" ellama-provider-select)]]
+("d" "Define word" ellama-define-word)]
+   [("s" "Summarize Commands" ellama-transient-summarize-menu)
+("i" "Improve Commands" ellama-transient-improve-menu)
+("t" "Translate Commands" ellama-transient-translate-menu)
+("m" "Make Commands" ellama-transient-make-menu)]]
+  ["System"
+   [("o" "Ollama model" ellama-select-ollama-model)
+("p" "Provider selection" ellama-provider-select)]
+   [("S" "Session Commands" ellama-transient-session-menu)
+("x" "Context Commands" ellama-transient-context-menu)]]
   [["Problem solving"
 ("R" "Solve reasoning problem" ellama-solve-reasoning-problem)
 ("D" "Solve domain specific problem" 
ellama-solve-domain-specific-problem)]]



[elpa] externals/ellama d007a0f96f 04/19: Display current context in transient menu

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

Display current context in transient menu

Refactored `ellama-manage-context` function to separate concerns by 
introducing
a new helper function `ellama-update-context-buffer`. Updated the transient
prefix command to refresh the context buffer content before displaying it. 
This
ensures that the displayed context is always up-to-date.
---
 ellama.el | 27 ++-
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/ellama.el b/ellama.el
index 171097dc2b..1201ccf045 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1212,10 +1212,8 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   :keymap ellama-context-mode-map
   :group 'ellama)
 
-;;;###autoload
-(defun ellama-manage-context ()
-  "Manage the global context."
-  (interactive)
+(defun ellama-update-context-buffer ()
+  "Update ellama context buffer."
   (let* ((buf (get-buffer-create ellama-context-buffer))
  (inhibit-read-only t))
 (with-current-buffer buf
@@ -1226,11 +1224,17 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (insert (ellama-context-element-display el))
 (put-text-property (pos-bol) (pos-eol) 'context-element el)
 (insert "\n"))
-  (goto-char (point-min))
-  (display-buffer
-   buf
-   (when ellama-manage-context-display-action-function
-`((ignore . (,ellama-manage-context-display-action-function
+  (goto-char (point-min)
+
+;;;###autoload
+(defun ellama-manage-context ()
+  "Manage the global context."
+  (interactive)
+  (ellama-update-context-buffer)
+  (display-buffer
+   ellama-context-buffer
+   (when ellama-manage-context-display-action-function
+ `((ignore . (,ellama-manage-context-display-action-function))
 
 (defvar-keymap ellama-preview-context-mode-map
   :doc "Local keymap for Ellama preview context mode buffers."
@@ -3072,6 +3076,11 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 (transient-define-prefix ellama-transient-context-menu ()
   "Context Commands."
   [["Context Commands"
+:description (lambda ()
+  (ellama-update-context-buffer)
+  (format "Current context:
+%s" (with-current-buffer ellama-context-buffer
+  (buffer-substring (point-min) (point-max)
 ("b" "Add Buffer" ellama-context-add-buffer)
 ("d" "Add Directory" ellama-context-add-directory)
 ("f" "Add File" ellama-context-add-file)



[elpa] externals/ellama 0eac37ffe3 09/19: Add ellama-session-kill functionality

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 0eac37ffe353f6a685dd852b2f4a4ae6db2f3dee
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add ellama-session-kill functionality

Added new function `ellama-session-kill` to select and kill an active 
session.
Updated README.org with new command description. Modified the transient 
menu to
include the new "Kill Session" option.
---
 README.org |  4 
 ellama.el  | 13 -
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 9b491ff40c..205216a3dc 100644
--- a/README.org
+++ b/README.org
@@ -250,6 +250,10 @@ Delete ellama session.
 
 Change current active session.
 
+*** ellama-session-kill
+
+Select and kill one of active sessions.
+
 *** ellama-session-rename
 
 Rename current ellama session.
diff --git a/ellama.el b/ellama.el
index 92bdd3cd9e..3bfc2fbe19 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1002,6 +1002,16 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (display-buffer buffer (when ellama-chat-display-action-function
 `((ignore . 
(,ellama-chat-display-action-function)))
 
+;;;###autoload
+(defun ellama-session-kill ()
+  "Select and kill one of active sessions."
+  (interactive)
+  (let* ((id (completing-read
+ "Select session to kill: "
+ (hash-table-keys ellama--active-sessions)))
+(buffer (ellama-get-session-buffer id)))
+(kill-buffer buffer)))
+
 ;;;###autoload
 (defun ellama-session-rename ()
   "Rename current ellama session."
@@ -3086,7 +3096,8 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
 ("l" "Load Session" ellama-load-session)
 ("r" "Rename Session" ellama-session-rename)
 ("d" "Delete Session" ellama-session-delete)
-("a" "Activate Session" ellama-session-switch)]
+("a" "Activate Session" ellama-session-switch)
+("k" "Kill Session" ellama-session-kill)]
["Quit" ("q" "Quit" transient-quit-one)]])
 
 (transient-define-prefix ellama-transient-improve-menu ()



[elpa] externals/ellama ee030435d4 02/19: Add option to always show context line in header or mode line

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

Add option to always show context line in header or mode line

Added new customization option `ellama-context-line-always-visible` to 
ensure
the context header or mode line is always visible, even when there is no 
content
in the context. Updated relevant functions to incorporate this new option.

Fix #237
---
 README.org |  2 ++
 ellama.el  | 32 +---
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/README.org b/README.org
index 1bda4fb572..6e5c2a6ad5 100644
--- a/README.org
+++ b/README.org
@@ -444,6 +444,8 @@ argument generated text string.
   ~display-buffer-same-window~.
 - ~ellama-preview-context-element-display-action-function~: Display
   action function for ~ellama-preview-context-element~.
+- ~ellama-context-line-always-visible~: Make context header or mode line always
+  visible, even with empty context.
 
 ** Minor modes
 
diff --git a/ellama.el b/ellama.el
index 23a0ff6007..694057b0e4 100644
--- a/ellama.el
+++ b/ellama.el
@@ -131,6 +131,11 @@ Make reasoning models more useful for many cases."
   :group 'ellama
   :type 'boolean)
 
+(defcustom ellama-context-line-always-visible nil
+  "Make context header or mode line always visible, even with empty context."
+  :group 'ellama
+  :type 'boolean)
+
 (defcustom ellama-command-map
   (let ((map (make-sparse-keymap)))
 ;; code
@@ -1085,15 +1090,16 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   (declare-function posframe-hide "ext:posframe")
   (with-current-buffer ellama--context-buffer
 (erase-buffer)
-(when ellama--global-context
-  (insert (format
-  " ellama ctx: %s"
-  (string-join
-   (mapcar
-(lambda (el)
-  (ellama-context-element-display el))
-ellama--global-context)
-   "  ")
+(if ellama--global-context
+   (insert (format
+" ellama ctx: %s"
+(string-join
+ (mapcar
+  (lambda (el)
+(ellama-context-element-display el))
+  ellama--global-context)
+ "  ")))
+  (insert " ellama ctx")))
   (when ellama-context-posframe-enabled
 (require 'posframe)
 (if ellama--global-context
@@ -1139,7 +1145,9 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 
 (defun ellama-context-update-header-line ()
   "Update and display context information in the header line."
-  (if (and ellama-context-header-line-mode ellama--global-context)
+  (if (and ellama-context-header-line-mode
+  (or ellama-context-line-always-visible
+  ellama--global-context))
   (add-to-list 'header-line-format '(:eval (ellama-context-line)) t)
 (setq header-line-format (delete '(:eval (ellama-context-line)) 
header-line-format
 
@@ -1165,7 +1173,9 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 
 (defun ellama-context-update-mode-line ()
   "Update and display context information in the mode line."
-  (if (and ellama-context-mode-line-mode ellama--global-context)
+  (if (and ellama-context-mode-line-mode
+  (or ellama-context-line-always-visible
+  ellama--global-context))
   (add-to-list 'mode-line-format '(:eval (ellama-context-line)) t)
 (setq mode-line-format (delete '(:eval (ellama-context-line)) 
mode-line-format
 



[elpa] externals/ellama fb01a0cefe 19/19: Merge pull request #241 from s-kostyaev/improve-readme

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit fb01a0cefe4ae813f141d255ce5afeae573968e2
Merge: ad88edf9ed 4bb90fcbd6
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #241 from s-kostyaev/improve-readme

Add simple configuration example to readme
---
 README.org | 18 +++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index 205216a3dc..bca8fb52a7 100644
--- a/README.org
+++ b/README.org
@@ -31,6 +31,19 @@ You can use ~ellama~ with other model or other llm provider.
 Without any configuration, the first available ollama model will be used.
 You can customize ellama configuration like this:
 
+#+BEGIN_SRC  emacs-lisp
+  (use-package ellama
+:ensure t
+:bind ("C-c e" . ellama-transient-main-menu)
+:config
+;; show ellama context in header line in all buffers
+(ellama-context-header-line-global-mode +1)
+;; send last message in chat buffer with C-c C-c
+(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
+#+END_SRC
+
+More sofisticated configuration example:
+
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
@@ -99,7 +112,7 @@ You can customize ellama configuration like this:
 ;; show ellama context in header line in all buffers
 (ellama-context-header-line-global-mode +1)
 ;; send last message in chat buffer with C-c C-c
-(add-hook 'org-ctrl-c-ctrl-c-hook #'ellama-chat-send-last-message))
+(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
 #+END_SRC
 
 ** Commands
@@ -393,8 +406,7 @@ The following variables can be customized for the Ellama 
client:
 - ~ellama-assistant-nick~: The assistant nick in logs.
 - ~ellama-language~: The language for Ollama translation. Default
 language is english.
-- ~ellama-provider~: llm provider for ellama. Default provider is
-~ollama~ with [[https://ollama.ai/library/zephyr][zephyr]] model.
+- ~ellama-provider~: llm provider for ellama.
 There are many supported providers: ~ollama~, ~open ai~, ~vertex~,
 ~GPT4All~. For more information see 
[[https://elpa.gnu.org/packages/llm.html][llm documentation]].
 - ~ellama-providers~: association list of model llm providers with



[elpa] externals/ellama 9d5b7046b3 14/19: Update package dependencies

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 9d5b7046b32ea43215681ef7440c6a03ff4cb8d6
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update package dependencies

Updated package dependencies by adding new plz module
---
 ellama.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index e460c8d199..20f16e943e 100644
--- a/ellama.el
+++ b/ellama.el
@@ -5,7 +5,7 @@
 ;; Author: Sergey Kostyaev 
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
-;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (transient "0.7") (compat 
"29.1"))
+;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
 ;; Version: 1.3.0
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023



[elpa] externals/ellama 8e26db91c8 11/19: Update menu item

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 8e26db91c867f02713cebba89af3a4a9686266e7
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update menu item

Updated the menu item text for better clarity and user experience. Changed
"Community blueprint" to "Chat with community blueprint".
---
 ellama.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 3bfc2fbe19..e460c8d199 100644
--- a/ellama.el
+++ b/ellama.el
@@ -3157,7 +3157,7 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
   "Main Menu."
   ["Main"
[("c" "Chat" ellama-chat)
-("B" "Community blueprint" ellama-community-prompts-select-blueprint)]
+("B" "Chat with community blueprint" 
ellama-community-prompts-select-blueprint)]
[("a" "Ask Commands" ellama-transient-ask-menu)
 ("C" "Code Commands" ellama-transient-code-menu)]]
   ["Text"



[elpa] externals/ellama 49593e60fa 12/19: Update variable prompt format

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 49593e60fae977726bd70031c2c6c3c8b3320a76
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update variable prompt format

Changed the variable prompt format to include curly braces around the 
variable
name for better clarity.
---
 ellama-community-prompts.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ellama-community-prompts.el b/ellama-community-prompts.el
index 6911d82a7a..3335760dba 100644
--- a/ellama-community-prompts.el
+++ b/ellama-community-prompts.el
@@ -198,7 +198,7 @@ Optional argument FOR-DEVS filters prompts for developers."
   (interactive)
   (let ((vars (ellama-community-prompts-get-variable-list)))
 (dolist (var vars)
-  (let ((value (read-string (format "Enter value for %s: " var
+  (let ((value (read-string (format "Enter value for {%s}: " var
 (ellama-community-prompts-set-variable var value)
 
 (provide 'ellama-community-prompts)



[elpa] externals/ellama d9de354092 17/19: Add simple configuration example to readme

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

Add simple configuration example to readme
---
 README.org | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 205216a3dc..f33a4524e4 100644
--- a/README.org
+++ b/README.org
@@ -31,6 +31,19 @@ You can use ~ellama~ with other model or other llm provider.
 Without any configuration, the first available ollama model will be used.
 You can customize ellama configuration like this:
 
+#+BEGIN_SRC  emacs-lisp
+  (use-package ellama
+:ensure t
+:bind ("C-c e" . ellama-transient-main-menu)
+:config
+;; show ellama context in header line in all buffers
+(ellama-context-header-line-global-mode +1)
+;; send last message in chat buffer with C-c C-c
+(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
+#+END_SRC
+
+More sofisticated configuration example:
+
 #+BEGIN_SRC  emacs-lisp
   (use-package ellama
 :ensure t
@@ -99,7 +112,7 @@ You can customize ellama configuration like this:
 ;; show ellama context in header line in all buffers
 (ellama-context-header-line-global-mode +1)
 ;; send last message in chat buffer with C-c C-c
-(add-hook 'org-ctrl-c-ctrl-c-hook #'ellama-chat-send-last-message))
+(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
 #+END_SRC
 
 ** Commands



[elpa] externals/ellama a43bf8db31 13/19: Update ellama-community-prompts.el header

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

Update ellama-community-prompts.el header

Added package-lint-main-file directive and removed unnecessary metadata.
---
 ellama-community-prompts.el | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/ellama-community-prompts.el b/ellama-community-prompts.el
index 3335760dba..c4f1aebc05 100644
--- a/ellama-community-prompts.el
+++ b/ellama-community-prompts.el
@@ -1,14 +1,9 @@
-;;; ellama-community-prompts.el --- Community prompt collection -*- 
lexical-binding: t -*-
+;;; ellama-community-prompts.el --- Community prompt collection -*- 
lexical-binding: t; package-lint-main-file: "ellama.el"; -*-
 
 ;; Copyright (C) 2023-2025  Free Software Foundation, Inc.
 
 ;; Author: Sergey Kostyaev 
-;; URL: http://github.com/s-kostyaev/ellama
-;; Keywords: help local tools
-;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (transient "0.7") (compat 
"29.1"))
-;; Version: 1.3.0
 ;; SPDX-License-Identifier: GPL-3.0-or-later
-;; Created: 8th Oct 2023
 
 ;; 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



[elpa] externals/ellama f94002a405 15/19: Bump version

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

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

diff --git a/NEWS.org b/NEWS.org
index 9ec0c38ba8..98e0d56657 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,10 @@
+* Version 1.4.0
+- Improved transient menus.
+- Added ellama-session-kill functionality.
+- Added community prompt collection feature.
+- Refactored ~ellama-context-mode~ to be a major mode.
+- Added functionality to remove context elements by name.
+- Added option to always show context line in header or mode line.
 * Version 1.3.0
 - Implemented ellama context header line and mode line features.
 - Added ~ellama-context-header-line-mode~, ~ellama-context-mode-line-mode~ and
diff --git a/ellama.el b/ellama.el
index 20f16e943e..444a9769b1 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.3.0
+;; Version: 1.4.0
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] main 7ef0b3ab7d: * elpa-packages (consult-recoll): Add :news

2025-02-23 Thread Philip Kaludercic
branch: main
commit 7ef0b3ab7d1bc61e672c65c3f6b72745bd1d23c9
Author: Philip Kaludercic 
Commit: Philip Kaludercic 

* elpa-packages (consult-recoll): Add :news
---
 elpa-packages | 1 +
 1 file changed, 1 insertion(+)

diff --git a/elpa-packages b/elpa-packages
index 2180f66d8d..eb374b4fb8 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -188,6 +188,7 @@
   :ignored-files ("LICENSE"))
  (consult-recoll   :url "https://codeberg.org/jao/consult-recoll";
   :ignored-files ("license")
+  :news "changelog.org"
   :readme "readme.org")
  ;; FIXME: https://github.com/jacksonrayhamilton/context-coloring/issues/9
  (context-coloring :url 
"https://github.com/jacksonrayhamilton/context-coloring.git";)



[elpa] externals/ellama updated (1c52902d4d -> fb01a0cefe)

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

  from  1c52902d4d Merge pull request #235 from 
s-kostyaev/add-context-header-line
   new  bbac4df186 Reorganize transient menu
   new  ee030435d4 Add option to always show context line in header or mode 
line
   new  7e0b688d7f Enhance transient model loading description
   new  d007a0f96f Display current context in transient menu
   new  62364b5a4e Add functionality to remove context elements by name
   new  4340f71d75 Refactor `ellama-context-mode` to be a derived mode
   new  7ac470cc06 Enhance header line format handling in `ellama.el`
   new  071f49f831 Add community prompt collection feature
   new  0eac37ffe3 Add ellama-session-kill functionality
   new  25d34ce337 Fix community prompts
   new  8e26db91c8 Update menu item
   new  49593e60fa Update variable prompt format
   new  a43bf8db31 Update ellama-community-prompts.el header
   new  9d5b7046b3 Update package dependencies
   new  f94002a405 Bump version
   new  ad88edf9ed Merge pull request #238 from s-kostyaev/ux-improvements
   new  d9de354092 Add simple configuration example to readme
   new  4bb90fcbd6 Update README for ellama provider description
   new  fb01a0cefe Merge pull request #241 from s-kostyaev/improve-readme


Summary of changes:
 NEWS.org|   7 ++
 README.org  |  38 -
 ellama-community-prompts.el | 200 
 ellama.el   | 172 +++--
 tests/test-ellama.el|   8 --
 5 files changed, 370 insertions(+), 55 deletions(-)
 create mode 100644 ellama-community-prompts.el



[elpa] externals/ellama 25d34ce337 10/19: Fix community prompts

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 25d34ce3370d61ac8a380debe1eb3c105b5fd5dc
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Fix community prompts
---
 ellama-community-prompts.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ellama-community-prompts.el b/ellama-community-prompts.el
index 0899dae268..6911d82a7a 100644
--- a/ellama-community-prompts.el
+++ b/ellama-community-prompts.el
@@ -154,7 +154,7 @@ Optional argument FOR-DEVS filters prompts for developers."
   (let ((acts '())
 selected-act selected-prompt)
 ;; Collect unique acts from the filtered collection
-(dolist (prompt ellama-community-prompts-collection)
+(dolist (prompt (ellama-community-prompts-ensure))
   (when (or (not for-devs) (eq for-devs (plist-get prompt :for-devs)))
 (cl-pushnew (plist-get prompt :act) acts)))
 ;; Prompt user to select an act



[nongnu] elpa/helm cf557ff745 2/2: Merge pull request #2711 from tarsiiformes/transient-compat

2025-02-23 Thread ELPA Syncer
branch: elpa/helm
commit cf557ff7451a7bf729f0f0fb39a1607031c17d99
Merge: 4ccdefb7d0 e451b6b24a
Author: Thierry Volpiatto 
Commit: GitHub 

Merge pull request #2711 from tarsiiformes/transient-compat

Don't include transient's menu window in saved window configuration
---
 helm-core.el | 15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/helm-core.el b/helm-core.el
index 6a9fa70d30..cb5104e056 100644
--- a/helm-core.el
+++ b/helm-core.el
@@ -42,6 +42,9 @@
 (declare-function helm-quit-and-find-file "helm-utils.el")
 (declare-function linum-mode "linum.el")
 (declare-function minibuffer-depth-setup "mb-depth.el")
+(declare-function transient--delete-window "ext:transient" ())
+(declare-function transient--preserve-window-p "ext:transient"
+  (&optional nohide))
 
 (defvar helm-marked-buffer-name)
 (defvar display-buffer-function)
@@ -638,13 +641,13 @@ If t, then Helm does not pop-up a new window."
   :type 'string)
 
 (defcustom helm-save-configuration-functions
-  '(set-window-configuration . current-window-configuration)
+  '(set-window-configuration . helm-current-window-configuration)
   "Functions used to restore or save configurations for frames and windows.
 Specified as a pair of functions, where car is the restore
 function and cdr is the save function.
 
 To save and restore frame configuration, set this variable to
-\\='(set-frame-configuration . current-frame-configuration)
+\\='(set-frame-configuration . helm-current-frame-configuration)
 
 NOTE: This may not work properly with own-frame minibuffer
 settings.  Older versions saves/restores frame configuration, but
@@ -3373,6 +3376,14 @@ frame configuration as per 
`helm-save-configuration-functions'."
  ((symbol-function 'x-focus-frame) #'ignore))
  (select-frame-set-input-focus frame))
 
+(defun helm-current-window-configuration ()
+  "Like `current-window-configuration' but deal with Transient incompatibility.
+See https://github.com/magit/transient/discussions/361 for details."
+  (when (and (window-live-p (bound-and-true-p transient--window))
+ (not (transient--preserve-window-p)))
+(transient--delete-window))
+  (current-window-configuration))
+
 (defun helm-split-window-default-fn (window)
   "Default function to split windows before displaying `helm-buffer'.
 



[nongnu] elpa/emacsql ad9d1b9715 2/2: readme: Use separate section to talk about quoting

2025-02-23 Thread ELPA Syncer
branch: elpa/emacsql
commit ad9d1b97156975bf808ecdd8eb65b374b24db1a6
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

readme: Use separate section to talk about quoting
---
 README.md | 18 ++
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 7185c3cfbe..5a6e004126 100644
--- a/README.md
+++ b/README.md
@@ -146,6 +146,16 @@ For function-like "operators" like `count` and `max` use 
the `funcall`
 [:select (funcall max age) :from people]
 ```
 
+With `glob` and `like` SQL operators keep in mind that they're
+matching the *printed* representations of these values, even if the
+value is a string.
+
+The `||` concatenation operator is unsupported because concatenating
+printed representations breaks an important constraint: all values must
+remain readable within SQLite.
+
+## Quoting
+
 Inside expressions, EmacSQL cannot tell the difference between symbol
 literals and column references. If you're talking about the symbol
 itself, just quote it as you would in normal Elisp. Note that this
@@ -169,14 +179,6 @@ returned as results.
 Since template parameters include their type they never need to be
 quoted.
 
-With `glob` and `like` SQL operators keep in mind that they're
-matching the *printed* representations of these values, even if the
-value is a string.
-
-The `||` concatenation operator is unsupported because concatenating
-printed representations breaks an important constraint: all values must
-remain readable within SQLite.
-
 ## Prepared Statements
 
 The database is interacted with via prepared SQL s-expression



[nongnu] elpa/helm e451b6b24a 1/2: Don't include transient's menu window in saved window configuration

2025-02-23 Thread ELPA Syncer
branch: elpa/helm
commit e451b6b24a2e5f6b69130b21653bc237099bded5
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Don't include transient's menu window in saved window configuration

Discussed at https://github.com/magit/transient/discussions/361.
---
 helm-core.el | 15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/helm-core.el b/helm-core.el
index 6a9fa70d30..cb5104e056 100644
--- a/helm-core.el
+++ b/helm-core.el
@@ -42,6 +42,9 @@
 (declare-function helm-quit-and-find-file "helm-utils.el")
 (declare-function linum-mode "linum.el")
 (declare-function minibuffer-depth-setup "mb-depth.el")
+(declare-function transient--delete-window "ext:transient" ())
+(declare-function transient--preserve-window-p "ext:transient"
+  (&optional nohide))
 
 (defvar helm-marked-buffer-name)
 (defvar display-buffer-function)
@@ -638,13 +641,13 @@ If t, then Helm does not pop-up a new window."
   :type 'string)
 
 (defcustom helm-save-configuration-functions
-  '(set-window-configuration . current-window-configuration)
+  '(set-window-configuration . helm-current-window-configuration)
   "Functions used to restore or save configurations for frames and windows.
 Specified as a pair of functions, where car is the restore
 function and cdr is the save function.
 
 To save and restore frame configuration, set this variable to
-\\='(set-frame-configuration . current-frame-configuration)
+\\='(set-frame-configuration . helm-current-frame-configuration)
 
 NOTE: This may not work properly with own-frame minibuffer
 settings.  Older versions saves/restores frame configuration, but
@@ -3373,6 +3376,14 @@ frame configuration as per 
`helm-save-configuration-functions'."
  ((symbol-function 'x-focus-frame) #'ignore))
  (select-frame-set-input-focus frame))
 
+(defun helm-current-window-configuration ()
+  "Like `current-window-configuration' but deal with Transient incompatibility.
+See https://github.com/magit/transient/discussions/361 for details."
+  (when (and (window-live-p (bound-and-true-p transient--window))
+ (not (transient--preserve-window-p)))
+(transient--delete-window))
+  (current-window-configuration))
+
 (defun helm-split-window-default-fn (window)
   "Default function to split windows before displaying `helm-buffer'.
 



[nongnu] elpa/emacsql c39e2c1f83 1/2: emacsql-sqlite-list-tables: Fix format of return value

2025-02-23 Thread ELPA Syncer
branch: elpa/emacsql
commit c39e2c1f838bfc1d289c74e92cc28340254a2581
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

emacsql-sqlite-list-tables: Fix format of return value
---
 emacsql-sqlite.el | 21 +++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/emacsql-sqlite.el b/emacsql-sqlite.el
index 753ee80bdd..2f00970f57 100644
--- a/emacsql-sqlite.el
+++ b/emacsql-sqlite.el
@@ -213,18 +213,19 @@ been remove, so we can no longer fall back to that.
 (nreverse value)))
 
 (defun emacsql-sqlite-list-tables (connection)
-  "Return a list of the names of all tables in CONNECTION.
+  "Return a list of symbols identifing tables in CONNECTION.
 Tables whose names begin with \"sqlite_\", are not included
 in the returned value."
-  (emacsql connection
-   [:select name
-;; The new name is `sqlite-schema', but this name
-;; is supported by old and new SQLite versions.
-;; See https://www.sqlite.org/schematab.html.
-:from sqlite-master
-:where (and (= type 'table)
-(not-like name "sqlite_%"))
-:order-by [(asc name)]]))
+  (mapcar #'car
+  (emacsql connection
+   [:select name
+;; The new name is `sqlite-schema', but this name
+;; is supported by old and new SQLite versions.
+;; See https://www.sqlite.org/schematab.html.
+:from sqlite-master
+:where (and (= type 'table)
+(not-like name "sqlite_%"))
+:order-by [(asc name)]])))
 
 (defun emacsql-sqlite-dump-database (connection &optional versionp)
   "Dump the database specified by CONNECTION to a file.



[nongnu] elpa/emacsql updated (48cbd1600b -> ad9d1b9715)

2025-02-23 Thread ELPA Syncer
elpasync pushed a change to branch elpa/emacsql.

  from  48cbd1600b Add library commentary
   new  c39e2c1f83 emacsql-sqlite-list-tables: Fix format of return value
   new  ad9d1b9715 readme: Use separate section to talk about quoting


Summary of changes:
 README.md | 18 ++
 emacsql-sqlite.el | 21 +++--
 2 files changed, 21 insertions(+), 18 deletions(-)



[elpa] externals/ellama 2d4de7e346: Update ellama configuration

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 2d4de7e346541aad05ee6bb27078e1cd4f22aadf
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update ellama configuration

Updated README.org to include new `:hook` and `:init` configurations for the
ellama package. Added automatic scrolling option (`ellama-auto-scroll`) and
ensured that the last message in the chat buffer can be sent with C-c C-c.
---
 README.org | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/README.org b/README.org
index bca8fb52a7..e9289bc87e 100644
--- a/README.org
+++ b/README.org
@@ -35,11 +35,12 @@ You can customize ellama configuration like this:
   (use-package ellama
 :ensure t
 :bind ("C-c e" . ellama-transient-main-menu)
+;; 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)
 :config
 ;; show ellama context in header line in all buffers
-(ellama-context-header-line-global-mode +1)
-;; send last message in chat buffer with C-c C-c
-(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
+(ellama-context-header-line-global-mode +1))
 #+END_SRC
 
 More sofisticated configuration example:
@@ -48,6 +49,8 @@ More sofisticated configuration example:
   (use-package ellama
 :ensure t
 :bind ("C-c e" . ellama-transient-main-menu)
+;; send last message in chat buffer with C-c C-c
+:hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
 :init
 ;; setup key bindings
 ;; (setopt ellama-keymap-prefix "C-c e")
@@ -110,9 +113,7 @@ More sofisticated configuration example:
 (setopt ellama-instant-display-action-function #'display-buffer-at-bottom)
 :config
 ;; show ellama context in header line in all buffers
-(ellama-context-header-line-global-mode +1)
-;; send last message in chat buffer with C-c C-c
-(add-hook 'org-ctrl-c-ctrl-c-final-hook #'ellama-chat-send-last-message))
+(ellama-context-header-line-global-mode +1))
 #+END_SRC
 
 ** Commands



[elpa] externals/hyperbole e1ecad14df 10/11: Merge branch 'master' into rsw

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit e1ecad14df1ab0c4c03560f757c27929553a8001
Merge: 9c522ae4f7 2f2886784d
Author: Robert Weiner 
Commit: GitHub 

Merge branch 'master' into rsw



[elpa] externals/hyperbole 12043802da 06/11: Fix 2 hywiki tests for org links and org roam nodes

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 12043802da75cb4f06f895610f266cf6d94fa217
Author: bw 
Commit: bw 

Fix 2 hywiki tests for org links and org roam nodes
---
 ChangeLog|  5 +
 hywiki.el| 11 ++-
 test/hywiki-tests.el | 22 ++
 3 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 85099acc42..2790f87fd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2025-02-23  Bob Weiner  
 
+* test/hywiki-tests.el (hywiki-tests--convert-words-to-org-link): Fix to not
+expect 'hy:' prefix in HyWiki Org links.
+   (hywiki-tests--add-org-roam-node): Handle all calls to
+'org-roam-node-title'.
+
 * hywiki.el (hywiki-get-referent): Fix suffix match to use group 3 and add
 suffix to referent-value here.
 (hywiki-display-referent): Remove adding suffix to referent-value 
here.
diff --git a/hywiki.el b/hywiki.el
index ff3d69cf9c..2649b17b12 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:21-Acpr-24 at 22:41:13
-;; Last-Mod: 23-Feb-25 at 02:21:03 by Bob Weiner
+;; Last-Mod: 23-Feb-25 at 11:05:28 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1457,7 +1457,7 @@ publish process."
(delete-region (overlay-start overlay)
   (overlay-end overlay))
(delete-overlay overlay)
-   (if (setq org-link (hywiki-word-to-org-link wikiword 
nil))
+   (if (setq org-link (hywiki-word-to-org-link 
wikiword-and-section nil))
(insert org-link)
  (message
   "(hywiki-convert-words-to-org-links): \"%s\" in 
\"%s\" produced nil org link output"
@@ -1486,7 +1486,8 @@ publish process."
(unless (and suffix (not (string-empty-p suffix)))
  (setq suffix nil))
(setq suffix-no-hashmark (when suffix (substring suffix 1)))
-   (when (string-equal path (file-name-nondirectory buffer-file-name))
+   (when (or (not buffer-file-name)
+ (string-equal path (file-name-nondirectory buffer-file-name)))
  (setq path nil))
(cond (desc
   (if path
@@ -2625,11 +2626,11 @@ backend."
 (hpath:spaces-to-dashes-markup-anchor
  (or suffix ""))
 desc))
- (`latex (format "\\href{%s}{%s}" (replace-regexp-in-string 
"[\\{}$%&_#~^]" "\\&" path) desc))
+ (`latex (format "\\href{%s.latex}{%s}" (replace-regexp-in-string 
"[\\{}$%&_#~^]" "\\&" path-stem) desc))
  (`md (format "[%s](%s.md%s)" desc path-stem
   (hpath:spaces-to-dashes-markup-anchor
(or suffix ""
- (`texinfo (format "@uref{%s,%s}" path desc))
+ (`texinfo (format "@uref{%s.texi,%s}" path-stem desc))
  (_ path))
   link)))
 
diff --git a/test/hywiki-tests.el b/test/hywiki-tests.el
index 90180f4000..472876899b 100644
--- a/test/hywiki-tests.el
+++ b/test/hywiki-tests.el
@@ -3,7 +3,7 @@
 ;; Author:   Mats Lidell
 ;;
 ;; Orig-Date:18-May-24 at 23:59:48
-;; Last-Mod:  7-Feb-25 at 10:01:25 by Mats Lidell
+;; Last-Mod: 23-Feb-25 at 11:04:10 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -621,7 +621,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
 (with-hywiki-buttonize-and-insert-hooks (insert "WikiWord "))
 (goto-char 4)
 (hywiki-convert-words-to-org-links)
-(should (string= "[[hy:WikiWord]] "
+(should (string= "[[WikiWord]] "
  (buffer-substring-no-properties (point-min) 
(point-max)
   (with-temp-buffer
 (hywiki-mode 1)
@@ -630,7 +630,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
  (newline nil t))
 (goto-char 4)
 (hywiki-convert-words-to-org-links)
-(should (string= "[[hy:WikiWord]]\n"
+(should (string= "[[WikiWord]]\n"
  (buffer-substring-no-properties (point-min) 
(point-max))
   (hywiki-tests--add-hywiki-hooks)
   (hywiki-mode 0)
@@ -694,24 +694,24 @@ Both mod-time and checksum must be changed for a test to 
return true."
   "Verify `hywiki-org-link-export' output for different formats."
   (let* ((hywiki-directory (make-temp-file "hywiki" t))
  (wikipage (cdr (hywiki-add-page "WikiWord")))
-(filename (when wikipage (file-name-nondirectory wikipage
+(filename (when wikipage (file-name-nondirectory wikipage)))
+(filename-stem (when filename (file-name-sans-extension filename
 (unwind-protect
 (progn
   (should (string-match-p
(format "\\[hy\\] " filename)

[elpa] externals/hyperbole 2f2886784d 08/11: Merge pull request #674 from rswgnu/rsw

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 2f2886784dd9748c3be4562da3381e9e3411d436
Merge: 734b0ffbea 49ecbd80b9
Author: Robert Weiner 
Commit: GitHub 

Merge pull request #674 from rswgnu/rsw

hywiki Org export to html - use modified section titles as href ids; 
hkey-help display actype info at the top
---
 ChangeLog| 116 
 hmouse-drv.el| 114 ++-
 hpath.el |  18 +-
 hsys-ert.el  |  16 +-
 hui-mini.el  |   8 +-
 hui-mouse.el |  12 +-
 hui-select.el| 115 +--
 hycontrol.el |   7 +-
 hywiki.el| 523 ---
 test/hact-tests.el   |   6 +-
 test/hywiki-tests.el |  22 +--
 11 files changed, 669 insertions(+), 288 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4777de1206..bb88bfdddb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,79 @@
+2025-02-23  Bob Weiner  
+
+* test/hywiki-tests.el (hywiki-tests--convert-words-to-org-link): Fix to not
+expect 'hy:' prefix in HyWiki Org links.
+   (hywiki-tests--add-org-roam-node): Handle all calls to
+'org-roam-node-title'.
+
+* hywiki.el (hywiki-get-referent): Fix suffix match to use group 3 and add
+suffix to referent-value here.
+(hywiki-display-referent): Remove adding suffix to referent-value 
here.
+
+2025-02-22  Bob Weiner  
+
+* hywiki.el (hywiki-publish-to-html): Advise 'org-export-get-reference' to use
+modified Org headings as html ids.
+(hywiki--org-export-get-reference,
+ hywiki--org-export-new-title-reference,
+ hywiki--org-format-reference): Add to implement the above new html
+id generation scheme.
+
+* hui-select.el (hui-select-punctuation): Add 'hui-select-markup-pair' so if
+on the opening char of an HTML tag for example with punctuation syntax,
+it is treated as a markup pair from `hui-select-thing'.
+(hui-select-thing): Change return value to be the region 
selected
+so can be used as a delimited regional selection predicate like so:
+(hui-select-delimited-thing-call #'hui-select-thing).
+
+* hui-mouse.el (hkey-alist): Change action for 
'hui-select-at-delimited-thing-p'
+condition to call 'hui-select-thing' instead of 
'hui-select-delimited-thing'
+so does not include extra whitespace and matches the result when
+'hui-select-thing' is called interactively.
+
+* hywiki.el (hywiki-referent-exists-p):
+Fix bug where 'word' was given as the symbol :range to use as a flag
+but then the call to 'hywiki-strip-org-link' mistakenly set it to nil.
+(hywiki-word-set-auto-highlighting): Add so can call interactively
+to restore HyWikiWord auto-highlighting after a command hook error.  Call
+when enabling 'hywiki-mode'.
+
+Fix bug where :range flag was not passed to 'hywiki-word-at' call;
+manifested as selecting an entire string rather than the wikiword at point.
+
+* hsys-ert.el (ert-should): Constrain matches for this ibtype to the current
+line when not in 'ert-results-mode'.  This fixes a problem of having this
+ibtype trigger in the "*scratch*" buffer for example where an
+'ert-test-failed match is found but it is far way and unconnected to the
+current point.
+
+* hmouse-drv.el (hkey-help):
+Update {C-h A} Hyperbole help so button information is displayed at
+the top before long Action/Assist Key behavior description.
+
+In cases like the multi-context 'smart-org' handler where a specific
+action type is triggered without defining an implicit button, display
+the action type information at the top as well, so it is clear the
+specific action that will be taken at point.
+
+Fix bug where 'categ' is nil and 'htype:names' returns a list of all
+type names to 'concat' since expecting only a single name.
+
+When displaying Assist Key help, remove actype and action attributes
+from button or actype display.
+
+* hywiki.el (hywiki-directory-dired-edit): Remove bash-specific file
+filtering since names the dir after the filter regex and this is
+unattractive.  Using directory-files to filter instead works fine.
+Also, use 'hywiki-word-regexp' to match to page names rather than
+a hardcoded regexp.
+
+* hycontrol.el (require 'zoom-frm): Wrap in an 'ignore-errors' so if its
+required library, 'frame-cmds' is not installed, no error occurs and
+HyControl behaves works without the library.
+
+* test/hact-tests.el (hact-tests--action-params-with-lambdas): Eliminate
+byte compiler 'unused args' errors by starting args with underscore.
+
 2025-02-21  Mats Lidell  
 
 * test/hywiki-tests.el (hywiki-tests--delete-parenthesised-char): Verify
@@ -5,6 +81,18 @@
 
 2025-02-19  Bob Weiner  
 
+* hywiki.el (hywiki-maybe-dehighlight-page-name,
+ hywiki-maybe-highlight-page-name,
+ hywiki-maybe-highlight-page-names): In
+non-'hywiki-highlight-

[elpa] externals/hyperbole updated (734b0ffbea -> 1bdcab6c9b)

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

  from  734b0ffbea Verify issue with delete char in elisp mode (#670)
   new  982b975124 hui-select.el - Make Action Key on delimited pairs match 
hui-select
   new  40f5f90038 hycontrol.el - Eliminate error if frame-cmds library is 
missing
   new  b2998ade3d ert-should ibtype - Limit to single line when not 
ert-results-mode
   new  d57be5a458 hkey-help - Put hbut and actype info at the top of help
   new  deb608fa5f hywiki.el - Many bug fixes and use section names for Org 
html ids
   new  12043802da Fix 2 hywiki tests for org links and org roam nodes
   new  49ecbd80b9 Merge branch 'master' into rsw
   new  9c522ae4f7 hywiki-referent-menu - Re-add accidentally deleted 
"Keys" key series
   new  2f2886784d Merge pull request #674 from rswgnu/rsw
   new  e1ecad14df Merge branch 'master' into rsw
   new  1bdcab6c9b Merge pull request #675 from rswgnu/rsw


Summary of changes:
 ChangeLog| 119 
 hmouse-drv.el| 114 ++-
 hpath.el |  18 +-
 hsys-ert.el  |  16 +-
 hui-mini.el  |   8 +-
 hui-mouse.el |  12 +-
 hui-select.el| 115 +--
 hycontrol.el |   7 +-
 hywiki.el| 526 ---
 test/hact-tests.el   |   6 +-
 test/hywiki-tests.el |  22 +--
 11 files changed, 675 insertions(+), 288 deletions(-)



[elpa] externals/hyperbole d57be5a458 04/11: hkey-help - Put hbut and actype info at the top of help

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit d57be5a4582aeae518e29ad079062571b9e9da04
Author: bw 
Commit: bw 

hkey-help - Put hbut and actype info at the top of help

In cases like the multi-context 'smart-org' handler where a specific
action type is triggered without defining an implicit button, display
the action type information at the top as well, so it is clear the
specific action that will be taken at point.
---
 ChangeLog |  15 
 hmouse-drv.el | 114 +-
 2 files changed, 80 insertions(+), 49 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 31aef3eb19..46b5c47b3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,21 @@
 'ert-test-failed match is found but it is far way and unconnected to the
 current point.
 
+* hmouse-drv.el (hkey-help):
+Update {C-h A} Hyperbole help so button information is displayed at
+the top before long Action/Assist Key behavior description.
+
+In cases like the multi-context 'smart-org' handler where a specific
+action type is triggered without defining an implicit button, display
+the action type information at the top as well, so it is clear the
+specific action that will be taken at point.
+
+Fix bug where 'categ' is nil and 'htype:names' returns a list of all
+type names to 'concat' since expecting only a single name.
+
+When displaying Assist Key help, remove actype and action attributes
+from button or actype display.
+
 * hycontrol.el (require 'zoom-frm): Wrap in an 'ignore-errors' so if its
 required library, 'frame-cmds' is not installed, no error occurs and
 HyControl behaves works without the library.
diff --git a/hmouse-drv.el b/hmouse-drv.el
index e9a3583353..bacb22e1ce 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:04-Feb-90
-;; Last-Mod: 15-Dec-24 at 22:38:04 by Bob Weiner
+;; Last-Mod: 22-Feb-25 at 11:52:57 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1115,47 +1115,32 @@ documentation is found."
   (format "%s %sKey"
   (if assisting "Assist" "Action")
   (if mouse-flag "Mouse " "")))
-   (princ (format "A %s of the %s %sKey"
-  (if mouse-flag
-  (if mouse-drag-flag "drag" "click")
-"press")
-  (if assisting "Assist" "Action")
-  (if mouse-flag "Mouse " "")))
-   (terpri)
-   (princ "WHEN  ")
-   (princ
-(or condition
-"there is no matching context"))
-   (terpri)
-
-   (mapc (lambda (c)
-   (when (and (> (length calls) 1)
-  (not (eq (car calls) c)))
- ;; Is an 'or' set of calls
- (princ "OR "))
-   (princ "CALLS ") (princ (if (consp c) c (list c)))
-   (when (and (fboundp (setq call (if (consp c) (car 
c) c)))
-  (setq doc (documentation call)))
- (princ " WHICH")
- (princ (if (string-match 
"\\`[a-zA-Z]*[a-rt-zA-RT-Z]+s[ [:punct:]]" doc)
-":" " WILL:"))
- (terpri) (terpri)
- (princ (replace-regexp-in-string "^" "  " doc nil 
t))
- (terpri) (terpri)))
- calls)
 
;; Print Hyperbole button attributes
-   (when (memq cmd-sym '(hui:hbut-act hui:hbut-help))
- (let ((actype (or (actype:elisp-symbol (hattr:get 
'hbut:current 'actype))
-   (hattr:get 'hbut:current 'actype)))
-   ;; (lbl-key (hattr:get 'hbut:current 'lbl-key))
-   (categ (hattr:get 'hbut:current 'categ))
-   (attributes (nthcdr 2 (hattr:list 'hbut:current
-
-   (princ (format "%s %s BUTTON SPECIFICS:\n"
-  (htype:def-symbol
-   (if (eq categ 'explicit) actype categ))
-  (if (eq categ 'explicit) "EXPLICIT" 
"IMPLICIT")))
+   (when (or (memq cmd-sym '(hui:hbut-act hui:hbut-help))
+ (hattr:get 'hbut:current 'actype))
+ (let* ((actype (or (actype:elisp-symbol (hattr:get 
'hbut:current 'actype))
+(hattr:get 'hbut:current 'actype)))
+;; (lbl-key (hattr:get 'hbut:current 

[elpa] externals/hyperbole 1bdcab6c9b 11/11: Merge pull request #675 from rswgnu/rsw

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 1bdcab6c9b4f74e426423ac283a73aac3c6f31d2
Merge: 2f2886784d e1ecad14df
Author: Robert Weiner 
Commit: GitHub 

Merge pull request #675 from rswgnu/rsw

hywiki-referent-menu - Re-add accidentally deleted "Keys" key series
---
 ChangeLog | 3 +++
 hywiki.el | 7 +--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bb88bfdddb..4d32c67d79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2025-02-23  Bob Weiner  
 
+* hywiki.el (hywiki-referent-menu): Re-add accidentally deleted "Keys" key
+series referent type in the menu.
+
 * test/hywiki-tests.el (hywiki-tests--convert-words-to-org-link): Fix to not
 expect 'hy:' prefix in HyWiki Org links.
(hywiki-tests--add-org-roam-node): Handle all calls to
diff --git a/hywiki.el b/hywiki.el
index 2649b17b12..6d0b98efd0 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:21-Acpr-24 at 22:41:13
-;; Last-Mod: 23-Feb-25 at 11:05:28 by Bob Weiner
+;; Last-Mod: 23-Feb-25 at 11:50:21 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -830,9 +830,12 @@ After successfully finding a page and reading it into a 
buffer, run
 ;; "(hyperbole)action implicit button"
 '("InfoIndex"(hywiki-add-info-index hkey-value)
   "Add a HyWikiWord that displays an Info index item.")
-;; "(hyperbole)Smart Keys"
+;; "{key series}" wikiword
+'("Keys" (hywiki-add-key-series hkey-value)
+  "Add a HyWikiWord that executes a key series.")
 '("pathLink" (hywiki-add-path-link hkey-value)
   "Add a HyWikiWord that links to a path and possible position.")
+;; "(hyperbole)Smart Keys"
 '("infoNode" (hywiki-add-info-node hkey-value)
   "Add a HyWikiWord that displays an Info node.")
 ;; "ID: org-id"



[elpa] externals/hyperbole 40f5f90038 02/11: hycontrol.el - Eliminate error if frame-cmds library is missing

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 40f5f900387606e6be7fc8ca41d05858f96ed20f
Author: bw 
Commit: bw 

hycontrol.el - Eliminate error if frame-cmds library is missing
---
 ChangeLog  | 4 
 hycontrol.el   | 7 +--
 test/hact-tests.el | 6 +++---
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4f99dc8c9f..4d14abaf84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,10 @@
 so does not include extra whitespace and matches the result when
 'hui-select-thing' is called interactively.
 
+* hycontrol.el (require 'zoom-frm): Wrap in an 'ignore-errors' so if its
+required library, 'frame-cmds' is not installed, no error occurs and
+HyControl behaves works without the library.
+
 2025-02-19  Bob Weiner  
 
 * hyrolo.el (hyrolo-expand-path-list): Fix to include a default file name
diff --git a/hycontrol.el b/hycontrol.el
index 6ab38cd7a8..bb2adb5b8f 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date: 1-Jun-16 at 15:35:36
-;; Last-Mod: 29-Jan-25 at 19:05:16 by Mats Lidell
+;; Last-Mod: 22-Feb-25 at 09:41:32 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -135,7 +135,10 @@
   (require 'windmove))
 ;; Frame face enlarging/shrinking (zooming) requires this separately available 
library.
 ;; Everything else works fine without it, so don't make it a required 
dependency.
-(require 'zoom-frm nil t)
+;; It also requires the separate library, 'frame-cmds', so ignore any
+;; errors if that library is not found as well.
+(ignore-errors
+  (require 'zoom-frm nil t))
 
 ;;; 
 ;;; Public declarations
diff --git a/test/hact-tests.el b/test/hact-tests.el
index 00c37b1e0c..7564b3ce10 100644
--- a/test/hact-tests.el
+++ b/test/hact-tests.el
@@ -3,7 +3,7 @@
 ;; Author:   Mats Lidell
 ;;
 ;; Orig-Date:16-May-24 at 00:29:22
-;; Last-Mod: 16-May-24 at 23:51:18 by Mats Lidell
+;; Last-Mod: 22-Feb-25 at 09:35:56 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -23,8 +23,8 @@
 (ert-deftest hact-tests--action-params-with-lambdas ()
   "Lambda used with `action:params' should return the lambda parameters."
   (should (equal nil (action:params (lambda () nil
-  (should (equal '(x) (action:params (lambda (x) nil
-  (should (equal '(x y) (action:params (lambda (x y) nil)
+  (should (equal '(_x) (action:params (lambda (_x) nil
+  (should (equal '(_x _y) (action:params (lambda (_x _y) nil)
 
 (ert-deftest hact-tests--actype-act-with-lambdas ()
   "Lambda with `actype:act' should work over versions of Emacs.



[elpa] externals/hyperbole b2998ade3d 03/11: ert-should ibtype - Limit to single line when not ert-results-mode

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit b2998ade3da449c84aafdb4d0b01ec3f0bf92e17
Author: bw 
Commit: bw 

ert-should ibtype - Limit to single line when not ert-results-mode
---
 ChangeLog   |  6 ++
 hsys-ert.el | 16 ++--
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4d14abaf84..31aef3eb19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,12 @@
 so does not include extra whitespace and matches the result when
 'hui-select-thing' is called interactively.
 
+* hsys-ert.el (ert-should): Constrain matches for this ibtype to the current
+line when not in 'ert-results-mode'.  This fixes a problem of having this
+ibtype trigger in the "*scratch*" buffer for example where an
+'ert-test-failed match is found but it is far way and unconnected to the
+current point.
+
 * hycontrol.el (require 'zoom-frm): Wrap in an 'ignore-errors' so if its
 required library, 'frame-cmds' is not installed, no error occurs and
 HyControl behaves works without the library.
diff --git a/hsys-ert.el b/hsys-ert.el
index 81024f0a1d..c7adeef4b9 100644
--- a/hsys-ert.el
+++ b/hsys-ert.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:19-Jan-25
-;; Last-Mod: 20-Jan-25 at 23:57:21 by Mats Lidell
+;; Last-Mod: 22-Feb-25 at 12:20:29 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -57,11 +57,15 @@
   "Jump to the source code definition of a should expr from an ert test 
failure.
 If on the first line of a failure, jump to the source definition of the
 associated test."
-  (when (or (derived-mode-p 'ert-results-mode)
-(save-excursion
-  (forward-line 0)
-  (or (search-backward "(ert-test-failed\n" nil t)
-  (search-forward "(ert-test-failed\n" nil t
+  (when (or (and (derived-mode-p 'ert-results-mode)
+(save-excursion
+  (forward-line 0)
+  (or (search-backward "(ert-test-failed\n" nil t)
+   (search-forward "(ert-test-failed\n" nil t
+   ;; In any other mode, consider only the current line
+   (save-excursion
+ (forward-line 0)
+  (search-forward "(ert-test-failed" (line-end-position) t)))
 (catch 'exit
 (save-excursion
   (save-restriction



[elpa] externals-release/org 1059e78c0b: org-return: Do not err on spaces after citation

2025-02-23 Thread ELPA Syncer
branch: externals-release/org
commit 1059e78c0b8bef749843a014fe4a857f69be0693
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-return: Do not err on spaces after citation

* lisp/org.el (org-return): When `org-return-follows-link' is set, do
not try following citation when on blank lines after citation.  Same
as with normal links.

Reported-by: Tyler Smith 
Link: 
https://orgmode.org/list/10ba9f6c-8f85-470b-b675-7a7989736...@app.fastmail.com
---
 lisp/org.el | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index f7dd46f3d9..7b1e676c9e 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18548,17 +18548,22 @@ object (e.g., within a comment).  In these case, you 
need to use
  ;; if `org-return-follows-link' allows it.  Tolerate fuzzy
  ;; locations, e.g., in a comment, as `org-open-at-point'.
  ((and org-return-follows-link
-  (or (and (eq 'link element-type)
-   ;; Ensure point is not on the white spaces after
-   ;; the link.
-   (let ((origin (point)))
- (org-with-point-at (org-element-end context)
-   (skip-chars-backward " \t")
-   (> (point) origin
-  (org-in-regexp org-ts-regexp-both nil t)
-  (org-in-regexp org-tsr-regexp-both nil  t)
-   (org-element-lineage context '(citation citation-reference) 
'include-self)
-  (org-in-regexp org-link-any-re nil t)))
+  (or
+(let ((context
+   (org-element-lineage
+context
+'(citation citation-reference link)
+'include-self)))
+  (and context
+   ;; Ensure point is not on the white spaces after
+   ;; the link.
+   (let ((origin (point)))
+ (org-with-point-at (org-element-end context)
+   (skip-chars-backward " \t")
+   (> (point) origin)
+(org-in-regexp org-ts-regexp-both nil t)
+(org-in-regexp org-tsr-regexp-both nil  t)
+(org-in-regexp org-link-any-re nil t)))
   (call-interactively #'org-open-at-point))
  ;; Insert newline in heading, but preserve tags.
  ((and (not (bolp))



[elpa] externals/vc-got 3dde94dcfc 01/14: add vc-got-command as copy of vc-command

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 3dde94dcfc5fd26d08a9b4e3bfb449d616270ec0
Author: Timo Myyrä 
Commit: Omar Polo 

add vc-got-command as copy of vc-command

this is similar as is done with other vc backends, helps run synchronous 
commands.
---
 vc-got.el | 9 +
 1 file changed, 9 insertions(+)

diff --git a/vc-got.el b/vc-got.el
index 1d097717a4..6d4ec8f9f1 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -194,6 +194,15 @@ Takes care of handling the -current suffix."
   ;; let X.Y-current sort *after* X.Y
   (string= version-string current-version
 
+(defun vc-got-command (buffer okstatus file-or-list &rest flags)
+  "A wrapper around `vc-do-command' for use in vc-got.el.
+The difference to `vc-do-command' is that this function always invokes
+`vc-got-program'."
+  (let ((process-environment process-environment))
+(apply #'vc-do-command (or buffer "*vc*") okstatus vc-got-program
+   file-or-list
+   flags)))
+
 (defun vc-got-root (file)
   "Return the work tree root for FILE, or nil."
   (vc-find-root file ".got"))



[elpa] externals/hyperbole 982b975124 01/11: hui-select.el - Make Action Key on delimited pairs match hui-select

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 982b97512419a98c176783fa187b2bc5200f7a1b
Author: bw 
Commit: bw 

hui-select.el - Make Action Key on delimited pairs match hui-select
---
 ChangeLog |  22 +++
 hui-mouse.el  |  12 +++---
 hui-select.el | 115 ++
 3 files changed, 89 insertions(+), 60 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5c1393f608..4f99dc8c9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+* hui-select.el (hui-select-punctuation): Add 'hui-select-markup-pair' so if
+on the opening char of an HTML tag for example with punctuation syntax,
+it is treated as a markup pair from `hui-select-thing'.
+(hui-select-thing): Change return value to be the region 
selected
+so can be used as a delimited regional selection predicate like so:
+(hui-select-delimited-thing-call #'hui-select-thing).
+
+* hui-mouse.el (hkey-alist): Change action for 
'hui-select-at-delimited-thing-p'
+condition to call 'hui-select-thing' instead of 
'hui-select-delimited-thing'
+so does not include extra whitespace and matches the result when
+'hui-select-thing' is called interactively.
+
 2025-02-19  Bob Weiner  
 
 * hyrolo.el (hyrolo-expand-path-list): Fix to include a default file name
@@ -11,6 +23,16 @@
 (hyrolo-get-file-list): Return a default rolo file when `hyrolo-
 file-list' is nil.
 
+2025-02-16  Bob Weiner  
+
+* hui-select.el (hui-select-punctuation): Add (hui-select-string pos) call
+when on a double quote since sometimes double quotes have punctuation 
syntax,
+e.g. text-mode.
+(hui-select-string-p): Fix off-by-one error when scan-sexps
+backwards with point after an ending double quote.
+When compile, add (require 'hbut) for 'hbut:syntax-table'.  Fix string
+selection in 'text-mode' by using 'hbut:syntax-table'.
+
 2025-02-08  Mats Lidell  
 
 * hywiki.el (hywiki--sitemap-file): Helper function for getting the sitemap
diff --git a/hui-mouse.el b/hui-mouse.el
index da5a730829..8f5b775234 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:04-Feb-89
-;; Last-Mod: 19-Jan-25 at 16:40:13 by Bob Weiner
+;; Last-Mod: 22-Feb-25 at 16:18:02 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -292,7 +292,8 @@ Its default value is `smart-scroll-down'.  To disable it, 
set it to
  (smart-helm-alive-p)))
  . ((funcall (key-binding (kbd "RET"))) . (funcall (key-binding (kbd 
"RET")
 ;;
-;; If at the end of a line (eol), invoke the associated Smart Key handler 
EOL handler.
+;; If at the end of a line (eol), invoke the associated Smart Key
+;; handler EOL handler.
 ((and (smart-eolp)
   (not (and (funcall hsys-org-mode-function)
 (not (equal hsys-org-enable-smart-keys t)
@@ -390,8 +391,8 @@ Its default value is `smart-scroll-down'.  To disable it, 
set it to
 ;; ends at point.  For markup pairs, point must be at the first
 ;; character of the opening or closing tag.
 ((hui-select-at-delimited-thing-p)
- . ((hui-select-delimited-thing) . (progn (hui-select-delimited-thing)
- (hmouse-kill-region
+ . ((hui-select-thing) . (progn (hui-select-thing)
+   (hmouse-kill-region
 ;;
 ;; If the prior test failed and point is at the start or end of an
 ;; sexpression, mark it for editing or kill it (assist key).  This
@@ -413,7 +414,8 @@ Its default value is `smart-scroll-down'.  To disable it, 
set it to
 ((eq major-mode 'kotl-mode)
  . ((kotl-mode:action-key) . (kotl-mode:assist-key)))
 ;;
-;; If in the flymake linter list of issues buffer, jump to or show issue 
at point
+;; If in the flymake linter list of issues buffer, jump to or show
+;; issue at point.
 ((eq major-mode 'flymake-diagnostics-buffer-mode)
  . ((flymake-goto-diagnostic (point)) . (flymake-show-diagnostic (point) 
t)))
 ;;
diff --git a/hui-select.el b/hui-select.el
index fd949b42f8..e2556b7d90 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:19-Oct-96 at 02:25:27
-;; Last-Mod:  7-Feb-25 at 00:15:47 by Bob Weiner
+;; Last-Mod: 22-Feb-25 at 22:15:12 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -564,6 +564,7 @@ Also, add language-specific syntax setups to aid in thing 
selection."
 If invoked repeatedly, this selects bigger and bigger things.
 If `hui-select-display-type' is non-nil and this is called
 interactively, the type of selection is displayed in the minibuffer.
+The region selected is returned in (start . end) form.
 
 If the key that invokes this command in `hyperbole-minor-mode' is
 also bound in the current major mode map, then interactively
@@ -603,7 +604,7 @@ invoke that command i

[elpa] externals/hyperbole 49ecbd80b9 07/11: Merge branch 'master' into rsw

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 49ecbd80b976edda3eb4aa8a92e647facebb2a5c
Merge: 12043802da 734b0ffbea
Author: bw 
Commit: bw 

Merge branch 'master' into rsw
---
 ChangeLog|  5 +
 test/hywiki-tests.el | 12 
 2 files changed, 17 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 2790f87fd2..bb88bfdddb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -74,6 +74,11 @@
 * test/hact-tests.el (hact-tests--action-params-with-lambdas): Eliminate
 byte compiler 'unused args' errors by starting args with underscore.
 
+2025-02-21  Mats Lidell  
+
+* test/hywiki-tests.el (hywiki-tests--delete-parenthesised-char): Verify
+reported delete char issue for elisp mode.
+
 2025-02-19  Bob Weiner  
 
 * hywiki.el (hywiki-maybe-dehighlight-page-name,
diff --git a/test/hywiki-tests.el b/test/hywiki-tests.el
index 472876899b..f897d95658 100644
--- a/test/hywiki-tests.el
+++ b/test/hywiki-tests.el
@@ -978,5 +978,17 @@ Note special meaning of `hywiki-allow-plurals-flag'."
   (hy-delete-files-and-buffers (list wiki-page 
(hywiki-cache-default-file)))
   (hy-delete-dir-and-buffer hywiki-directory
 
+(ert-deftest hywiki-tests--delete-parenthesised-char ()
+  "Verify removing a char between parentheses only removes the char.
+See gh#rswgnu/hyperbole/669."
+  :expected-result :failed
+  (with-temp-buffer
+(insert "(a)")
+(goto-char 2)
+(let ((this-command #'delete-char))
+  (with-hywiki-buttonize-hooks
+(delete-char 1)))
+(should (string= "()" (buffer-substring-no-properties (point-min) 
(point-max))
+
 (provide 'hywiki-tests)
 ;;; hywiki-tests.el ends here



[elpa] externals/org 62a8677e4c: Merge branch 'bugfix'

2025-02-23 Thread ELPA Syncer
branch: externals/org
commit 62a8677e4c479d3ff5364b9141770bd4922a0fe0
Merge: e6fae2e34d 1059e78c0b
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Merge branch 'bugfix'
---
 lisp/org.el | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index d012819a9c..0d6f787b26 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18158,17 +18158,22 @@ object (e.g., within a comment).  In these case, you 
need to use
  ;; if `org-return-follows-link' allows it.  Tolerate fuzzy
  ;; locations, e.g., in a comment, as `org-open-at-point'.
  ((and org-return-follows-link
-  (or (and (eq 'link element-type)
-   ;; Ensure point is not on the white spaces after
-   ;; the link.
-   (let ((origin (point)))
- (org-with-point-at (org-element-end context)
-   (skip-chars-backward " \t")
-   (> (point) origin
-  (org-in-regexp org-ts-regexp-both nil t)
-  (org-in-regexp org-tsr-regexp-both nil  t)
-   (org-element-lineage context '(citation citation-reference) 
'include-self)
-  (org-in-regexp org-link-any-re nil t)))
+  (or
+(let ((context
+   (org-element-lineage
+context
+'(citation citation-reference link)
+'include-self)))
+  (and context
+   ;; Ensure point is not on the white spaces after
+   ;; the link.
+   (let ((origin (point)))
+ (org-with-point-at (org-element-end context)
+   (skip-chars-backward " \t")
+   (> (point) origin)
+(org-in-regexp org-ts-regexp-both nil t)
+(org-in-regexp org-tsr-regexp-both nil  t)
+(org-in-regexp org-link-any-re nil t)))
   (call-interactively #'org-open-at-point))
  ;; Insert newline in heading, but preserve tags.
  ((and (not (bolp))



[elpa] externals/hyperbole 9c522ae4f7 09/11: hywiki-referent-menu - Re-add accidentally deleted "Keys" key series

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit 9c522ae4f71b5dc75af4466de1501607af98bc68
Author: bw 
Commit: bw 

hywiki-referent-menu - Re-add accidentally deleted "Keys" key series
---
 ChangeLog | 3 +++
 hywiki.el | 7 +--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bb88bfdddb..4d32c67d79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2025-02-23  Bob Weiner  
 
+* hywiki.el (hywiki-referent-menu): Re-add accidentally deleted "Keys" key
+series referent type in the menu.
+
 * test/hywiki-tests.el (hywiki-tests--convert-words-to-org-link): Fix to not
 expect 'hy:' prefix in HyWiki Org links.
(hywiki-tests--add-org-roam-node): Handle all calls to
diff --git a/hywiki.el b/hywiki.el
index 2649b17b12..6d0b98efd0 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:21-Acpr-24 at 22:41:13
-;; Last-Mod: 23-Feb-25 at 11:05:28 by Bob Weiner
+;; Last-Mod: 23-Feb-25 at 11:50:21 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -830,9 +830,12 @@ After successfully finding a page and reading it into a 
buffer, run
 ;; "(hyperbole)action implicit button"
 '("InfoIndex"(hywiki-add-info-index hkey-value)
   "Add a HyWikiWord that displays an Info index item.")
-;; "(hyperbole)Smart Keys"
+;; "{key series}" wikiword
+'("Keys" (hywiki-add-key-series hkey-value)
+  "Add a HyWikiWord that executes a key series.")
 '("pathLink" (hywiki-add-path-link hkey-value)
   "Add a HyWikiWord that links to a path and possible position.")
+;; "(hyperbole)Smart Keys"
 '("infoNode" (hywiki-add-info-node hkey-value)
   "Add a HyWikiWord that displays an Info node.")
 ;; "ID: org-id"



[elpa] externals/vc-got 1c46988ea9 14/14: use shorter way to poll branch from user in vc-got-merge-branch

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 1c46988ea9e81a57a4c9569a0fee19108f861d08
Author: Timo Myyrä 
Commit: Omar Polo 

use shorter way to poll branch from user in vc-got-merge-branch
---
 vc-got.el | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index 68a9899dec..254c628c00 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -632,11 +632,9 @@ If REV is t, checkout from the head."
 (defun vc-got-merge-branch ()
   "Prompt for a branch and integrate it into the current one."
   ;; XXX: be smart and try to "got rebase" if "got integrate" fails?
-  (let* ((branches (cl-loop for (branch . commit) in (vc-got--list-branches)
-collect branch))
- (branch (completing-read "Merge from branch: " branches)))
-(when branch
-  (vc-got--integrate branch
+  (when-let ((branch (completing-read "Merge from branch: "
+  (mapcar #'car (vc-got--list-branches)
+(vc-got--integrate branch)))
 
 (defun vc-got--proc-filter (proc s)
   "Custom output filter for async process PROC.



[nongnu] elpa/emacsql e4f1dcae91: Fix typos in docstrings

2025-02-23 Thread ELPA Syncer
branch: elpa/emacsql
commit e4f1dcae91f91c5fa6dc1b0097a6c524e98fdf2b
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

Fix typos in docstrings
---
 emacsql-compiler.el | 2 +-
 emacsql-sqlite.el   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/emacsql-compiler.el b/emacsql-compiler.el
index f75b12877e..575af47c88 100644
--- a/emacsql-compiler.el
+++ b/emacsql-compiler.el
@@ -150,7 +150,7 @@
 (upcase (replace-regexp-in-string "-" " " name
 
 (defun emacsql--prepare-constraints (constraints)
-  "Compile CONSTRAINTS into a partial SQL expresson."
+  "Compile CONSTRAINTS into a partial SQL expression."
   (mapconcat
#'identity
(cl-loop for constraint in constraints collect
diff --git a/emacsql-sqlite.el b/emacsql-sqlite.el
index 2f00970f57..b58a1181a8 100644
--- a/emacsql-sqlite.el
+++ b/emacsql-sqlite.el
@@ -213,7 +213,7 @@ been remove, so we can no longer fall back to that.
 (nreverse value)))
 
 (defun emacsql-sqlite-list-tables (connection)
-  "Return a list of symbols identifing tables in CONNECTION.
+  "Return a list of symbols identifying tables in CONNECTION.
 Tables whose names begin with \"sqlite_\", are not included
 in the returned value."
   (mapcar #'car



[elpa] externals/vc-got 623367586b 09/14: fix vc-got-mode-line to not refer past length of def

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 623367586b18915b547b9f520c56c35ab024e8f3
Author: Timo Myyrä 
Commit: Omar Polo 

fix vc-got-mode-line to not refer past length of def
---
 vc-got.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/vc-got.el b/vc-got.el
index 068fcd15ad..4f46da3bbd 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -573,7 +573,8 @@ Got uses an implicit checkout model for every file."
   "Return the VC mode line string for FILE."
   (vc-got-with-worktree file
 (let ((def (vc-default-mode-line-string 'Got file)))
-  (concat (substring def 0 4) (vc-got--current-branch)
+  (concat (substring def 0 (min (length def) 4))
+  (vc-got--current-branch)
 
 
 ;; state-changing functions



[elpa] externals/vc-got 11bac75e37 12/14: make vc-got--update asynchronous

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 11bac75e373695e3eade02fc9db360d5aae6c923
Author: Timo Myyrä 
Commit: Omar Polo 

make vc-got--update asynchronous

Make the update command run asynchronously as updates in large directory
trees will otherwise lock emacs for a long while.
---
 vc-got.el | 22 +-
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index ad9c3e8556..b6ad56c76b 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -369,11 +369,23 @@ ROOT is the root of the repo."
   "Update to a different commit or BRANCH.
 Optionally restrict the update operation to files at or within
 the specified PATHS."
-  (with-temp-buffer
-(unless (zerop (vc-got--call "update" "-b" branch "--" paths))
-  (error "[vc-got] can't update to branch %s: %s"
- branch
- (buffer-string)
+  (let ((buffer-name (format "*vc-got : %s*" (expand-file-name 
default-directory)))
+(cmd-args (list "update" "-b" branch)))
+(with-current-buffer buffer-name
+  (apply #'vc-do-async-command buffer-name paths vc-got-program
+ cmd-args)
+  (vc-compilation-mode 'got)
+  (let ((comp-cmd (mapconcat #'identity (cons vc-got-program cmd-args) " 
"))
+(proc (get-buffer-process (current-buffer
+(setq-local compile-command comp-cmd)
+(setq-local compilation-directory default-directory)
+(setq-local compilation-arguments (list cmd-args
+nil
+(lambda (_ign) 
(current-buffer))
+nil))
+;; Setup a custom process filter that handles \r.
+(set-process-filter proc #'vc-got--proc-filter))
+   (vc-set-async-update (current-buffer)
 
 (defun vc-got--diff-files (files)
   "Compute the local modifications to FILES."



[elpa] externals/vc-got 777ce2927f 10/14: fix deletion of separator lines in log buffers

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 777ce2927f319272e2fdccd4b7ba7f02d9ba2027
Author: Timo Myyrä 
Commit: Omar Polo 

fix deletion of separator lines in log buffers
---
 vc-got.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/vc-got.el b/vc-got.el
index 4f46da3bbd..de6b63db81 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -269,6 +269,7 @@ worktree."
search-pattern))
  (and reverse '("-R"))
  (and include-diff '("-p")
+(goto-char (point-min))
 (delete-matching-lines
  "^---$")
   t



[elpa] externals/vc-got 2411b9fb27 05/14: fix buffer parameters in vc-got-command calls

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 2411b9fb274f69dee51baf48a0d08c34e026df80
Author: Timo Myyrä 
Commit: Omar Polo 

fix buffer parameters in vc-got-command calls

no need to use temp buffers in most of commands, pass in `nil' to use
shared *vc* buffer.
---
 vc-got.el | 41 -
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index 24c070bd4f..7d989d9011 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -229,8 +229,7 @@ The output will be placed in the current buffer."
 
 (defun vc-got--add (files)
   "Add FILES to got, passing `vc-register-switches' to the command invocation."
-  (with-temp-buffer
-(vc-got-command t 0 files "add" vc-register-switches)))
+  (vc-got-command nil 0 files "add" vc-register-switches))
 
 (defun vc-got--info (path)
   "Execute got info in the worktree of PATH in the current buffer."
@@ -340,8 +339,7 @@ ROOT is the root of the repo."
 (defun vc-got--revert (&rest files)
   "Execute got revert FILES."
   (vc-got-with-worktree (car files)
-(with-temp-buffer
-  (vc-got-command t 0 files "revert"
+(vc-got-command nil 0 files "revert")))
 
 (defun vc-got--list-branches ()
   "Return an alist of (branch . commit)."
@@ -364,8 +362,7 @@ ROOT is the root of the repo."
 
 (defun vc-got--integrate (branch)
   "Integrate BRANCH into the current one."
-  (with-temp-buffer
-(vc-got-command t 0 nil "integrate" branch)))
+  (vc-got-command nil 0 nil "integrate" branch))
 
 (defun vc-got--update (branch &optional paths)
   "Update to a different commit or BRANCH.
@@ -393,7 +390,7 @@ object ID SHA1 hash."
   "Unstage all the staged hunks at or within FILE-OR-DIRECTORY.
 If it's nil, unstage every staged changes across the entire work
 tree."
-  (vc-got-command t 0 file-or-directory "unstage"))
+  (vc-got-command nil 0 file-or-directory "unstage"))
 
 (defun vc-got--remove (file &optional force keep-local)
   "Use got to remove FILE.
@@ -401,10 +398,9 @@ If FORCE is non-nil perform the operation even if a file 
contains
 local modification.  If KEEP-LOCAL is non-nil keep the affected
 files on disk."
   (vc-got-with-worktree (or file default-directory)
-(with-temp-buffer
-  (vc-got-command t 0 file "remove"
-  (and force "-f")
-  (and keep-local "-k")
+(vc-got-command nil 0 file "remove"
+(and force "-f")
+(and keep-local "-k"
 
 (defun vc-got--ref ()
   "Return a list of all references."
@@ -423,11 +419,9 @@ files on disk."
 
 (defun vc-got--branch (name)
   "Try to create and switch to the branch called NAME."
-  ;; TODO: does branch change files or does it require update
   (let (process-file-side-effects)
 (vc-got-with-worktree default-directory
-  (with-temp-buffer
-(vc-got-command t 0 nil "branch" name)
+  (vc-got-command nil 0 nil "branch" name
 
 
 ;; Backend properties
@@ -598,6 +592,12 @@ Got uses an implicit checkout model for every file."
 
 (defun vc-got-checkin (files comment &optional _rev)
   "Commit FILES with COMMENT as commit message."
+  (vc-got-command nil 0 files
+  "commit" "-m"
+  (log-edit-extract-headers
+   '(("Author" . "-A"))
+   comment)))
+
   (with-temp-buffer
 (vc-got-command t 0 files
 "commit" "-m"
@@ -797,7 +797,7 @@ revisions''; instead, like with git, you have tags and 
branches."
   ;; by got unless vc-parent-buffer points to a buffer managed by got.
   ;; investigate why this is needed.
   (setq-local vc-parent-buffer (find-file-noselect file))
-  (apply #'vc-got-command t 0 file "blame"
+  (apply #'vc-got-command buf 0 file "blame"
  (when rev (list "-c" rev))
 
 (defconst vc-got--annotate-re
@@ -847,12 +847,11 @@ Creates the TAG using the content of the current buffer."
   (interactive)
   (let ((msg (buffer-substring-no-properties (point-min)
  (point-max
-(with-temp-buffer
-  (vc-got-command t 0 nil "tag"
-  "-m"
-  (log-edit-extract-headers nil msg)
-  "--"
-  tag
+(vc-got-command nil 0 nil "tag"
+"-m"
+(log-edit-extract-headers nil msg)
+"--"
+tag)))
 
 (defun vc-got-create-tag (_dir name branchp)
   "Attach the tag NAME to the state of the worktree.



[elpa] externals/vc-got d577c763aa 02/14: rewrite most of vc-got-call uses to use vc-got-command

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit d577c763aa927e6842b2664ea9fdc2ffbe4d096b
Author: Timo Myyrä 
Commit: Omar Polo 

rewrite most of vc-got-call uses to use vc-got-command

benefit of this is better file argument handling. Some commands left to
use vc-got--call as using vc-got-command was too "chatty".

while at it fix or add some comments.
---
 vc-got.el | 125 --
 1 file changed, 56 insertions(+), 69 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index 6d4ec8f9f1..d3b901e1ee 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -230,14 +230,13 @@ The output will be placed in the current buffer."
 (defun vc-got--add (files)
   "Add FILES to got, passing `vc-register-switches' to the command invocation."
   (with-temp-buffer
-(vc-got--call "add" vc-register-switches "--" files)))
+(vc-got-command t 0 files "add" vc-register-switches)))
 
 (defun vc-got--info (path)
   "Execute got info in the worktree of PATH in the current buffer."
-  (let* ((process-file-side-effects nil))
+  (let (process-file-side-effects)
 (vc-got-with-worktree path
-  (zerop (save-excursion
-   (vc-got--call "info" "--" path))
+  (vc-got-command t 0 path "info"
 
 (defun vc-got--log (&optional path limit start-commit stop-commit
   search-pattern reverse include-diff)
@@ -260,22 +259,19 @@ worktree."
   "-s"
 "-S")))
 (vc-got-with-worktree (or path default-directory)
-  (when (zerop
- (save-excursion
-   (vc-got--call "log"
- (and limit (list "-l" (format "%s" limit)))
+  (save-excursion
+(apply #'vc-got-command t 0 path "log"
+   (mapcan (lambda (x)
+ (if (listp x) x nil))
+   (list (and limit (list "-l" (format "%s" limit)))
  (and start-commit (list "-c" start-commit))
  (and stop-commit (list "-x" stop-commit))
  (and search-pattern (list search-flag
search-pattern))
  (and reverse '("-R"))
- (and include-diff '("-p"))
- ;; "--"
- path)))
-(save-excursion
-  (delete-matching-lines
-   "^---$")
-  t)
+ (and include-diff '("-p")
+  t
+
 
 (defun vc-got--status (status-codes dir-or-file &optional files)
   "Return a list of lists (FILE STATUS STAGE-STATUS).
@@ -292,14 +288,12 @@ files)."
  (file-name-directory dir-or-file
(root (vc-got-root default-directory))
(process-file-side-effects))
-  (when (zerop (vc-got--call "status"
- (and status-codes (list "-s" status-codes))
- "--"
- (or files dir-or-file)))
-(goto-char (point-min))
-(cl-loop until (eobp)
- collect (vc-got--parse-status-line root)
- do (forward-line))
+  (apply #'vc-got-command t 0 (or files dir-or-file)
+ "status" (and status-codes (list "-s" status-codes)))
+  (goto-char (point-min))
+  (cl-loop until (eobp)
+   collect (vc-got--parse-status-line root)
+   do (forward-line))
 
 (defun vc-got--parse-status-line (root)
   "Parse a line of the the output of status.
@@ -339,25 +333,25 @@ ROOT is the root of the repo."
 (defun vc-got--cat (commit obj-id)
   "Execute got cat -c COMMIT OBJ-ID in the current buffer."
   (let (process-file-side-effects)
-(zerop (vc-got--call "cat" "-c" commit obj-id
+(vc-got-command t 0 nil "cat" "-c" commit obj-id)))
 
 (defun vc-got--revert (&rest files)
   "Execute got revert FILES."
   (vc-got-with-worktree (car files)
 (with-temp-buffer
-  (zerop (vc-got--call "revert" "--" files)
+  (vc-got-command t 0 files "revert"
 
 (defun vc-got--list-branches ()
   "Return an alist of (branch . commit)."
   (let (process-file-side-effects)
 (with-temp-buffer
-  (when (zerop (vc-got--call "branch" "-l"))
-(let (alist)
-  (goto-char (point-min))
-  (while (re-search-forward "^\\*?[[:space:]]+\\(.+\\): 
\\([[:word:]]+\\)$"
-nil t)
-(push (cons (match-string 1) (match-string 2)) alist))
-  alist)
+  (vc-got-command t 0 nil "branch" "-l")
+  (let (alist)
+(goto-char (point-min))
+(while (re-search-forward "^\\*?[[:space:]]+\\(.+\\): 
\\([[:word:]]+\\)$"
+  nil t)
+  (push (cons (match-string 1) (match-string 2)) alist))
+alis

[elpa] externals/vc-got updated (66c6e97f48 -> 1c46988ea9)

2025-02-23 Thread ELPA Syncer
elpasync pushed a change to branch externals/vc-got.

  from  66c6e97f48 months -> years; time flies...
   new  3dde94dcfc add vc-got-command as copy of vc-command
   new  d577c763aa rewrite most of vc-got-call uses to use vc-got-command
   new  afba16f73d fix unbalanced parens
   new  323c6ea3c0 restore accidently deleted delete-matching-lines call
   new  2411b9fb27 fix buffer parameters in vc-got-command calls
   new  8b42f45f7e remove copy/pasted block
   new  2372415059 fix vc-got-checkin
   new  45c5bc70b6 fix vc-got-command rest arguments
   new  623367586b fix vc-got-mode-line to not refer past length of def
   new  777ce2927f fix deletion of separator lines in log buffers
   new  3740d4cbba fix vc-got--info command return value use
   new  11bac75e37 make vc-got--update asynchronous
   new  eb3f662166 fix docstring for vc-got--proc-filter
   new  1c46988ea9 use shorter way to poll branch from user in 
vc-got-merge-branch


Summary of changes:
 vc-got.el | 182 --
 1 file changed, 93 insertions(+), 89 deletions(-)



[elpa] externals/vc-got 45c5bc70b6 08/14: fix vc-got-command rest arguments

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 45c5bc70b64af540640b6a4be81329f541fdc06a
Author: Timo Myyrä 
Commit: Omar Polo 

fix vc-got-command rest arguments

use apply when there is variable amount of parameters.
---
 vc-got.el | 23 +--
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index c24ab0bcdf..068fcd15ad 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -229,7 +229,7 @@ The output will be placed in the current buffer."
 
 (defun vc-got--add (files)
   "Add FILES to got, passing `vc-register-switches' to the command invocation."
-  (vc-got-command nil 0 files "add" vc-register-switches))
+  (apply #'vc-got-command nil 0 files "add" vc-register-switches))
 
 (defun vc-got--info (path)
   "Execute got info in the worktree of PATH in the current buffer."
@@ -377,14 +377,16 @@ the specified PATHS."
 (defun vc-got--diff-files (files)
   "Compute the local modifications to FILES."
   (let (process-file-side-effects)
-(vc-got-command t 0 files "diff" (vc-switches 'got 'diff) "-P")))
+(apply #'vc-got-command t 0 files "diff" "-P" (vc-switches 'got 'diff
 
 (defun vc-got--diff-objects (obj1 obj2)
   "Diff the two objects OBJ1 and OBJ2.
 OBJ1 and OBJ2 are interpreted as a reference, tag name, or an
 object ID SHA1 hash."
   (let (process-file-side-effects)
-(vc-got-command t 0 nil "diff" (vc-switches 'got 'diff) "--" obj1 obj2)))
+(apply #'vc-got-command t 0 nil "diff"
+   (append (vc-switches 'got 'diff)
+   (list "--" obj1 obj2)
 
 (defun vc-got--unstage (file-or-directory)
   "Unstage all the staged hunks at or within FILE-OR-DIRECTORY.
@@ -398,9 +400,9 @@ If FORCE is non-nil perform the operation even if a file 
contains
 local modification.  If KEEP-LOCAL is non-nil keep the affected
 files on disk."
   (vc-got-with-worktree (or file default-directory)
-(vc-got-command nil 0 file "remove"
-(and force "-f")
-(and keep-local "-k"
+(apply #'vc-got-command nil 0 file "remove"
+   (list (and force "-f")
+ (and keep-local "-k")
 
 (defun vc-got--ref ()
   "Return a list of all references."
@@ -839,11 +841,12 @@ Creates the TAG using the content of the current buffer."
   (interactive)
   (let ((msg (buffer-substring-no-properties (point-min)
  (point-max
-(vc-got-command nil 0 nil "tag"
-"-m"
-(log-edit-extract-headers nil msg)
+(apply #'vc-got-command nil 0 nil "tag"
+   "-m"
+   (append (log-edit-extract-headers nil msg)
+   (list
 "--"
-tag)))
+tag)
 
 (defun vc-got-create-tag (_dir name branchp)
   "Attach the tag NAME to the state of the worktree.



[elpa] externals/vc-got 323c6ea3c0 04/14: restore accidently deleted delete-matching-lines call

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 323c6ea3c08727c1240223c8fab02fc7aa0b9a8f
Author: Timo Myyrä 
Commit: Omar Polo 

restore accidently deleted delete-matching-lines call
---
 vc-got.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/vc-got.el b/vc-got.el
index 9d8b72c876..24c070bd4f 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -270,6 +270,8 @@ worktree."
search-pattern))
  (and reverse '("-R"))
  (and include-diff '("-p")
+(delete-matching-lines
+ "^---$")
   t
 
 



[elpa] externals/vc-got 3740d4cbba 11/14: fix vc-got--info command return value use

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 3740d4cbbad38b9139950a0d9acb3714ca93f9d5
Author: Timo Myyrä 
Commit: Omar Polo 

fix vc-got--info command return value use

The got info command uses return value of 1 when executed for files
which are not part of got work tree which caused the emacs to show those
as errors. To avoid these errors when accessing non-registered file, tune 
up the
vc-got--info function to ignore the error cases when executing the
vc-got-command and only check the command return value in
vc-got-working-revision.
---
 vc-got.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index de6b63db81..ad9c3e8556 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -235,7 +235,7 @@ The output will be placed in the current buffer."
   "Execute got info in the worktree of PATH in the current buffer."
   (let (process-file-side-effects)
 (vc-got-with-worktree path
-  (vc-got-command t 0 path "info"
+  (vc-got-command t nil path "info"
 
 (defun vc-got--log (&optional path limit start-commit stop-commit
   search-pattern reverse include-diff)
@@ -559,7 +559,7 @@ FILES is nil, consider all the files in DIR."
 (defun vc-got-working-revision (file)
   "Return the last commit that touched FILE or \"0\" if it's newly added."
   (with-temp-buffer
-(when (vc-got--info file)
+(when (zerop (vc-got--info file))
   (let ((pos (re-search-forward "^based on commit: " nil t)))
 (if pos
 (buffer-substring-no-properties pos (line-end-position))



[elpa] externals/vc-got afba16f73d 03/14: fix unbalanced parens

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit afba16f73d7fabc5ed8bd0632daf8d980a77fd3c
Author: Timo Myyrä 
Commit: Omar Polo 

fix unbalanced parens
---
 vc-got.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vc-got.el b/vc-got.el
index d3b901e1ee..9d8b72c876 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -293,7 +293,7 @@ files)."
   (goto-char (point-min))
   (cl-loop until (eobp)
collect (vc-got--parse-status-line root)
-   do (forward-line))
+   do (forward-line)
 
 (defun vc-got--parse-status-line (root)
   "Parse a line of the the output of status.



[elpa] externals/vc-got 8b42f45f7e 06/14: remove copy/pasted block

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 8b42f45f7e126afefcbafbd905961b8e78bea7e1
Author: Omar Polo 
Commit: Omar Polo 

remove copy/pasted block
---
 vc-got.el | 8 
 1 file changed, 8 deletions(-)

diff --git a/vc-got.el b/vc-got.el
index 7d989d9011..0a4b32da65 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -598,14 +598,6 @@ Got uses an implicit checkout model for every file."
'(("Author" . "-A"))
comment)))
 
-  (with-temp-buffer
-(vc-got-command t 0 files
-"commit" "-m"
-(log-edit-extract-headers
- '(("Author" . "-A"))
- comment
-
-
 (defun vc-got-find-revision (file rev buffer)
   "Fill BUFFER with the content of FILE in the given revision REV."
   (with-current-buffer buffer



[elpa] externals/vc-got eb3f662166 13/14: fix docstring for vc-got--proc-filter

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit eb3f662166c66e9200240a80f24abfdd141830d9
Author: Timo Myyrä 
Commit: Omar Polo 

fix docstring for vc-got--proc-filter
---
 vc-got.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vc-got.el b/vc-got.el
index b6ad56c76b..68a9899dec 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -640,7 +640,7 @@ If REV is t, checkout from the head."
 
 (defun vc-got--proc-filter (proc s)
   "Custom output filter for async process PROC.
-It's like `vc-process-filter' but supports \r inside S."
+It's like `vc-process-filter' but supports \\r inside S."
   (let ((buffer (process-buffer proc)))
 (when (buffer-live-p buffer)
   (with-current-buffer buffer



[elpa] externals/org updated (e6fae2e34d -> 62a8677e4c)

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

  from  e6fae2e34d org-store-link: Do not query about store function when 
INTERACTIVE? is nil
  adds  ec72678881 Update version number for the 9.7.23 release
   new  1059e78c0b org-return: Do not err on spaces after citation
   new  62a8677e4c Merge branch 'bugfix'


Summary of changes:
 lisp/org.el | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)



[elpa] externals/hyperbole deb608fa5f 05/11: hywiki.el - Many bug fixes and use section names for Org html ids

2025-02-23 Thread ELPA Syncer
branch: externals/hyperbole
commit deb608fa5f37f641c92f57d4e7da4939f9a22f25
Author: bw 
Commit: bw 

hywiki.el - Many bug fixes and use section names for Org html ids
---
 ChangeLog   |  64 
 hpath.el|  18 ++-
 hui-mini.el |   8 +-
 hywiki.el   | 518 +++-
 4 files changed, 454 insertions(+), 154 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 46b5c47b3e..85099acc42 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2025-02-23  Bob Weiner  
+
+* hywiki.el (hywiki-get-referent): Fix suffix match to use group 3 and add
+suffix to referent-value here.
+(hywiki-display-referent): Remove adding suffix to referent-value 
here.
+
+2025-02-22  Bob Weiner  
+
+* hywiki.el (hywiki-publish-to-html): Advise 'org-export-get-reference' to use
+modified Org headings as html ids.
+(hywiki--org-export-get-reference,
+ hywiki--org-export-new-title-reference,
+ hywiki--org-format-reference): Add to implement the above new html
+id generation scheme.
+
 * hui-select.el (hui-select-punctuation): Add 'hui-select-markup-pair' so if
 on the opening char of an HTML tag for example with punctuation syntax,
 it is treated as a markup pair from `hui-select-thing'.
@@ -10,6 +25,16 @@
 so does not include extra whitespace and matches the result when
 'hui-select-thing' is called interactively.
 
+* hywiki.el (hywiki-referent-exists-p):
+Fix bug where 'word' was given as the symbol :range to use as a flag
+but then the call to 'hywiki-strip-org-link' mistakenly set it to nil.
+(hywiki-word-set-auto-highlighting): Add so can call interactively
+to restore HyWikiWord auto-highlighting after a command hook error.  Call
+when enabling 'hywiki-mode'.
+
+Fix bug where :range flag was not passed to 'hywiki-word-at' call;
+manifested as selecting an entire string rather than the wikiword at point.
+
 * hsys-ert.el (ert-should): Constrain matches for this ibtype to the current
 line when not in 'ert-results-mode'.  This fixes a problem of having this
 ibtype trigger in the "*scratch*" buffer for example where an
@@ -31,12 +56,33 @@
 When displaying Assist Key help, remove actype and action attributes
 from button or actype display.
 
+* hywiki.el (hywiki-directory-dired-edit): Remove bash-specific file
+filtering since names the dir after the filter regex and this is
+unattractive.  Using directory-files to filter instead works fine.
+Also, use 'hywiki-word-regexp' to match to page names rather than
+a hardcoded regexp.
+
 * hycontrol.el (require 'zoom-frm): Wrap in an 'ignore-errors' so if its
 required library, 'frame-cmds' is not installed, no error occurs and
 HyControl behaves works without the library.
 
+* test/hact-tests.el (hact-tests--action-params-with-lambdas): Eliminate
+byte compiler 'unused args' errors by starting args with underscore.
+
 2025-02-19  Bob Weiner  
 
+* hywiki.el (hywiki-maybe-dehighlight-page-name,
+ hywiki-maybe-highlight-page-name,
+ hywiki-maybe-highlight-page-names): In
+non-'hywiki-highlight-all-in-prog-modes', highlight only in strings
+as well as comments.
+(hywiki-buttonize-non-character-commands,
+hywiki-debuttonize-non-character-commands): Don't trigger these
+pre- and post-command hooks in non-'hywiki-highlight-all-in-prog-modes' 
when
+outside of strings and comments.
+(hywiki-word-at): Whe match to wikiword via face highlight, ensure
+it matches to the wikiword format regexp.
+
 * hyrolo.el (hyrolo-expand-path-list): Fix to include a default file name
 even when the file does not yet exist.
 
@@ -58,6 +104,24 @@
 When compile, add (require 'hbut) for 'hbut:syntax-table'.  Fix string
 selection in 'text-mode' by using 'hbut:syntax-table'.
 
+* hywiki.el (hywiki-org-link-export): In html and markdown conversion, call
+'hpath:spaces-to-dashes-markup-anchor'.
+(hywiki-referent-menu): Fix missing s typo in 
'hywiki-add-sexpression'.
+   (hywiki-convert-words-to-org-links, hywiki-org-link-export):
+Update doc string with specific formatting.
+(hywiki-org-link-resolve): Rewrite to return full referent when not
+a pathname.
+(hywiki-referent-menu): Rename 'LinkPath' to 'pathLink' and 
properly
+alphabetize entries by invocation character (first capital letter).
+(hywiki-word-to-org-link): Add to convert a single HyWikiWord 
reference
+to an Org link for use during publishing.  Use in 
`hywiki-convert-words-to-org-links'.
+
+2025-02-09  Bob Weiner  
+
+* hpath.el hpath:spaces-to-dashes-markup-anchor): Add.
+   (hpath:normalize-markup-anchor): Rename to
+'hpath:dashes-to-spaces-markup-anchor'.
+
 2025-02-08  Mats Lidell  
 
 * hywiki.el (hywiki--sitemap-file): Helper function for getting the sitemap

[elpa] externals/vc-got 2372415059 07/14: fix vc-got-checkin

2025-02-23 Thread ELPA Syncer
branch: externals/vc-got
commit 2372415059a03ea6580a02f6f08d990195ca0091
Author: Omar Polo 
Commit: Omar Polo 

fix vc-got-checkin
---
 vc-got.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vc-got.el b/vc-got.el
index 0a4b32da65..c24ab0bcdf 100755
--- a/vc-got.el
+++ b/vc-got.el
@@ -592,7 +592,7 @@ Got uses an implicit checkout model for every file."
 
 (defun vc-got-checkin (files comment &optional _rev)
   "Commit FILES with COMMENT as commit message."
-  (vc-got-command nil 0 files
+  (apply #'vc-got-command nil 0 files
   "commit" "-m"
   (log-edit-extract-headers
'(("Author" . "-A"))



[elpa] externals/ellama 77a43ce379 1/2: Optimize text insertion and scrolling in `ellama.el`

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 77a43ce3797bdf9cfaae3f4facd7d81600876e9e
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Optimize text insertion and scrolling in `ellama.el`

Refactored the text insertion logic to calculate the distance to the end of 
the
buffer before and after insertion. Added a condition to stop automatic 
scrolling
if the buffer's end position changes, ensuring that the scroll behavior is 
more
predictable and efficient.

Fix #242
---
 ellama.el | 42 +++---
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/ellama.el b/ellama.el
index 444a9769b1..ced08c7aae 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1985,32 +1985,44 @@ failure (with BUFFER current).
   (ellama-session-prompt session))
   (setf (ellama-session-prompt session)
 (llm-make-chat-prompt prompt-with-ctx :context 
system)))
-  (llm-make-simple-chat-prompt prompt-with-ctx
+  (llm-make-simple-chat-prompt prompt-with-ctx)))
+(stop-scroll))
 (with-current-buffer buffer
   (ellama-request-mode +1)
   (let* ((start (make-marker))
 (end (make-marker))
+(distance-to-end (- (point-max) (point)))
+(new-pt)
 (insert-text
  (lambda (text)
;; Erase and insert the new text between the marker cons.
(with-current-buffer buffer
  ;; Manually save/restore point as save-excursion doesn't
  ;; restore the point into the middle of replaced text.
- (let ((pt (point)))
-   (goto-char start)
-   (delete-region start end)
-   (insert (funcall filter text))
-(when (and ellama-fill-paragraphs
-  (pcase ellama-fill-paragraphs
-((cl-type function) (funcall 
ellama-fill-paragraphs))
-((cl-type boolean) ellama-fill-paragraphs)
-((cl-type list) (and (apply #'derived-mode-p
-
ellama-fill-paragraphs)
- (not (equal major-mode 
'org-mode))
-  (fill-region start (point)))
-   (unless ellama-auto-scroll
+ (let* ((pt (point))
+(new-distance-to-end (- (point-max) (point
+   (save-excursion
+ (when (and (eq (window-buffer (selected-window))
+buffer)
+(not (equal distance-to-end 
new-distance-to-end)))
+   (setq stop-scroll t))
+ (goto-char start)
+ (delete-region start end)
+ (insert (funcall filter text))
+  (when (and ellama-fill-paragraphs
+(pcase ellama-fill-paragraphs
+  ((cl-type function) (funcall 
ellama-fill-paragraphs))
+  ((cl-type boolean) ellama-fill-paragraphs)
+  ((cl-type list) (and (apply #'derived-mode-p
+  
ellama-fill-paragraphs)
+   (not (equal major-mode 
'org-mode))
+   (fill-region start (point)))
+ (setq new-pt (point)))
+   (if (and ellama-auto-scroll (not stop-scroll))
+   (progn
+ (goto-char new-pt)
+ (ellama--scroll buffer))
  (goto-char pt)))
- (ellama--scroll buffer)
  (undo-amalgamate-change-group ellama--change-group)
(setq ellama--change-group (prepare-change-group))
(activate-change-group ellama--change-group)



[elpa] externals/diff-hl 685e991350: diff-hl-after-undo: See if BUFFER is live

2025-02-23 Thread ELPA Syncer
branch: externals/diff-hl
commit 685e99135001da13caecdff71acea1ee20bed373
Author: Dmitry Gutov 
Commit: Dmitry Gutov 

diff-hl-after-undo: See if BUFFER is live

#231
---
 diff-hl.el | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/diff-hl.el b/diff-hl.el
index c266fa6b86..5a2a5df215 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -506,9 +506,10 @@ It can be a relative expression as well, such as \"HEAD^\" 
with Git, or
   (run-with-idle-timer 0.01 nil #'diff-hl-after-undo 
(current-buffer)
 
 (defun diff-hl-after-undo (buffer)
-  (with-current-buffer buffer
-(unless (buffer-modified-p)
-  (diff-hl-update
+  (when (buffer-live-p buffer)
+(with-current-buffer buffer
+  (unless (buffer-modified-p)
+(diff-hl-update)
 
 (defun diff-hl-after-revert ()
   (when (bound-and-true-p revert-buffer-preserve-modes)



[elpa] externals/hiddenquote updated (8e22eaea70 -> d2ca7e7dc1)

2025-02-23 Thread ELPA Syncer
elpasync pushed a change to branch externals/hiddenquote.

  from  8e22eaea70 New command: hiddenquote-delete-char
   new  4015255b1f Guard against empty answers vector
   new  2e7fa85f22 Add new puzzle
   new  602391cfe4 Avoid delete-char in hiddenquote-delete-backward-char
   new  4a62c35fcd ; Fix typo in docstring
   new  d2ca7e7dc1 ; Docstring fixes


Summary of changes:
 hiddenquote.el |  35 ++--
 puzzles/{3.ipuz => 6.ipuz} | 480 +
 2 files changed, 201 insertions(+), 314 deletions(-)
 copy puzzles/{3.ipuz => 6.ipuz} (51%)



[elpa] externals/ellama updated (c1b51834c9 -> d9456fdc4b)

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

  from  c1b51834c9 Bump version
   new  4cb122b572 Add auto-scroll continue logic and out of focus scrolling
   new  682686da7c Bump version
   new  d9456fdc4b Merge pull request #243 from 
s-kostyaev/improve-auto-scroll


Summary of changes:
 NEWS.org  |  5 +
 ellama.el | 14 --
 2 files changed, 13 insertions(+), 6 deletions(-)



[elpa] externals/ellama d9456fdc4b 3/3: Merge pull request #243 from s-kostyaev/improve-auto-scroll

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit d9456fdc4b6f467cc5b60d9fa081fefcdc39acba
Merge: c1b51834c9 682686da7c
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #243 from s-kostyaev/improve-auto-scroll

Improve auto scroll
---
 NEWS.org  |  5 +
 ellama.el | 14 --
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index c122895e2c..7767d188fd 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,8 @@
+* Version 1.4.2
+- Fixed the auto-scroll logic in ~ellama.el~ to ensure it correctly sets and
+  resets ~stop-scroll~ based on cursor position changes.
+- Added a ~redisplay~ call at the end of ~ellama--scroll~ to force a refresh of
+  the window display to correctly handle auto-scroll of unfocused windows.
 * Version 1.4.1
 - Fixed a bug where users couldn't move the cursor during generation when
   auto-scroll was enabled.
diff --git a/ellama.el b/ellama.el
index 3540371362..a453ace783 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.4.1
+;; Version: 1.4.2
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 
@@ -2002,10 +2002,11 @@ failure (with BUFFER current).
  (let* ((pt (point))
 (new-distance-to-end (- (point-max) (point
(save-excursion
- (when (and (eq (window-buffer (selected-window))
-buffer)
-(not (equal distance-to-end 
new-distance-to-end)))
-   (setq stop-scroll t))
+ (if (and (eq (window-buffer (selected-window))
+  buffer)
+  (not (equal distance-to-end 
new-distance-to-end)))
+ (setq stop-scroll t)
+   (setq stop-scroll nil))
  (goto-char start)
  (delete-region start end)
  (insert (funcall filter text))
@@ -2237,7 +2238,8 @@ A function for programmatically scrolling the buffer 
during text generation."
 (with-selected-window window
   (when (ellama-chat-buffer-p buf)
(goto-char (point-max)))
-  (recenter -1
+  (recenter -1)
+  (redisplay
 
 (defun ellama-chat-done (text &optional on-done)
   "Chat done.



[elpa] externals/indent-bars e9b9f26218: README.md : remove require

2025-02-23 Thread ELPA Syncer
branch: externals/indent-bars
commit e9b9f26218f9ed3137df48a3184745db408556f8
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: GitHub 

README.md : remove require
---
 README.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/README.md b/README.md
index c92e2bd79a..f418340ac6 100644
--- a/README.md
+++ b/README.md
@@ -76,8 +76,6 @@ Configures `tree-sitter` and `ignore-blank-line` support for 
an example language
 
 ```elisp
 (use-package indent-bars
-  :config
-  (require 'indent-bars-ts); not needed with straight
   :custom
   (indent-bars-no-descend-lists t) ; no extra bars in continued func arg lists
   (indent-bars-treesit-support t)



[elpa] externals/llm ef3c55e9c8: Add the ability to return multiple outputs via a plist in llm calls (#160)

2025-02-23 Thread ELPA Syncer
branch: externals/llm
commit ef3c55e9c8b7fee127a21fe72e35adae4a7b00bd
Author: Andrew Hyatt 
Commit: GitHub 

Add the ability to return multiple outputs via a plist in llm calls (#160)

This adds the `multi-ouput` optional argument to the llm interface. When
set, the return value can contain different types of values: `text`, the
normal textual output of the model, `tool-results`, the results of tool
calls, `tool-uses` the uses determined by the LLM, from which we execute
to get the results, and `reasoning`, the output for reasoning.

This should enable us to solve https://github.com/ahyatt/llm/issues/143,
but it may require more work with the r1 server and any other reasoning
server. Other reasoning models didn't appear to have a different output
stream, but that may change.
---
 NEWS.org   |   2 +
 README.org |  16 +++-
 llm-claude.el  |   4 +-
 llm-fake.el|  18 +++--
 llm-integration-test.el|  71 
 llm-ollama.el  |  45 +--
 llm-openai.el  |   7 +-
 llm-provider-utils-test.el |  10 +++
 llm-provider-utils.el  | 196 -
 llm-vertex.el  |   7 +-
 llm.el |  69 ++--
 11 files changed, 341 insertions(+), 104 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index f770f48287..bd882d71f0 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,5 @@
+* Version 0.24.0
+- Add =multi-output= as an option, allowing all llm results to return, call, 
or stream multiple kinds of data via a plist.  This allows separating out 
reasoning, as well as optionally returning text as well as tool uses at the 
same time.
 * Version 0.23.1
 - Add Gemini 2.0 pro experimental model, default to 2.0 flash
 - Add Open AI's o3 mini model
diff --git a/README.org b/README.org
index 4a3014fd15..420d34bbd7 100644
--- a/README.org
+++ b/README.org
@@ -139,9 +139,9 @@ Client applications should require the =llm= package, and 
code against it.  Most
 
 For all callbacks, the callback will be executed in the buffer the function 
was first called from.  If the buffer has been killed, it will be executed in a 
temporary buffer instead.
 ** Main functions
-- ~llm-chat provider prompt~:  With user-chosen ~provider~ , and a 
~llm-chat-prompt~ structure (created by ~llm-make-chat-prompt~), send that 
prompt to the LLM and wait for the string output.
-- ~llm-chat-async provider prompt response-callback error-callback~: Same as 
~llm-chat~, but executes in the background.  Takes a ~response-callback~ which 
will be called with the text response.  The ~error-callback~ will be called in 
case of error, with the error symbol and an error message.
-- ~llm-chat-streaming provider prompt partial-callback response-callback 
error-callback~:  Similar to ~llm-chat-async~, but request a streaming 
response.  As the response is built up, ~partial-callback~ is called with the 
all the text retrieved up to the current point.  Finally, ~reponse-callback~ is 
called with the complete text.
+- ~llm-chat provider prompt multi-output~:  With user-chosen ~provider~ , and 
a ~llm-chat-prompt~ structure (created by ~llm-make-chat-prompt~), send that 
prompt to the LLM and wait for the string output.
+- ~llm-chat-async provider prompt response-callback error-callback 
multi-output~: Same as ~llm-chat~, but executes in the background.  Takes a 
~response-callback~ which will be called with the text response.  The 
~error-callback~ will be called in case of error, with the error symbol and an 
error message.
+- ~llm-chat-streaming provider prompt partial-callback response-callback 
error-callback multi-output~:  Similar to ~llm-chat-async~, but request a 
streaming response.  As the response is built up, ~partial-callback~ is called 
with the all the text retrieved up to the current point.  Finally, 
~reponse-callback~ is called with the complete text.
 - ~llm-embedding provider string~: With the user-chosen ~provider~, send a 
string and get an embedding, which is a large vector of floating point values.  
The embedding represents the semantic meaning of the string, and the vector can 
be compared against other vectors, where smaller distances between the vectors 
represent greater semantic similarity.
 - ~llm-embedding-async provider string vector-callback error-callback~: Same 
as ~llm-embedding~ but this is processed asynchronously. ~vector-callback~ is 
called with the vector embedding, and, in case of error, ~error-callback~ is 
called with the same arguments as in ~llm-chat-async~.
 - ~llm-batch-embedding provider strings~: same as ~llm-embedding~, but takes 
in a list of strings, and returns a list of vectors whose order corresponds to 
the ordering of the strings.
@@ -156,6 +156,16 @@ For all callbacks, the callback will be executed in the 
buffer the function was
   - ~llm-chat-prompt-to-text prompt~: From a prompt, return a string 

[elpa] externals/ellama 682686da7c 2/3: Bump version

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 682686da7c7dbbf361d02b6bf7bf27e76f44d558
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

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

diff --git a/NEWS.org b/NEWS.org
index c122895e2c..7767d188fd 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,8 @@
+* Version 1.4.2
+- Fixed the auto-scroll logic in ~ellama.el~ to ensure it correctly sets and
+  resets ~stop-scroll~ based on cursor position changes.
+- Added a ~redisplay~ call at the end of ~ellama--scroll~ to force a refresh of
+  the window display to correctly handle auto-scroll of unfocused windows.
 * Version 1.4.1
 - Fixed a bug where users couldn't move the cursor during generation when
   auto-scroll was enabled.
diff --git a/ellama.el b/ellama.el
index 84d179caa2..a453ace783 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.4.1
+;; Version: 1.4.2
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/ellama 4cb122b572 1/3: Add auto-scroll continue logic and out of focus scrolling

2025-02-23 Thread ELPA Syncer
branch: externals/ellama
commit 4cb122b5723629146efc90bc62675ad9167d3b14
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add auto-scroll continue logic and out of focus scrolling

Fixed the auto-scroll logic in `ellama.el` to ensure it correctly sets and
resets `stop-scroll` based on cursor position changes. Added a `redisplay` 
call
at the end of `ellama--scroll` to force a refresh of the window display to
correctly hadle auto-scroll of unfocused windows.
---
 ellama.el | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/ellama.el b/ellama.el
index 3540371362..84d179caa2 100644
--- a/ellama.el
+++ b/ellama.el
@@ -2002,10 +2002,11 @@ failure (with BUFFER current).
  (let* ((pt (point))
 (new-distance-to-end (- (point-max) (point
(save-excursion
- (when (and (eq (window-buffer (selected-window))
-buffer)
-(not (equal distance-to-end 
new-distance-to-end)))
-   (setq stop-scroll t))
+ (if (and (eq (window-buffer (selected-window))
+  buffer)
+  (not (equal distance-to-end 
new-distance-to-end)))
+ (setq stop-scroll t)
+   (setq stop-scroll nil))
  (goto-char start)
  (delete-region start end)
  (insert (funcall filter text))
@@ -2237,7 +2238,8 @@ A function for programmatically scrolling the buffer 
during text generation."
 (with-selected-window window
   (when (ellama-chat-buffer-p buf)
(goto-char (point-max)))
-  (recenter -1
+  (recenter -1)
+  (redisplay
 
 (defun ellama-chat-done (text &optional on-done)
   "Chat done.



[nongnu] elpa/cider 5b873a94a8: [Docs] Set size for the video tutorial explicitly

2025-02-23 Thread ELPA Syncer
branch: elpa/cider
commit 5b873a94a8f4804034713ddb774ad7f6f493708f
Author: Bozhidar Batsov 
Commit: Bozhidar Batsov 

[Docs] Set size for the video tutorial explicitly
---
 doc/modules/ROOT/pages/index.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/modules/ROOT/pages/index.adoc 
b/doc/modules/ROOT/pages/index.adoc
index 53d5055011..6661d1e0c1 100644
--- a/doc/modules/ROOT/pages/index.adoc
+++ b/doc/modules/ROOT/pages/index.adoc
@@ -92,7 +92,7 @@ and then jumped to a REPL buffer to try out something there.
 
 Here's also a video demo of CIDER's essential functionality:
 
-video::aYA4AAjLfT0[youtube,width=100%]
+video::aYA4AAjLfT0[youtube,width=640,height=480]
 
 You can find several other demo videos on the 
xref:additional_resources.adoc[Additional Resources] page.
 



[elpa] externals/dape f8d8392ada: Use same window if no window is displaying source

2025-02-23 Thread ELPA Syncer
branch: externals/dape
commit f8d8392adacc124212a2942ef4a884d0ffc5a1ee
Author: Daniel Pettersson 
Commit: Daniel Pettersson 

Use same window if no window is displaying source
---
 dape.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dape.el b/dape.el
index 1ba48c6972..cb2c1ec599 100644
--- a/dape.el
+++ b/dape.el
@@ -551,7 +551,7 @@ variable should be expanded by default."
 
 (defcustom dape-display-source-buffer-action
   `((display-buffer-reuse-window
- display-buffer-reuse-mode-window
+ display-buffer-same-window
  display-buffer-use-some-window))
   "`display-buffer' action used when displaying source buffer."
   :type 'sexp)



[elpa] externals/hiddenquote 4015255b1f 1/5: Guard against empty answers vector

2025-02-23 Thread ELPA Syncer
branch: externals/hiddenquote
commit 4015255b1f990f7efe9f2806dd314957af9ee7d9
Author: Mauro Aranda 
Commit: Mauro Aranda 

Guard against empty answers vector

* hiddenquote.el (hiddenquote-grid-value-create): Don't fail if the
answers vector is empty.
(hiddeqnuote-hidden-quote-puzzle): Fix typo.
---
 hiddenquote.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/hiddenquote.el b/hiddenquote.el
index 49b16a920b..d2a905ed89 100644
--- a/hiddenquote.el
+++ b/hiddenquote.el
@@ -516,7 +516,7 @@ It has to be of the form ARR1,ARR2")
 :type string
 :custom string
 :documentation
-"The subject for the puzzle (e.g., general, chemistry, etc.")
+"The subject for the puzzle (e.g., general, chemistry, etc.)")
;; Not part of ipuz.
(file :initarg :file
  :initform ""
@@ -869,7 +869,8 @@ the :tag, and use the description slot to build the :doc."
 :hiddenquote-word-number i
 :hiddenquote-word-length (aref lengths i)
 :value (if (and (oref puzzle saved)
-(oref (oref puzzle saved) answers))
+(oref (oref puzzle saved) answers)
+(> (length (oref (oref puzzle saved) answers)) 0))
(aref (oref (oref puzzle saved) answers) i)
  (make-string (aref lengths i) ?\s)))
children)



[elpa] externals/hiddenquote 602391cfe4 3/5: Avoid delete-char in hiddenquote-delete-backward-char

2025-02-23 Thread ELPA Syncer
branch: externals/hiddenquote
commit 602391cfe4c329639518ced68baeae9d516a46c8
Author: Mauro Aranda 
Commit: Mauro Aranda 

Avoid delete-char in hiddenquote-delete-backward-char

* hiddenquote.el (hiddenquote-delete-backward-char): Use
widget-value-set rather than relying in delete-char.
---
 hiddenquote.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hiddenquote.el b/hiddenquote.el
index d2a905ed89..761b708158 100644
--- a/hiddenquote.el
+++ b/hiddenquote.el
@@ -1455,7 +1455,8 @@ Doesn't really delete the character, rather it changes it 
for an empty space."
   (widget-backward 1)
   (unless (eq (widget-type (widget-at)) 'hiddenquote-character)
 (widget-forward 1))
-  (delete-char 1))
+  (widget-value-set (widget-at) " ")
+  (widget-backward 1))
 
 (defun hiddenquote-transpose-chars ()
   "Interchange the characters around point, and move forward one character.



[elpa] externals/ellama updated (2d4de7e346 -> c1b51834c9)

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

  from  2d4de7e346 Update ellama configuration
   new  77a43ce379 Optimize text insertion and scrolling in `ellama.el`
   new  c1b51834c9 Bump version


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



[elpa] externals/consult-recoll 4f9865df94: .elpaignore (for license file)

2025-02-23 Thread ELPA Syncer
branch: externals/consult-recoll
commit 4f9865df94fc18580b5266b3c1afd1a110199576
Author: jao 
Commit: jao 

.elpaignore (for license file)
---
 .elpaignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.elpaignore b/.elpaignore
new file mode 100644
index 00..8da84891bf
--- /dev/null
+++ b/.elpaignore
@@ -0,0 +1 @@
+license



[elpa] externals/ellama c1b51834c9 2/2: Bump version

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

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

diff --git a/NEWS.org b/NEWS.org
index 98e0d56657..c122895e2c 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,6 @@
+* Version 1.4.1
+- Fixed a bug where users couldn't move the cursor during generation when
+  auto-scroll was enabled.
 * Version 1.4.0
 - Improved transient menus.
 - Added ellama-session-kill functionality.
diff --git a/ellama.el b/ellama.el
index ced08c7aae..3540371362 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient 
"0.7") (compat "29.1"))
-;; Version: 1.4.0
+;; Version: 1.4.1
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/hiddenquote 2e7fa85f22 2/5: Add new puzzle

2025-02-23 Thread ELPA Syncer
branch: externals/hiddenquote
commit 2e7fa85f22c4109c7a33b6ae705d1416c60a3788
Author: Mauro Aranda 
Commit: Mauro Aranda 

Add new puzzle

* puzzles/6.ipuz: New file.
---
 puzzles/6.ipuz | 678 +
 1 file changed, 678 insertions(+)

diff --git a/puzzles/6.ipuz b/puzzles/6.ipuz
new file mode 100644
index 00..94f10ad106
--- /dev/null
+++ b/puzzles/6.ipuz
@@ -0,0 +1,678 @@
+{
+  "version": "http://ipuz.org/v2";,
+  "kind": [
+"http://mauroaranda.com/puzzles//hiddenquote#1";,
+"http://ipuz.org/crossword#1";
+  ],
+  "copyright": "Copyright (C) 2025 tbb",
+  "publisher": "MauroAranda",
+  "url": "http://yourdomain.com1";,
+  "uniqueid": "6",
+  "title": "Hidden Puzzle Nº1",
+  "author": "Mauro Aranda",
+  "editor": "Mauro Aranda",
+  "date": "02/23/2025",
+  "origin": "GNU Emacs",
+  "intro": "Complete the grid to find a quote from Confucius.",
+  "dimensions": {
+"width": 12,
+"height": 25
+  },
+  "puzzle": [
+[
+  "1",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "2",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null
+],
+[
+  "3",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "4",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "5",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "6",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null
+],
+[
+  "7",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "8",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "9",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null
+],
+[
+  "10",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null
+],
+[
+  "11",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "12",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null
+],
+[
+  "13",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null
+],
+[
+  "14",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "15",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null
+],
+[
+  "16",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "17",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "18",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "19",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "20",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "21",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "22",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "23",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "24",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null
+],
+[
+  "25",
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  null,
+  null,
+  null,
+  null,
+  null,
+  null
+]
+  ],
+  "clues": {
+   

[elpa] externals/hiddenquote 4a62c35fcd 4/5: ; Fix typo in docstring

2025-02-23 Thread ELPA Syncer
branch: externals/hiddenquote
commit 4a62c35fcdf5e4a50a39e20ae59f3d4a2aa530c0
Author: Mauro Aranda 
Commit: Mauro Aranda 

; Fix typo in docstring
---
 hiddenquote.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hiddenquote.el b/hiddenquote.el
index 761b708158..5d6ea4a5af 100644
--- a/hiddenquote.el
+++ b/hiddenquote.el
@@ -1461,7 +1461,7 @@ Doesn't really delete the character, rather it changes it 
for an empty space."
 (defun hiddenquote-transpose-chars ()
   "Interchange the characters around point, and move forward one character.
 
-Attempting to transporte the first character in a word results in an error.
+Attempting to transpose the first character in a word results in an error.
 
 Note that after transposing the last character in a word, this command moves
 point to the next word."



[elpa] externals/hiddenquote d2ca7e7dc1 5/5: ; Docstring fixes

2025-02-23 Thread ELPA Syncer
branch: externals/hiddenquote
commit d2ca7e7dc198f838957e9d2597d7be164ad3e4bb
Author: Mauro Aranda 
Commit: Mauro Aranda 

; Docstring fixes
---
 hiddenquote.el | 25 +++--
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/hiddenquote.el b/hiddenquote.el
index 5d6ea4a5af..dd160e0931 100644
--- a/hiddenquote.el
+++ b/hiddenquote.el
@@ -409,7 +409,7 @@ non-nil."
 (widget-button-press (point
 
 (defun hiddenquote-widget-backward ()
-  "Compatibility function, to avoid `widget-backward' to skip widgets."
+  "Compatibility function, to avoid `widget-backward' skipping widgets."
   (unless (eobp)
 (forward-char 1)))
 
@@ -879,7 +879,10 @@ the :tag, and use the description slot to build the :doc."
 (widget-put widget :children (reverse children
 
 (defun hiddenquote-grid-format-handler (widget ch)
-  "Recognize escape character CH when creating a `hiddenquote-grid' WIDGET."
+  "Recognize escape character CH when creating a `hiddenquote-grid' WIDGET.
+
+It handles a custom escape character, \"%T\", to create a hiddenquote-timer
+widget."
   (let ((saved (oref (widget-get widget :hiddenquote) saved)))
 (cond ((eq ch ?T) ; Print time.
(when hiddenquote-show-time
@@ -966,7 +969,7 @@ Notify the widget between FROM and TO about a change."
 
 If the car of EVENT is `before-change', this function just calls
 `widget-default-notify'.  If the car of EVENT is `after-change',
-advance point to some other widget and maybe check the answer."
+advances point to some other widget and maybe check the answer."
   ;; When CHILD is the last WIDGET's children, go to the first child.
   (when (and (eq (car-safe event) 'after-change)
  (not (eql (nth 1 event) (nth 2 event
@@ -1173,7 +1176,7 @@ Redo it means setting WIDGET to the opposite of VALUE."
 (undo)))
 
 (defun hiddenquote--get-quote-length ()
-  "Return the quote length, by looking each word in the widget."
+  "Return the quote length, by looking at each word in the widget."
   ;; We have to do this when the qquote slot is empty.
   (let* ((puzzle (widget-get hiddenquote-current :hiddenquote))
  (words (widget-get hiddenquote-current :children))
@@ -1240,7 +1243,7 @@ Redo it means setting WIDGET to the opposite of VALUE."
 (defun hiddenquote-get-local-puzzle (&optional n)
   "Return a puzzle from this package `puzzles' directory.
 
-With N non-nil, return that puzzle, otherwise return the newest one."
+With N non-nil, prompt for a puzzle N°, otherwise return the newest one."
   (let* ((num (and n (read-number "Enter a puzzle number: ")))
  (dir (file-name-directory (locate-library "hiddenquote")))
  (file (if num
@@ -1280,7 +1283,7 @@ With N non-nil, return that puzzle, otherwise return the 
newest one."
 (defun hiddenquote-get-hidden-quote-puzzle (&optional n)
   "Return a puzzle from the hidden-quote puzzle source.
 
-With N nil, return the latest puzzle.  With N non-nil, return that
+With N nil, return the latest puzzle.  With N non-nil, prompt for a
 puzzle Nº."
   (let* ((num (and n (read-number "Enter a puzzle number: ")))
  (url "https://mauroaranda.com/puzzles/hidden-quote-puzzle/";)
@@ -1591,7 +1594,7 @@ point to the next word."
 
 Interactively, prompts for the string.
 
-This command comes handy when you have figured out the quote but not yet
+This command is handy when you have figured out the quote but not yet
 every word."
   (interactive (list (read-string "Quote: ")))
   (setq str
@@ -1678,7 +1681,9 @@ every word."
   (not hiddenquote-skip-used-syllables)))
 
 (defun hiddenquote-save ()
-  "Save the puzzle and the user progress."
+  "Save the puzzle and the user progress to a file.
+
+The file slot of the hiddenquote object contains the filename."
   (interactive)
   (let* ((puzzle (widget-get hiddenquote-current :hiddenquote))
  (user-answers (vconcat
@@ -1733,8 +1738,8 @@ With a prefix argument NOPROMPT non-nil, doesn't prompt."
   "Stop playing hiddenquote, without saving the progress.
 
 Prompts the user and kills the buffer if the answer is \"yes\".
-Kills the buffer unconditionally With a prefix argument NOPROMPT non-nil,
-or if the puzzle is complete."
+With a prefix argument NOPROMPT non-nil, or if the puzzle is complete,
+kills the buffer unconditionally "
   (interactive "P")
   (when (or noprompt (hiddenquote-puzzle-complete-p)
 (yes-or-no-p "Really quit playing Hiddenquote? "))



[elpa] externals/activities d735c0f2c7 3/3: Fix: Don't call file-truename for remote files

2025-02-23 Thread ELPA Syncer
branch: externals/activities
commit d735c0f2c714ac98248ee17d765bfa8310201d53
Merge: 31ec5154dd 77c135fc36
Author: Adam Porter 
Commit: Adam Porter 

Fix: Don't call file-truename for remote files

See #130, #133.
---
 README.org|  3 +++
 activities.el | 11 +--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index dd0e207f1a..d83c29f97d 100644
--- a/README.org
+++ b/README.org
@@ -170,6 +170,9 @@ The sort order when completing activities can be configured 
using ~activities-so
 *Changes*
 + During save, the ~time~ slot for an activity remains unchanged unless its 
buffers or files differ from their last saved state.  
([[https://github.com/alphapapa/activity.el/pull/83][#83]].  Thanks to 
[[https://github.com/jdtsmith][JD Smith]].)
 
+*Fixes*
++ Don't try to compute true filenames for remote files.  (See 
[[https://github.com/alphapapa/activities.el/issues/130][#130]], 
[[https://github.com/alphapapa/activities.el/pull/133][#133]].  Thanks to 
[[https://github.com/jdtsmith][JD Smith]].)
+
 ** v0.7.2
 
 *Fixes*
diff --git a/activities.el b/activities.el
index 24c92d8ee8..42a78ea32e 100644
--- a/activities.el
+++ b/activities.el
@@ -558,8 +558,15 @@ Each of BFA and BFB is a list of buffer and files, as 
returned
 from `activities--buffers-and-files'."
   (cl-labels ((file-or-buffer (cell)
"Given a CELL, return the true filename or buffer.
-The CELL is a (BUFFER . FILE) cons.  If the file is nil, BUFFER is returned."
-   (if (cdr cell) (file-truename (cdr cell)) (car cell
+If the file is a remote one, return its value as-is, not
+necessarily its true name.  The CELL is a (BUFFER . FILE) cons.
+If the file is nil, BUFFER is returned."
+(pcase-let ((`(,buffer . ,file) cell))
+  (if file
+  (if (file-remote-p file)
+  file
+(file-truename file))
+buffer
 (not (seq-set-equal-p (mapcar #'file-or-buffer bfa)
  (mapcar #'file-or-buffer bfb)
 



[elpa] externals/activities 77c135fc36 2/3: Update changelog, tidy binding and docstring

2025-02-23 Thread ELPA Syncer
branch: externals/activities
commit 77c135fc36aa12dc7d8a1abedd639f7dd51dea72
Author: Adam Porter 
Commit: Adam Porter 

Update changelog, tidy binding and docstring
---
 README.org|  3 +++
 activities.el | 15 +--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/README.org b/README.org
index dd0e207f1a..d83c29f97d 100644
--- a/README.org
+++ b/README.org
@@ -170,6 +170,9 @@ The sort order when completing activities can be configured 
using ~activities-so
 *Changes*
 + During save, the ~time~ slot for an activity remains unchanged unless its 
buffers or files differ from their last saved state.  
([[https://github.com/alphapapa/activity.el/pull/83][#83]].  Thanks to 
[[https://github.com/jdtsmith][JD Smith]].)
 
+*Fixes*
++ Don't try to compute true filenames for remote files.  (See 
[[https://github.com/alphapapa/activities.el/issues/130][#130]], 
[[https://github.com/alphapapa/activities.el/pull/133][#133]].  Thanks to 
[[https://github.com/jdtsmith][JD Smith]].)
+
 ** v0.7.2
 
 *Fixes*
diff --git a/activities.el b/activities.el
index cf14e7eed0..42a78ea32e 100644
--- a/activities.el
+++ b/activities.el
@@ -558,12 +558,15 @@ Each of BFA and BFB is a list of buffer and files, as 
returned
 from `activities--buffers-and-files'."
   (cl-labels ((file-or-buffer (cell)
"Given a CELL, return the true filename or buffer.
-The CELL is a (BUFFER . FILE) cons.  If the file is nil, BUFFER is returned."
-   (if-let  ((file (cdr cell)))
-   (if (file-remote-p file)
-   file
- (file-truename file))
- (car cell
+If the file is a remote one, return its value as-is, not
+necessarily its true name.  The CELL is a (BUFFER . FILE) cons.
+If the file is nil, BUFFER is returned."
+(pcase-let ((`(,buffer . ,file) cell))
+  (if file
+  (if (file-remote-p file)
+  file
+(file-truename file))
+buffer
 (not (seq-set-equal-p (mapcar #'file-or-buffer bfa)
  (mapcar #'file-or-buffer bfb)
 



[elpa] externals/activities updated (31ec5154dd -> d735c0f2c7)

2025-02-23 Thread ELPA Syncer
elpasync pushed a change to branch externals/activities.

  from  31ec5154dd Merge: Completion annotations
   new  8109adde73 annotate: skip file-truename for remote files
   new  77c135fc36 Update changelog, tidy binding and docstring
   new  d735c0f2c7 Fix: Don't call file-truename for remote files


Summary of changes:
 README.org|  3 +++
 activities.el | 11 +--
 2 files changed, 12 insertions(+), 2 deletions(-)



[nongnu] elpa/dirvish updated (df4fd5670d -> ee55249c3f)

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

  from  df4fd5670d docs: drop `tramp-use-ssh-controlmaster-options`, which 
causes error
   new  9597df1bc3 refactor(core): use local 
`window-selection-change-functions`
   new  e9dc185d4f refactor: remove `dirvish-window-fringe` option
   new  f570626fcc perf(vc): fetch `vc-info` asynchronously
   new  0fd67c736b feat: add `dirvish-inactive` face
   new  ee55249c3f fix(core): make `dirvish(-dwim)` honer visible session


Summary of changes:
 dirvish-extras.el  |  17 ---
 dirvish-widgets.el |  81 ++
 dirvish.el | 107 -
 extensions/dirvish-fd.el   |   2 +-
 extensions/dirvish-side.el |   2 +-
 extensions/dirvish-vc.el   |  36 +++
 6 files changed, 128 insertions(+), 117 deletions(-)



[nongnu] elpa/dirvish 9597df1bc3 1/5: refactor(core): use local `window-selection-change-functions`

2025-02-23 Thread ELPA Syncer
branch: elpa/dirvish
commit 9597df1bc3a9731673f5e00f269d4f64f2f25a3b
Author: Alex Lu 
Commit: Alex Lu 

refactor(core): use local `window-selection-change-functions`
---
 dirvish.el | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index d08f0a0d5d..a32d988101 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -465,7 +465,7 @@ ALIST is window arguments passed to 
`window--display-buffer'."
 
 (defun dirvish--selected-p (&optional dv)
   "Return t if session DV (defaults to `dirvish-curr') is selected."
-  (let ((dv (or dv (dirvish-curr
+  (when-let* ((dv (or dv (dirvish-curr
 (eq (dv-root-window dv) dirvish--selected-window)))
 
 (defun dirvish--format-menu-heading (title &optional note)
@@ -809,7 +809,7 @@ When FORCE, ensure the preview get refreshed."
  ;; by `*-other-tab|frame'
  ((or (null (equal old-frame frame)) (null (equal old-tab tab)))
   (with-selected-window (dirvish--create-root-window dv)
-(setq dirvish--selected-window (selected-window))
+(setq dirvish--selected-window (frame-selected-window))
 (dirvish-save-dedication
  (switch-to-buffer (get-buffer-create "*scratch*")))
 (setf (dv-winconf dv) (current-window-configuration))
@@ -1177,6 +1177,7 @@ Dirvish sets `revert-buffer-function' to this function."
   tab-bar-new-tab-choice "*scratch*"
   dired-hide-details-hide-symlink-targets nil
   dired-kill-when-opening-new-dired-buffer nil)
+  (add-hook 'window-selection-change-functions #'dirvish-selection-change-h 
nil t)
   (add-hook 'window-buffer-change-functions #'dirvish-winbuf-change-h nil t)
   (add-hook 'window-configuration-change-hook #'dirvish-winconf-change-h nil t)
   (add-hook 'post-command-hook #'dirvish-update-body-h nil t)
@@ -1327,6 +1328,7 @@ INHIBIT-SETUP is non-nil."
 (dirvish--init-util-buffers dv)
 (dirvish--setup-mode-line dv)
 (when w-order (let ((ignore-window-parameters t)) (delete-other-windows)))
+(setq dirvish--selected-window (frame-selected-window))
 (dolist (pane w-order)
   (let* ((buf (dirvish--util-buffer pane dv nil (eq pane 'preview)))
  (args (alist-get pane w-args))
@@ -1389,13 +1391,10 @@ are killed and the Dired buffer(s) in the selected 
window are buried."
(dired-insert-subdir dirvish-insert-subdir-a :after)
(image-dired-create-thumbnail-buffer dirvish-thumb-buf-a 
:around)
(wdired-change-to-wdired-mode dirvish-wdired-enter-a :after)
-   (wdired-change-to-dired-mode dirvish-init-dired-buffer :after)))
-(sel-ch #'dirvish-selection-change-h))
+   (wdired-change-to-dired-mode dirvish-init-dired-buffer 
:after
 (if dirvish-override-dired-mode
-(progn (pcase-dolist (`(,sym ,fn ,how) ads) (advice-add sym how fn))
-   (add-hook 'window-selection-change-functions sel-ch))
-  (pcase-dolist (`(,sym ,fn) ads) (advice-remove sym fn))
-  (remove-hook 'window-selection-change-functions sel-ch
+(pcase-dolist (`(,sym ,fn ,how) ads) (advice-add sym how fn))
+  (pcase-dolist (`(,sym ,fn) ads) (advice-remove sym fn)
 
 ;;;###autoload
 (defun dirvish (&optional path)



[nongnu] elpa/dirvish 0fd67c736b 4/5: feat: add `dirvish-inactive` face

2025-02-23 Thread ELPA Syncer
branch: elpa/dirvish
commit 0fd67c736b94492cdcbc0dee06159f74f0dc8f9d
Author: Alex Lu 
Commit: Alex Lu 

feat: add `dirvish-inactive` face
---
 dirvish-widgets.el | 81 --
 dirvish.el |  9 +-
 extensions/dirvish-fd.el   |  2 +-
 extensions/dirvish-side.el |  2 +-
 extensions/dirvish-vc.el   |  2 +-
 5 files changed, 54 insertions(+), 42 deletions(-)

diff --git a/dirvish-widgets.el b/dirvish-widgets.el
index fc65f27819..7b9f2ce1b9 100644
--- a/dirvish-widgets.el
+++ b/dirvish-widgets.el
@@ -231,14 +231,16 @@ Audio;(Audio-codec . \"\"%CodecID%\"\")(Audio-bitrate . 
\"\"%BitRate/String%\"\"
dirvish-time-format-string
(file-attribute-modification-time attrs))
 
-(defun dirvish--format-file-attr (attr-name)
-  "Return a string of cursor file's attribute ATTR-NAME."
-  (when-let* ((name (dirvish-prop :index))
-  (attrs (dirvish-attribute-cache name :builtin))
-  (attr-getter (intern (format "file-attribute-%s" attr-name)))
-  (attr-face (intern (format "dirvish-file-%s" attr-name)))
-  (attr-val (and attrs (funcall attr-getter attrs
-(propertize (format "%s" attr-val) 'face attr-face)))
+(defun dirvish--format-file-attr (name &optional suffix)
+  "Return a (ATTR . FACE) cons of index's attribute NAME.
+Use optional SUFFIX or NAME to intern the face symbol."
+  (when-let* ((fname (dirvish-prop :index))
+  (attrs (dirvish-attribute-cache fname :builtin))
+  (attr-getter (intern (format "file-attribute-%s" name)))
+  (a-face (intern (format "dirvish-file-%s" (or suffix name
+  (face (if (dirvish--selected-p) a-face 'dirvish-inactive))
+  (attr (and attrs (funcall attr-getter attrs
+(cons attr face)))
 
 (defun dirvish-media--cache-path (file &optional base ext no-mkdir)
   "Get FILE's cache path.
@@ -351,7 +353,7 @@ GROUP-TITLES is a list of group titles."
   "Path of file under the cursor."
   (let* ((directory-abbrev-alist nil) ; TODO: support custom 
`directory-abbrev-alist'
  (index (dired-current-directory))
- (face (if (dirvish--selected-p) 'dired-header 'shadow))
+ (face (if (dirvish--selected-p) 'dired-header 'dirvish-inactive))
  (rmt (dirvish-prop :remote))
  (abvname (if rmt (file-local-name index) (abbreviate-file-name 
index)))
  (host (propertize (if rmt (concat " " (substring rmt 1)) "")
@@ -376,6 +378,7 @@ GROUP-TITLES is a list of group titles."
 (dirvish-define-mode-line sort
   "Current sort criteria."
   (let* ((switches (split-string dired-actual-switches))
+ (unfocused (unless (dirvish--selected-p) 'dirvish-inactive))
  (crit (cond (dired-sort-inhibit "DISABLED")
  ((member "--sort=none" switches) "none")
  ((member "--sort=time" switches) "time")
@@ -390,9 +393,9 @@ GROUP-TITLES is a list of group titles."
  (t "mtime")))
  (rev (if (member "--reverse" switches) "↓" "↑")))
 (format " %s %s|%s "
-(propertize rev 'face 'font-lock-constant-face)
-(propertize crit 'face 'font-lock-type-face)
-(propertize time 'face 'font-lock-doc-face
+(propertize rev 'face (or unfocused 'font-lock-constant-face))
+(propertize crit 'face (or unfocused 'font-lock-type-face))
+(propertize time 'face (or unfocused 'font-lock-doc-face)
 
 (dirvish-define-mode-line omit
   "A `dired-omit-mode' indicator."
@@ -403,15 +406,19 @@ GROUP-TITLES is a list of group titles."
   "Show the truename of symlink file under the cursor."
   (when-let* ((name (dirvish-prop :index))
   (truename (cdr (dirvish-attribute-cache name :type
-(format " %s %s "
-(propertize "→" 'face 'font-lock-comment-delimiter-face)
+(format "%s %s"
+(propertize "→ " 'face 'font-lock-comment-delimiter-face)
 (propertize truename 'face 'dired-symlink
 
 (dirvish-define-mode-line index
   "Current file's index and total files count."
-  (let ((cur-pos (- (line-number-at-pos (point)) 1))
-(fin-pos (number-to-string (- (line-number-at-pos (point-max)) 2
-(format " %d / %s " cur-pos (propertize fin-pos 'face 'bold
+  (let ((cur-pos (format "%3d " (- (line-number-at-pos (point)) 1)))
+(fin-pos (format "/%3d " (- (line-number-at-pos (point-max)) 2
+(if (dirvish--selected-p)
+(put-text-property 0 (length fin-pos) 'face 'bold fin-pos)
+  (put-text-property 0 (length cur-pos) 'face 'dirvish-inactive cur-pos)
+  (put-text-property 0 (length fin-pos) 'face 'dirvish-inactive fin-pos))
+(format "%s%s" cur-pos fin-pos)))
 
 (dirvish-define-mode-line free-space
   "Amount of free space on `default-directory''s file system."
@@ -423,33 +430,28 @@ GROUP-TITLES is a list of group titles."
 
 (di

[nongnu] elpa/dirvish ee55249c3f 5/5: fix(core): make `dirvish(-dwim)` honer visible session

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

fix(core): make `dirvish(-dwim)` honer visible session
---
 dirvish-extras.el | 17 --
 dirvish.el| 69 +--
 2 files changed, 47 insertions(+), 39 deletions(-)

diff --git a/dirvish-extras.el b/dirvish-extras.el
index f4e1c8aa6a..aa5f50f9f6 100644
--- a/dirvish-extras.el
+++ b/dirvish-extras.el
@@ -217,23 +217,6 @@ FILESET defaults to `dired-get-marked-files'."
   file-size-human-readable)))
   (message "%s" (format "Total size of %s entries: %s" count size)
 
-;;;###autoload
-(defun dirvish-layout-toggle ()
-  "Toggle layout of current Dirvish session.
-A session with layout means it has a companion preview window and
-possibly one or more parent windows."
-  (interactive)
-  (let* ((dv (or (dirvish-curr) (user-error "Not a dirvish buffer")))
- (old-layout (dv-curr-layout dv))
- (new-layout (unless old-layout (dv-ff-layout dv)))
- (buf (current-buffer)))
-(if old-layout (set-window-configuration (dv-winconf dv))
-  (with-selected-window (dv-root-window dv) (quit-window)))
-(setf (dv-curr-layout dv) new-layout)
-(with-selected-window (dirvish--create-root-window dv)
-  (dirvish-save-dedication (switch-to-buffer buf))
-  (dirvish--build-layout dv
-
 ;;;###autoload
 (defun dirvish-layout-switch (&optional recipe)
   "Switch Dirvish layout according to RECIPE.
diff --git a/dirvish.el b/dirvish.el
index e574173bd8..34bb1868c3 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -1347,17 +1347,28 @@ INHIBIT-SETUP is non-nil."
 (dirvish--maybe-toggle-cursor)
 (dirvish--maybe-toggle-details)))
 
-(defun dirvish--reuse-or-create (path layout)
-  "Find PATH in a dirvish session and set its layout with LAYOUT."
-  (let ((dir (or path default-directory))
-(dv (or (dirvish-curr) (dirvish--get-session 'type 'default
-(cond (dv (with-selected-window (dirvish--create-root-window dv)
-(setf (dv-curr-layout dv) (or (dv-curr-layout dv) layout))
-(dirvish-find-entry-a
- (if (or path (not (eq dirvish-reuse-session 'resume))) dir
-   (car (dv-index dv
-(dirvish--build-layout dv)))
-  (t (dirvish--new :curr-layout layout)
+(defun dirvish--reuse-or-create (path &optional dwim)
+  "Find PATH in dirvish , check `one-window-p' if DWIM."
+  (let* ((dir (or path default-directory))
+ (visible? (cl-loop for w in (window-list)
+for b = (window-buffer w)
+for dv = (with-current-buffer b (dirvish-curr))
+thereis (and dv (eq 'default (dv-type dv)) dv)))
+ (reuse? (unless visible? (dirvish--get-session 'type 'default
+(cond (visible?
+   (select-window (dv-root-window visible?))
+   (unless (or (dv-curr-layout visible?) dwim) (dirvish-layout-toggle))
+   (dirvish-find-entry-a dir))
+  (reuse?
+   (with-selected-window (dirvish--create-root-window reuse?)
+ (setf (dv-curr-layout reuse?)
+   (or (dv-curr-layout reuse?) dirvish-default-layout))
+ (and dwim (not (one-window-p)) (setf (dv-curr-layout reuse?) nil))
+ (if (eq dirvish-reuse-session 'resume) (dirvish--build-layout 
reuse?)
+   (dirvish-find-entry-a dir
+  (t (dirvish--new
+  :curr-layout (if dwim (and (one-window-p) dirvish-default-layout)
+ dirvish-default-layout))
  (dirvish-find-entry-a dir)
 
 (define-derived-mode dirvish-directory-view-mode
@@ -1367,6 +1378,22 @@ INHIBIT-SETUP is non-nil."
 
  Commands
 
+(defun dirvish-layout-toggle ()
+  "Toggle layout of current Dirvish session.
+A session with layout means it has a companion preview window and
+possibly one or more parent windows."
+  (interactive)
+  (let* ((dv (or (dirvish-curr) (user-error "Not a dirvish buffer")))
+ (old-layout (dv-curr-layout dv))
+ (new-layout (unless old-layout (dv-ff-layout dv)))
+ (buf (current-buffer)))
+(if old-layout (set-window-configuration (dv-winconf dv))
+  (with-selected-window (dv-root-window dv) (quit-window)))
+(setf (dv-curr-layout dv) new-layout)
+(with-selected-window (dirvish--create-root-window dv)
+  (dirvish-save-dedication (switch-to-buffer buf))
+  (dirvish--build-layout dv
+
 (defun dirvish-quit ()
   "Quit current Dirvish session.
 If the session is a full-framed one, the window layout is restored.  If
@@ -1399,22 +1426,20 @@ are killed and the Dired buffer(s) in the selected 
window are buried."
 
 ;;;###autoload
 (defun dirvish (&optional path)
-  "Start a full frame Dirvish session with optional PATH.
-If called with \\[universal-arguments], prompt for PATH,
-otherwise it defa

[nongnu] elpa/dirvish e9dc185d4f 2/5: refactor: remove `dirvish-window-fringe` option

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

refactor: remove `dirvish-window-fringe` option

Don't set window fringe except for vc-state attributes.
On `dirvish-quit`, reset window fringe to default.

Ref: https://github.com/hlissner/dirvish/issues/1
---
 dirvish.el   | 14 --
 extensions/dirvish-vc.el | 12 +---
 2 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/dirvish.el b/dirvish.el
index a32d988101..ecddc2e927 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -195,10 +195,6 @@ Works all the same as `dirvish-hide-details' but for 
cursor."
 Notice that it only take effects on the built-in `dired' preview dispatcher."
   :group 'dirvish :type 'boolean)
 
-(defcustom dirvish-window-fringe 1
-  "Window fringe for dirvish windows."
-  :group 'dirvish :type 'integer)
-
 (defconst dirvish-emacs-bin
   (cond
((and invocation-directory invocation-name)
@@ -550,7 +546,9 @@ ARGS is a list of keyword arguments for `dirvish' struct."
 (defun dirvish--clear-session (dv &optional from-quit)
   "Reset DV's slot and kill its buffers.
 FROM-QUIT is used to signify the calling command."
-  (let ((index (cdr (dv-index dv
+  (let ((index (cdr (dv-index dv)))
+(fringe (dirvish-prop :fringe)))
+(when fringe (set-window-fringes nil fringe) (dirvish-prop :fringe nil))
 (if (not (dv-curr-layout dv))
 (cl-loop for (_d . b) in (dv-roots dv)
  when (and (not (get-buffer-window b))
@@ -1226,7 +1224,6 @@ LEVEL is the depth of current window."
 (when-let* ((fixed (dv-size-fixed dv))) (setq window-size-fixed fixed))
 (if (dv-curr-layout dv) (set-window-dedicated-p nil nil)
   (and (dv-dedicated dv) (set-window-dedicated-p nil t)))
-(set-window-fringes nil dirvish-window-fringe dirvish-window-fringe)
 (while (and (< i depth) (not (string= current parent)))
   (cl-incf i)
   (push (cons current parent) parent-dirs)
@@ -1243,10 +1240,7 @@ LEVEL is the depth of current window."
 (window-parameters . ((no-other-window . t
for b = (dirvish--create-parent-buffer dv parent current level)
for w = (display-buffer b `(dirvish--display-buffer . ,args)) do
-   (with-selected-window w
- (set-window-fringes
-  nil dirvish-window-fringe dirvish-window-fringe)
- (set-window-dedicated-p w t))
+   (with-selected-window w (set-window-dedicated-p w t))
 
 (defun dirvish--init-util-buffers (dv)
   "Initialize util buffers for DV."
diff --git a/extensions/dirvish-vc.el b/extensions/dirvish-vc.el
index bdaed22be5..63bc90d648 100644
--- a/extensions/dirvish-vc.el
+++ b/extensions/dirvish-vc.el
@@ -22,10 +22,7 @@
   "Class for dirvish vc-* preview dispatchers.")
 
 (defcustom dirvish-vc-state-fringe 3
-  "The width of the fringe used to display the vc state indicator.
-It is recommended to make this value greater than
-`dirvish-window-fringe', which ensures that the `vc-state' attribute is
-displayed properly."
+  "The width of the fringe used to display the vc state indicator."
   :group 'dirvish :type 'integer)
 
 (defcustom dirvish-vc-state-face-alist
@@ -172,9 +169,10 @@ It is called when `:vc-backend' is included in 
DIRVISH-PROPs while
 (dirvish-define-attribute vc-state
   "The version control state at left fringe.
 This attribute only works on graphic displays."
-  ;; Avoid setting fringes constantly
-  (unless (= (car (window-fringes)) dirvish-vc-state-fringe)
-(set-window-fringes nil dirvish-vc-state-fringe dirvish-window-fringe))
+  ;; Avoid setting fringes repeatedly
+  :when (prog1 t (unless (dirvish-prop :fringe)
+   (dirvish-prop :fringe (car (window-fringes)))
+   (set-window-fringes nil dirvish-vc-state-fringe)))
   (let ((ov (make-overlay l-beg l-beg)))
 (when-let* (((symbolp (dirvish-prop :vc-backend)))
 (state (dirvish-attribute-cache f-name :vc-state))



[nongnu] elpa/dirvish f570626fcc 3/5: perf(vc): fetch `vc-info` asynchronously

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

perf(vc): fetch `vc-info` asynchronously

The `vc-info` mode-line segment can significantly slow down Emacs, 
especially in
repositories with many ignored or uncommitted files.
---
 extensions/dirvish-vc.el | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/extensions/dirvish-vc.el b/extensions/dirvish-vc.el
index 63bc90d648..6ac033d8e2 100644
--- a/extensions/dirvish-vc.el
+++ b/extensions/dirvish-vc.el
@@ -107,7 +107,9 @@ It is called when `:vc-backend' is included in 
DIRVISH-PROPs while
 `dirvish-setup-hook' after data parsing unless INHIBIT-SETUP is non-nil."
   (dirvish--make-proc
`(prin1
- (let ((hs (make-hash-table)) (bk ',(dirvish-prop :vc-backend)))
+ (let* ((hs (make-hash-table))
+(bk ',(dirvish-prop :vc-backend))
+(info (vc-call-backend bk 'mode-line-string ,dir)))
;; keep this until `vc-git' fixed upstream.  See: #224 and #273
(advice-add #'vc-git--git-status-to-vc-state :around
(lambda (fn codes) (apply fn (list (delete-dups codes)
@@ -119,11 +121,11 @@ It is called when `:vc-backend' is included in 
DIRVISH-PROPs while
   (shell-quote-argument file))
(puthash (secure-hash 'md5 file)
 `(:vc-state ,state :git-msg ,msg) hs)))
-   hs))
+   (cons info hs)))
(lambda (p _)
  (pcase-let ((`(,buf . ,inhibit-setup) (process-get p 'meta))
- (data (with-current-buffer (process-buffer p)
- (read (buffer-string)
+ (`(,info . ,data) (with-current-buffer (process-buffer p)
+ (read (buffer-string)
(when (buffer-live-p buf)
  (with-current-buffer buf
(maphash
@@ -133,6 +135,7 @@ It is called when `:vc-backend' is included in 
DIRVISH-PROPs while
 (setf (plist-get orig :git-msg) (plist-get v :git-msg))
 (puthash k orig dirvish--attrs-hash)))
 data)
+   (dirvish-prop :vc-info info)
(unless (derived-mode-p 'wdired-mode) (dirvish-update-body-h))
(unless inhibit-setup (run-hooks 'dirvish-setup-hook)
  (delete-process p)
@@ -240,14 +243,11 @@ This attribute only works on graphic displays."
 (dirvish-define-mode-line vc-info
   "Version control info such as git branch."
   (when-let* (((> (window-width) 30))
-  (bk (dirvish-prop :vc-backend))
-  ((symbolp bk))
-  (ml-str (vc-call-backend bk 'mode-line-string default-directory))
-  (bk-str (format "%s:" bk)))
-(format " %s %s "
-(propertize bk-str 'face 'bold)
-(propertize (substring ml-str (length bk-str))
-'face 'font-lock-builtin-face
+  (info-seq (dirvish-prop :vc-info))
+  (info (copy-sequence info-seq)))
+(unless (dirvish--selected-p)
+  (put-text-property 0 (length info) 'face 'shadow info))
+info))
 
 ;;;###autoload (autoload 'dirvish-vc-menu "dirvish-vc" nil t)
 (transient-define-prefix dirvish-vc-menu ()



[elpa] externals/activities 8109adde73 1/3: annotate: skip file-truename for remote files

2025-02-23 Thread ELPA Syncer
branch: externals/activities
commit 8109adde73b8e9c4b038abc3967cd4b7bf2937f6
Author: JD Smith <93749+jdtsm...@users.noreply.github.com>
Commit: JD Smith <93749+jdtsm...@users.noreply.github.com>

annotate: skip file-truename for remote files

The test for a "dirty" activity used by the annotation function and
when updating the timestamp within the activity is based on whether
the "set of buffers and files" has changed.  We use `file-truename` to
look for "real" file changes but that can hang on remote files.  To
alleviate, we only check the `file-truename` on non-remote files.
---
 activities.el | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/activities.el b/activities.el
index 24c92d8ee8..cf14e7eed0 100644
--- a/activities.el
+++ b/activities.el
@@ -559,7 +559,11 @@ from `activities--buffers-and-files'."
   (cl-labels ((file-or-buffer (cell)
"Given a CELL, return the true filename or buffer.
 The CELL is a (BUFFER . FILE) cons.  If the file is nil, BUFFER is returned."
-   (if (cdr cell) (file-truename (cdr cell)) (car cell
+   (if-let  ((file (cdr cell)))
+   (if (file-remote-p file)
+   file
+ (file-truename file))
+ (car cell
 (not (seq-set-equal-p (mapcar #'file-or-buffer bfa)
  (mapcar #'file-or-buffer bfb)