[elpa] externals/el-job cd2e60f071: Comments
branch: externals/el-job commit cd2e60f071d390079ce243a574b572f4e0805c80 Author: Martin Edström Commit: Martin Edström Comments --- el-job.el | 40 ++-- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/el-job.el b/el-job.el index f7fed98ebb..6fd875bb41 100644 --- a/el-job.el +++ b/el-job.el @@ -48,12 +48,16 @@ ;;; Code: ;; Wish-list: -;; - Figure out how to use `dump-emacs-portable' after loading any number of -;; features so we can reuse that to start the subprocesses instantly. Could -;; even simplify to a sentinel-based workflow then, no polling. +;; - Figure out how to allow more than one list of INPUTS. That'd give this +;; library much wider applicability! -;; - Figure out how to allow more than one list of INPUTS. That'd let this -;; library be applicable to many more situations. +;; - Figure out how to use `dump-emacs-portable' after loading all desired +;; features, so we can reuse that to start the subprocesses nigh-instantly. +;; Could even simplify to a sentinel-based workflow then, no polling. + +;; - Improve the error message in some cases when it is unhelpful and only says +;; something like "Error running timer: listp Error:". I surmise the process +;; buffer contents are not in a Lisp-readable form then. (require 'cl-lib) (require 'el-job-child) @@ -773,20 +777,20 @@ Safely return nil otherwise, whether or not ID is known." ;;; Ok, don't need to break convention anymore. -(define-obsolete-function-alias 'el-job:id #'el-job-id "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:callback #'el-job-callback "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:id #'el-job-id "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:callback #'el-job-callback "2.3.0 (2025-03-16)") (define-obsolete-function-alias 'el-job:n-cores-to-use #'el-job-n-cores-to-use "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:ready #'el-job-ready "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:busy #'el-job-busy "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:stderr #'el-job-stderr "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:timestamps #'el-job-timestamps "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:poll-timer #'el-job-timer "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:finish-times #'el-job-finish-times "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:spawn-args #'el-job-spawn-args "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:past-elapsed #'el-job-past-elapsed "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:queued-inputs #'el-job-queued-inputs "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:input-sets #'el-job-input-sets "2.3.0 (2025-03-16)") -(define-obsolete-function-alias 'el-job:result-sets#'el-job-result-sets "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:ready #'el-job-ready "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:busy #'el-job-busy "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:stderr #'el-job-stderr "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:timestamps #'el-job-timestamps "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:poll-timer #'el-job-timer "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:finish-times #'el-job-finish-times "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:spawn-args #'el-job-spawn-args "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:past-elapsed #'el-job-past-elapsed "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:queued-inputs #'el-job-queued-inputs "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:input-sets #'el-job-input-sets "2.3.0 (2025-03-16)") +(define-obsolete-function-alias 'el-job:result-sets#'el-job-result-sets "2.3.0 (2025-03-16)") (provide 'el-job)
[elpa] externals/ellama b62892085e 4/8: Fix session ID display in ellama.el
branch: externals/ellama commit b62892085e1f0e03f69a786ad37e7e323d279fc0 Author: Sergey Kostyaev Commit: Sergey Kostyaev Fix session ID display in ellama.el Updated the `ellama-session-line` function to correctly display the session ID by checking if `ellama--current-session` is available before using it. This ensures that the session ID is retrieved properly in chat buffer. --- ellama.el | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ellama.el b/ellama.el index b1c3582e07..ae2e597bcf 100644 --- a/ellama.el +++ b/ellama.el @@ -718,7 +718,10 @@ This filter contains only subset of markdown syntax to be good enough." (defun ellama-session-line () "Return current session id line." - (propertize (format " ellama session: %s" ellama--current-session-id) + (propertize (format " ellama session: %s" + (if ellama--current-session + (ellama-session-id ellama--current-session) + ellama--current-session-id)) 'face 'ellama-face)) (defun ellama-session-show-header-line ()
[elpa] externals/ellama b11eecc9f0 1/8: Add session ID display in header and mode lines
branch: externals/ellama commit b11eecc9f0d31e7947a6c953cfb1682e489597b5 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add session ID display in header and mode lines Added functionality to display the current Ellama session ID in both the header line and the mode line. This includes defining new functions for showing and hiding the session ID, as well as updating these displays when the minor modes are toggled. Also added globalized minor modes for enabling this feature across all buffers. --- ellama.el | 59 +++ 1 file changed, 59 insertions(+) diff --git a/ellama.el b/ellama.el index 4d086f31a4..aebb55a00c 100644 --- a/ellama.el +++ b/ellama.el @@ -716,6 +716,65 @@ This filter contains only subset of markdown syntax to be good enough." (defvar ellama--current-session-id nil) +(defun ellama-session-line () + "Return current session id line." + (propertize (format "ellama session: %s" ellama--current-session-id) + 'face 'ellama-face)) + +(defun ellama-session-show-header-line () + "Display session id in the header line." + (add-to-list 'header-line-format '(:eval (ellama-session-line)) t)) + +(defun ellama-session-hide-header-line () + "Hide session id from header line." + (setq header-line-format (delete '(:eval (ellama-session-line)) header-line-format))) + +(defun ellama-session-update-header-line () + "Update header line for ellama session header line mode." + (if ellama-session-header-line-mode + (ellama-session-show-header-line) +(ellama-session-hide-header-line))) + +;;;###autoload +(define-minor-mode ellama-session-header-line-mode + "Toggle Ellama Session header line mode." + :group 'ellama + (add-hook 'window-state-change-hook #'ellama-session-update-header-line) + (ellama-session-update-header-line)) + +;;;###autoload +(define-globalized-minor-mode ellama-session-header-line-global-mode + ellama-session-header-line-mode + ellama-session-header-line-mode + :group 'ellama) + +(defun ellama-session-show-mode-line () + "Display session id in the mode line." + (add-to-list 'mode-line-format '(:eval (ellama-session-line)) t)) + +(defun ellama-session-hide-mode-line () + "Hide session id from mode line." + (setq mode-line-format (delete '(:eval (ellama-session-line)) mode-line-format))) + +(defun ellama-session-update-mode-line () + "Update mode line for ellama session mode line mode." + (if ellama-session-mode-line-mode + (ellama-session-show-mode-line) +(ellama-session-hide-mode-line))) + +;;;###autoload +(define-minor-mode ellama-session-mode-line-mode + "Toggle Ellama Session mode line mode." + :group 'ellama + (add-hook 'window-state-change-hook #'ellama-session-update-mode-line) + (ellama-session-update-mode-line)) + +;;;###autoload +(define-globalized-minor-mode ellama-session-mode-line-global-mode + ellama-session-mode-line-mode + ellama-session-mode-line-mode + :group 'ellama) + (defvar ellama--active-sessions (make-hash-table :test #'equal)) (cl-defstruct ellama-session
[elpa] externals/ellama b992c830e2 3/8: Improve ellama session display
branch: externals/ellama commit b992c830e212cce32e49491effc9645f570712c3 Author: Sergey Kostyaev Commit: Sergey Kostyaev Improve ellama session display Added checks to ensure `header-line-format` and `mode-line-format` are lists before adding the session line. This prevents potential errors when they are not list types. --- ellama.el | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ellama.el b/ellama.el index aebb55a00c..b1c3582e07 100644 --- a/ellama.el +++ b/ellama.el @@ -718,12 +718,13 @@ This filter contains only subset of markdown syntax to be good enough." (defun ellama-session-line () "Return current session id line." - (propertize (format "ellama session: %s" ellama--current-session-id) + (propertize (format " ellama session: %s" ellama--current-session-id) 'face 'ellama-face)) (defun ellama-session-show-header-line () "Display session id in the header line." - (add-to-list 'header-line-format '(:eval (ellama-session-line)) t)) + (when (listp header-line-format) +(add-to-list 'header-line-format '(:eval (ellama-session-line)) t))) (defun ellama-session-hide-header-line () "Hide session id from header line." @@ -750,7 +751,8 @@ This filter contains only subset of markdown syntax to be good enough." (defun ellama-session-show-mode-line () "Display session id in the mode line." - (add-to-list 'mode-line-format '(:eval (ellama-session-line)) t)) + (when (listp mode-line-format) +(add-to-list 'mode-line-format '(:eval (ellama-session-line)) t))) (defun ellama-session-hide-mode-line () "Hide session id from mode line."
[elpa] externals/denote 01e11e1db1 1/2: Reapply a fix that was undone in a previous commit
branch: externals/denote commit 01e11e1db183f6f13f33eb81d53ab9b7a36ef313 Author: Jean-Philippe Gagné Guay Commit: Jean-Philippe Gagné Guay Reapply a fix that was undone in a previous commit --- denote.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/denote.el b/denote.el index bfc0757400..73da4f172d 100644 --- a/denote.el +++ b/denote.el @@ -3494,7 +3494,7 @@ The TITLE, KEYWORDS, DATE, ID, SIGNATURE, and FILE-TYPE are passed from the renaming command and are used to construct a new front matter block if appropriate." (when-let* ((new-front-matter (denote--format-front-matter title date keywords id signature file-type))) -(denote--file-with-temp-buffer file +(with-current-buffer (find-file-noselect file) (goto-char (point-min)) (insert new-front-matter
[elpa] externals/ellama 78582e680d 2/8: Add Ellama Session Header Line and Mode Line Modes documentation
branch: externals/ellama commit 78582e680df2bf61685f6b371536e65f2c7797e8 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add Ellama Session Header Line and Mode Line Modes documentation --- README.org | 50 ++ 1 file changed, 50 insertions(+) diff --git a/README.org b/README.org index 31dfb247d0..9c9fe8a4fe 100644 --- a/README.org +++ b/README.org @@ -551,6 +551,56 @@ This globalized minor mode provides a convenient way to ensure that context-specific mode line information is always available, regardless of the buffer being edited. +*** Ellama Session Header Line Mode + +The ~ellama-session-header-line-mode~ is a minor mode that allows you to display +the current Ellama session ID in the header line of your Emacs buffers. This +feature helps keep track of which session you are working with, especially +useful when managing multiple sessions. + + Enabling and Disabling + +To enable this mode, use the following command: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-header-line-mode +#+END_SRC + +This will toggle the display of the session ID in the header line. You can also +enable or disable it globally across all buffers using: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-header-line-global-mode +#+END_SRC + + Customization + +The session ID is displayed with a customizable face called ~ellama-face~. You +can customize this face to change its appearance. + +*** Ellama Session Mode Line Mode + +The ~ellama-session-mode-line-mode~ is a minor mode that allows you to display +the current Ellama session ID in the mode line of your Emacs buffers. This +feature provides an additional way to keep track of which session you are +working with, especially useful when managing multiple sessions. + + Enabling and Disabling + +To enable this mode, use the following command: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-mode-line-mode +#+END_SRC + +This will toggle the display of the session ID in the mode line. You can also +enable or disable it globally across all buffers using: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-mode-line-global-mode +#+END_SRC + + Customization + +The session ID is displayed with a customizable face called ~ellama-face~. You +can customize this face to change its appearance. + ** Using Blueprints Blueprints in Ellama refer to predefined templates or structures that facilitate
[elpa] externals/ellama 7aed3de0bb 5/8: Add session line template customization
branch: externals/ellama commit 7aed3de0bb22dc0e3fdddbb135bfb7d8249486b5 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add session line template customization Added `ellama-session-line-template` custom variable to allow users to customize the format of the current session line. Updated `ellama-session-line` function to use this template. --- README.org | 1 + ellama.el | 7 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.org b/README.org index 9c9fe8a4fe..8286e10d99 100644 --- a/README.org +++ b/README.org @@ -482,6 +482,7 @@ argument generated text string. within your ~user-emacs-directory~. - ~ellama-show-reasoning~: Show reasoning in separate buffer if enabled. Enabled by default. - ~ellama-reasoning-display-action-function~: Display action function for reasoning. +- ~ellama-session-line-template~: Template for formatting the current session line. ** Minor modes diff --git a/ellama.el b/ellama.el index ae2e597bcf..eb442de36c 100644 --- a/ellama.el +++ b/ellama.el @@ -716,9 +716,14 @@ This filter contains only subset of markdown syntax to be good enough." (defvar ellama--current-session-id nil) +(defcustom ellama-session-line-template " ellama session: %s" + "Template for formatting the current session line." + :type 'string + :group 'ellama) + (defun ellama-session-line () "Return current session id line." - (propertize (format " ellama session: %s" + (propertize (format ellama-session-line-template (if ellama--current-session (ellama-session-id ellama--current-session) ellama--current-session-id))
[elpa] externals/ellama beeb47214f 7/8: Add session ID display in header line to readme
branch: externals/ellama commit beeb47214fd5e3f3bf0d3cf63e67dda66892344e Author: Sergey Kostyaev Commit: Sergey Kostyaev Add session ID display in header line to readme Added functionality to show ellama session ID in the header line across all buffers. Updated both simple and sophisticated configuration examples accordingly. --- README.org | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.org b/README.org index 8286e10d99..ba82ee2bec 100644 --- a/README.org +++ b/README.org @@ -40,7 +40,9 @@ You can customize ellama configuration like this: :init (setopt ellama-auto-scroll t) :config ;; show ellama context in header line in all buffers -(ellama-context-header-line-global-mode +1)) +(ellama-context-header-line-global-mode +1) +;; show ellama session id in header line in all buffers +(ellama-session-header-line-global-mode +1)) #+END_SRC More sofisticated configuration example: @@ -114,6 +116,8 @@ More sofisticated configuration example: :config ;; show ellama context in header line in all buffers (ellama-context-header-line-global-mode +1) +;; show ellama session id in header line in all buffers +(ellama-session-header-line-global-mode +1) ;; handle scrolling events (advice-add 'pixel-scroll-precision :before #'ellama-disable-scroll) (advice-add 'end-of-buffer :after #'ellama-enable-scroll))
[elpa] externals/ellama 6907f69d3d 6/8: Bump version
branch: externals/ellama commit 6907f69d3de6c878991bb668946af881e6494dba Author: Sergey Kostyaev Commit: Sergey Kostyaev Bump version --- NEWS.org | 4 ellama.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NEWS.org b/NEWS.org index 230f57b470..c6ba6cd5ce 100644 --- a/NEWS.org +++ b/NEWS.org @@ -1,3 +1,7 @@ +* Version 1.6.1 +- Added functionality to display the current Ellama session ID in both the + header line and the mode line. +- Added globalized minor modes for enabling this feature across all buffers. * Version 1.6.0 - Refactored the text insertion and handling logic in ~ellama.el~. - Added new customization variables ~ellama-show-reasoning~ and diff --git a/ellama.el b/ellama.el index eb442de36c..8d98ea8132 100644 --- a/ellama.el +++ b/ellama.el @@ -6,7 +6,7 @@ ;; URL: http://github.com/s-kostyaev/ellama ;; Keywords: help local tools ;; Package-Requires: ((emacs "28.1") (llm "0.24.0") (plz "0.8") (transient "0.7") (compat "29.1")) -;; Version: 1.6.0 +;; Version: 1.6.1 ;; SPDX-License-Identifier: GPL-3.0-or-later ;; Created: 8th Oct 2023
[nongnu] elpa/aidermacs 3adac7a78f 2/3: Fix README typo
branch: elpa/aidermacs commit 3adac7a78fb62eabf56c0abdc584768c5886121a Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Fix README typo Signed-off-by: Mingde (Matthew) Zeng --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index f4f2a34226..1340b5de65 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,9 @@ [](https://stable.melpa.org/#/aidermacs) [](https://elpa.nongnu.org/nongnu/aidermacs.html) [](https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html) -[](https://github.com/MatthewZMD/aidermacs/blob/master/LICENSE) +[](https://github.com/MatthewZMD/aidermacs/blob/main/LICENSE) [](https://github.com/MatthewZMD/aidermacs/graphs/contributors) -## Overview - Aidermacs brings AI-powered development to Emacs by integrating [Aider](https://github.com/paul-gauthier/aider), one of the most powerful open-source AI pair programming tools. If you're missing [Cursor](https://cursor.sh) but prefer living in Emacs, Aidermacs provides similar AI capabilities while staying true to Emacs workflows.
[nongnu] elpa/aidermacs d90d800c85 1/2: Remove autoload to fix #82
branch: elpa/aidermacs commit d90d800c852378b5421004d8e5f64d461ceddfca Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Remove autoload to fix #82 Signed-off-by: Mingde (Matthew) Zeng --- aidermacs.el | 1 - 1 file changed, 1 deletion(-) diff --git a/aidermacs.el b/aidermacs.el index 0f4c5943fe..23d95bdcd8 100644 --- a/aidermacs.el +++ b/aidermacs.el @@ -129,7 +129,6 @@ This function tries multiple methods to determine the project root." This is the file name without path." :type 'string) -;;;###autoload (transient-define-prefix aidermacs-transient-menu () "AI Pair Programming Interface." ["Aidermacs: AI Pair Programming"
[nongnu] elpa/aidermacs 462c2dc661 5/6: Use shell-quote-argument
branch: elpa/aidermacs commit 462c2dc6613bcf4fe4ce039a3eae7b01387000fe Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Use shell-quote-argument Addresses #88 Signed-off-by: Mingde (Matthew) Zeng --- aidermacs.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aidermacs.el b/aidermacs.el index 2db15829e6..ec264bf428 100644 --- a/aidermacs.el +++ b/aidermacs.el @@ -680,7 +680,7 @@ Otherwise, return FILE unchanged." "Prepare FILES for use with COMMAND in aider. Handles TRAMP paths by extracting local parts and formats the command string." (let* ((localized-files (mapcar #'aidermacs--localize-tramp-path (delq nil files))) - (quoted-files (mapcar (lambda (path) (format "\"%s\"" path)) localized-files))) + (quoted-files (mapcar #'shell-quote-argument localized-files))) (if quoted-files (format "%s %s" command (mapconcat #'identity quoted-files " "))
[nongnu] elpa/magit 3c0c4df461 5/5: magit-apply-patch: Do not refresh twice
branch: elpa/magit commit 3c0c4df461a22fa9dd2eee3831ae8e56e9f7a914 Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-apply-patch: Do not refresh twice Closes #5343. --- lisp/magit-apply.el | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lisp/magit-apply.el b/lisp/magit-apply.el index b0edf9784e..a49f8fedd5 100644 --- a/lisp/magit-apply.el +++ b/lisp/magit-apply.el @@ -229,10 +229,11 @@ adjusted as \"@@ -10,6 +10,7 @@\" and \"@@ -18,6 +19,7 @@\"." (magit-wip-commit-before-change files (concat " before " command))) (with-temp-buffer (insert patch) - (magit-run-git-with-input - "apply" args "-p0" - (and ignore-context "-C0") - "--ignore-space-change" "-")) + (let ((magit-inhibit-refresh t)) +(magit-run-git-with-input + "apply" args "-p0" + (and ignore-context "-C0") + "--ignore-space-change" "-"))) (unless magit-inhibit-refresh (when magit-wip-after-apply-mode (magit-wip-commit-after-apply files (concat " after " command)))
[nongnu] elpa/aidermacs 6cfc8bfa46 2/2: Fix model inheritance to dynamically use default model values
branch: elpa/aidermacs commit 6cfc8bfa46ad4074213effa45a0fe8e8e12a526e Author: u-yuta Commit: Matthew Zeng Fix model inheritance to dynamically use default model values - Change architect/editor/weak model defaults from direct reference to nil - Add getter functions to dynamically fall back to aidermacs-default-model - Update aidermacs-run to use these getter functions - Update README to reflect the new model inheritance behavior This ensures that when users set aidermacs-default-model, the change is automatically reflected in architect/editor models unless they're explicitly configured with their own values. --- README.md | 13 - aidermacs-models.el | 48 ++-- aidermacs.el| 4 ++-- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 92024ba628..26cf06baf9 100644 --- a/README.md +++ b/README.md @@ -227,10 +227,13 @@ You can switch to it persistently by `M-x aidermacs-switch-to-architect-mode` (` You can configure each model independently: ```emacs-lisp -;; Architect model for reasoning (initially defaults to aidermacs-default-model) -(setq aidermacs-architect-model "sonnet") +;; Default model used for all modes unless overridden +(setq aidermacs-default-model "sonnet") + +;; Optional: Set specific model for architect reasoning +(setq aidermacs-architect-model "deepseek/deepseek-reasoner") -;; Editor model for code generation (initially defaults to aidermacs-default-model) +;; Optional: Set specific model for code generation (setq aidermacs-editor-model "deepseek/deepseek-chat") ``` @@ -239,9 +242,9 @@ The model hierarchy works as follows: - The Architect model handles high-level reasoning and solution design - The Editor model executes the actual code changes - When Architect mode is disabled, only `aidermacs-default-model` is used -- You can configure both models independently or let them default to `aidermacs-default-model` +- You can configure specific models or let them automatically use the default model -*Note: The architect and editor models only inherit from `aidermacs-default-model` when first initialized. Changing `aidermacs-default-model` later will not update the other models. For consistent behavior, set each model explicitly.* +Models will reflect changes to `aidermacs-default-model` unless they've been explicitly set to a different value. *Note: These configurations will be overwritten by the existence of an `.aider.conf.yml` file (see [details](#Overwrite-Configuration-with-Configuration-File)).* diff --git a/aidermacs-models.el b/aidermacs-models.el index f588c273d3..2aa79f0c2a 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -46,25 +46,39 @@ "Default AI model to use for aidermacs sessions when not in Architect mode." :type 'string) -(defcustom aidermacs-architect-model aidermacs-default-model +(defcustom aidermacs-architect-model nil "Default reasoning AI model to use for architect mode. -Defaults to `aidermacs-default-model' if not explicitly set." - :type 'string) +If nil, uses the value of `aidermacs-default-model'." + :type '(choice (const :tag "Use default model" nil) + (string :tag "Specific model"))) -(defcustom aidermacs-editor-model aidermacs-default-model +(defcustom aidermacs-editor-model nil "Default editing AI model to use for architect mode. -Defaults to `aidermacs-default-model' if not explicitly set." - :type 'string) +If nil, uses the value of `aidermacs-default-model'." + :type '(choice (const :tag "Use default model" nil) + (string :tag "Specific model"))) (defcustom aidermacs-weak-model nil "Default weak AI model to use. -This is the model to use for commit messages and chat history summarization. -When nil, Aider sets it automatically based on the default model." - :type 'string) +If nil, uses a model automatically selected based on the default model." + :type '(choice (const :tag "Use default model" nil) + (string :tag "Specific model"))) (defvar aidermacs--cached-models nil "Cache of available AI models.") +(defun aidermacs-get-architect-model () + "Get the effective architect model, falling back to default if not set." + (or aidermacs-architect-model aidermacs-default-model)) + +(defun aidermacs-get-editor-model () + "Get the effective editor model, falling back to default if not set." + (or aidermacs-editor-model aidermacs-default-model)) + +(defun aidermacs-get-weak-model () + "Get the effective weak model, falling back to default if not set." + (or aidermacs-weak-model aidermacs-default-model)) + (defconst aidermacs--api-providers '(("https://openrouter.ai/api/v1"; . ((hostname . "openrouter.ai") (prefix . "openrouter") @@ -158,8 +172,7 @@ API provider." models)) (defun aidermacs--select-model
[nongnu] elpa/aidermacs 359b8eb6c1 1/2: Doc : fix uv aider proxy error
branch: elpa/aidermacs commit 359b8eb6c169d9b86df817e92662102de0b1edb8 Author: ymfsing <13830366+ymfs...@users.noreply.github.com> Commit: Matthew Zeng Doc : fix uv aider proxy error --- README.md | 6 ++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index e815c5850e..92024ba628 100644 --- a/README.md +++ b/README.md @@ -450,6 +450,12 @@ Aider only support Python 3.12 currently, you can use [uv](https://github.com/as uv tool install --force --python python3.12 aider-chat@latest ``` +If you encounter a proxy-related [issue](https://github.com/Aider-AI/aider/issues/2984) , such as the error indicating that the 'socksio' package is not installed, please use: + +```bash +uv tool install --force --python python3.12 aider-chat@latest --with 'httpx[socks]' +``` + And adjust aidermacs program with below config. ```elisp
[elpa] externals/ivy 790042e81e 1/2: Fix kill-ring-save for swiper-isearch
branch: externals/ivy commit 790042e81e338f7b4848e5af5cda47ee31bae022 Author: Basil L. Contovounesios Commit: Basil L. Contovounesios Fix kill-ring-save for swiper-isearch The default M-w binding of ivy-kill-ring-save expects ivy--old-cands to be a list of strings, but swiper-isearch has long switched to a list of buffer positions instead. * ivy.el (ivy-kill-ring-save): Prefer use-region-p over region-active-p. Use string-join. Tweak docstring. * swiper.el: Set swiper and swiper-isearch actions closer to their corresponding commands. (swiper--isearch-kill-ring-save): New command modeled after ivy-kill-ring-save. (swiper-isearch-map): Remap ivy-kill-ring-save and kill-ring-save to it. By default, the former remap is defensive, and only the latter is needed. Fixes #3000. --- ivy.el| 12 swiper.el | 25 + 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/ivy.el b/ivy.el index 26a31d2927..5a221bc395 100644 --- a/ivy.el +++ b/ivy.el @@ -4912,16 +4912,12 @@ The \"pulse\" duration is determined by `ivy-pulse-delay'." (setq ivy--pulse-overlay nil))) (defun ivy-kill-ring-save () - "Store the current candidates into the kill ring. + "Save the current candidates in the kill ring. If the region is active, forward to `kill-ring-save' instead." (interactive) - (if (region-active-p) - (call-interactively 'kill-ring-save) -(kill-new - (mapconcat - #'identity - ivy--old-cands - "\n" + (if (use-region-p) + (call-interactively #'kill-ring-save) +(kill-new (string-join ivy--old-cands "\n" (defun ivy-insert-current () "Make the current candidate into current input. diff --git a/swiper.el b/swiper.el index bbe05a992d..359e463932 100644 --- a/swiper.el +++ b/swiper.el @@ -858,6 +858,9 @@ When non-nil, INITIAL-INPUT is the initial search pattern." :unwind-fn #'swiper--cleanup :index-fn #'ivy-recompute-index-swiper) +(ivy-add-actions 'swiper + `(("w" ,#'swiper-action-copy "copy"))) + (defun swiper-toggle-face-matching () "Toggle matching only the candidates with `swiper-invocation-face'." (interactive) @@ -1567,10 +1570,6 @@ completion." ;; In case of unexpected error. (goto-char swiper--opoint))) -(ivy-add-actions 'swiper-isearch '(("w" swiper-isearch-action-copy "copy"))) -(ivy-add-actions 'swiper-isearch '(("i" swiper-isearch-action-insert "insert"))) -(ivy-add-actions 'swiper '(("w" swiper-action-copy "copy"))) - (defun swiper--isearch-insert-current () "Replace minibuffer contents with the current candidate. Like `ivy-insert-current', but tailored for `swiper-isearch'." @@ -1579,6 +1578,16 @@ Like `ivy-insert-current', but tailored for `swiper-isearch'." (let ((cur (ivy-state-current ivy-last))) (insert (with-ivy-window (swiper--isearch-candidate-string cur) +(defun swiper--isearch-kill-ring-save () + "Save the current candidates in the kill ring. +If the region is active, forward to `kill-ring-save' instead. +Like `ivy-kill-ring-save', but tailored for `swiper-isearch'." + (interactive) + (if (use-region-p) + (call-interactively #'kill-ring-save) +(kill-new (with-ivy-window +(mapconcat #'swiper--line-at-point ivy--old-cands "\n") + (defun swiper-isearch-thing-at-point () "Insert `symbol-at-point' into the minibuffer of `swiper-isearch'. When not running `swiper-isearch' already, start it." @@ -1621,6 +1630,10 @@ When the input is empty, browse the search history instead." (set-keymap-parent map swiper-map) (define-key map `[remap ,#'ivy-insert-current] #'swiper--isearch-insert-current) +(define-key map `[remap ,#'ivy-kill-ring-save] +#'swiper--isearch-kill-ring-save) +(define-key map `[remap ,#'kill-ring-save] +#'swiper--isearch-kill-ring-save) (define-key map (kbd "M-n") #'swiper-isearch-thing-at-point) (define-key map (kbd "C-r") #'swiper-isearch-C-r) map) @@ -1769,6 +1782,10 @@ When the input is empty, browse the search history instead." :unwind-fn #'swiper--isearch-unwind :format-fn #'swiper-isearch-format-function) +(ivy-add-actions 'swiper-isearch + `(("w" ,#'swiper-isearch-action-copy "copy") + ("i" ,#'swiper-isearch-action-insert "insert"))) + ;;;###autoload (defun swiper-isearch-backward (&optional initial-input) "Like `swiper-isearch' but the first result is before the point."
[elpa] externals/ivy 679a39885c 2/2: Merge branch 'master' into externals/ivy
branch: externals/ivy commit 679a39885cdd63fb0bf99c78b0a2dfd611e03eca Merge: cabbd91f16 790042e81e Author: Basil L. Contovounesios Commit: Basil L. Contovounesios Merge branch 'master' into externals/ivy --- ivy.el | 12 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/ivy.el b/ivy.el index 26a31d2927..5a221bc395 100644 --- a/ivy.el +++ b/ivy.el @@ -4912,16 +4912,12 @@ The \"pulse\" duration is determined by `ivy-pulse-delay'." (setq ivy--pulse-overlay nil))) (defun ivy-kill-ring-save () - "Store the current candidates into the kill ring. + "Save the current candidates in the kill ring. If the region is active, forward to `kill-ring-save' instead." (interactive) - (if (region-active-p) - (call-interactively 'kill-ring-save) -(kill-new - (mapconcat - #'identity - ivy--old-cands - "\n" + (if (use-region-p) + (call-interactively #'kill-ring-save) +(kill-new (string-join ivy--old-cands "\n" (defun ivy-insert-current () "Make the current candidate into current input.
[elpa] externals/swiper updated (c2ae13bc62 -> 01706ee5e4)
blc pushed a change to branch externals/swiper. from c2ae13bc62 Delete file not needed in elpa.git adds 62a17ade8e ; * Makefile (check-declare): Simplify. adds 7006affb6b Link to HTML manual on GNU ELPA adds 790042e81e Fix kill-ring-save for swiper-isearch new 01706ee5e4 Merge branch 'master' into externals/swiper Summary of changes: swiper.el | 25 + 1 file changed, 21 insertions(+), 4 deletions(-)
[nongnu] elpa/aidermacs updated (3cda7ffd4f -> 6cfc8bfa46)
elpasync pushed a change to branch elpa/aidermacs. from 3cda7ffd4f Use uv install aider. new 359b8eb6c1 Doc : fix uv aider proxy error new 6cfc8bfa46 Fix model inheritance to dynamically use default model values Summary of changes: README.md | 19 ++- aidermacs-models.el | 48 ++-- aidermacs.el| 4 ++-- 3 files changed, 50 insertions(+), 21 deletions(-)
[nongnu] elpa/aidermacs updated (e4bd4519b0 -> 0c88c2f12d)
elpasync pushed a change to branch elpa/aidermacs. from e4bd4519b0 Add 1.1 Release Notes new f95bab6464 Ensure a session is running and initialized for aidermacs-change-model new 51a4e83987 Ensure aidermacs--send-command runs with a running aider session new ba490d8a19 Fix aidermacs-get-buffer-name mismatching dirnames new db98427feb Remove redundancy from CHANGELOG new 462c2dc661 Use shell-quote-argument new 0c88c2f12d Add MELPA Stable badge Summary of changes: CHANGELOG.md| 25 README.md | 2 +- aidermacs-models.el | 56 - aidermacs.el| 17 +++- 4 files changed, 38 insertions(+), 62 deletions(-)
[nongnu] elpa/aidermacs f95bab6464 1/6: Ensure a session is running and initialized for aidermacs-change-model
branch: elpa/aidermacs commit f95bab646415602e4168bb932b9203ef3794f07e Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Ensure a session is running and initialized for aidermacs-change-model Signed-off-by: Mingde (Matthew) Zeng --- aidermacs-models.el | 65 - 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/aidermacs-models.el b/aidermacs-models.el index 47e5dacd3f..f60a1274da 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -160,39 +160,34 @@ API provider." (defun aidermacs--select-model (&optional set-weak-model) "Provide model selection with completion, handling main/weak/editor models. When SET-WEAK-MODEL is non-nil, only allow setting the weak model." - (let ((buf (get-buffer (aidermacs-get-buffer-name t -(unless buf - (user-error "No active aidermacs session")) -(with-current-buffer buf - (condition-case nil - (let* ((aider-version (aidermacs-aider-version)) - (supports-specific-model (version<= "0.78.0" aider-version)) - (is-architect-mode (and (eq aidermacs--current-mode 'architect) supports-specific-model)) - (set-weak-model (and set-weak-model supports-specific-model)) - (model-type - (cond - (set-weak-model "Weak Model") - (is-architect-mode -(completing-read - "Select model type: " - '("Main/Reasoning Model" "Editing Model") - nil t)) - (t "Main Model"))) - (model (completing-read (format "Select %s: " model-type) aidermacs--cached-models nil t))) -(when model + (condition-case nil + (let* ((aider-version (aidermacs-aider-version)) + (supports-specific-model (version<= "0.78.0" aider-version)) + (is-architect-mode (and (eq aidermacs--current-mode 'architect) supports-specific-model)) + (set-weak-model (and set-weak-model supports-specific-model)) + (model-type (cond - (set-weak-model -(aidermacs--send-command (format "/weak-model %s" model))) - ((and is-architect-mode supports-specific-model) -(pcase model-type - ("Main/Reasoning Model" (aidermacs--send-command (format "/model %s" model))) - ("Editing Model" (aidermacs--send-command (format "/editor-model %s" model) - (t (aidermacs--send-command (format "/model %s" model)) -(quit (message "Model selection cancelled")) + (set-weak-model "Weak Model") + (is-architect-mode +(completing-read + "Select model type: " + '("Main/Reasoning Model" "Editing Model") + nil t)) + (t "Main Model"))) + (model (completing-read (format "Select %s: " model-type) aidermacs--cached-models nil t))) +(when model + (cond + (set-weak-model +(aidermacs--send-command (format "/weak-model %s" model))) + ((and is-architect-mode supports-specific-model) +(pcase model-type + ("Main/Reasoning Model" (aidermacs--send-command (format "/model %s" model))) + ("Editing Model" (aidermacs--send-command (format "/editor-model %s" model) + (t (aidermacs--send-command (format "/model %s" model)) +(quit (message "Model selection cancelled" (defun aidermacs--get-available-models () - "Get list of models supported by aider using the /models command. -This fetches models from various API providers and caches them." + "Get list of models supported by aider using the /models command." (aidermacs--send-command "/models /" nil nil t (lambda () @@ -232,8 +227,16 @@ This is useful when available models have changed." ;;;###autoload (defun aidermacs-change-model (&optional arg) "Interactively select and change AI model in current aidermacs session. -With prefix ARG, only allow setting the weak model." + With prefix ARG, only allow setting the weak model." (interactive "P") + ;; Ensure a session is running and initialized + (let ((buffer-name (aidermacs-get-buffer-name))) +(unless (and (get-buffer buffer-name) + (process-live-p (get-buffer-process buffer-name))) + (aidermacs-run) + ;; Wait briefly for the prompt to appear + (sit-for 1))) + (unless aidermacs--cached-models (aidermacs--get-available-models)) (aidermacs--select-model arg))
[nongnu] elpa/aidermacs db98427feb 4/6: Remove redundancy from CHANGELOG
branch: elpa/aidermacs commit db98427febbc3d9488d6a39285caae5bf7ac57a7 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Remove redundancy from CHANGELOG Signed-off-by: Mingde (Matthew) Zeng --- CHANGELOG.md | 25 - 1 file changed, 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abcd40e85e..0e2020410d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,12 +44,6 @@ 3. Check for any customizations that may need updating 4. Clear any cached model lists if experiencing issues -## New Contributors -* @SpringHan made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/81 -* @u-yuta made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/86 -* @smallzhan made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/84 -* @claritystorm made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/88 - # Aidermacs 1.0 @@ -70,22 +64,3 @@ Aidermacs 1.0 delivers a range of features designed to enhance your productivity * **Architect Mode Confirmation:** Control whether to automatically accept Architect mode changes with the `aidermacs-auto-accept-architect` variable. * **Re-Enable Auto-Commits:** Aider automatically commits AI-generated changes by default. We consider this behavior *very* intrusive, so we've disabled it. You can re-enable auto-commits by setting `aidermacs-auto-commits` to `t`. * **Customizing Aider Options with `aidermacs-extra-args`:** Pass any Aider-supported command-line options. - - -## New Contributors -* @notImposterSyndromeIfImposter made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/5 -* @CeleritasCelery made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/6 -* @zsxh made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/10 -* @milanglacier made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/13 -* @ArthurHeymans made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/11 -* @bard made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/27 -* @mwolson made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/26 -* @jfeser made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/29 -* @ianschenck made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/34 -* @LemonBreezes made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/36 -* @hexmode made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/47 -* @xplutoy made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/49 -* @rschmukler made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/56 -* @philip-zhan made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/64 -* @amake made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/63 -* @rjekker made their first contribution in https://github.com/MatthewZMD/aidermacs/pull/70
[nongnu] elpa/aidermacs 51a4e83987 2/6: Ensure aidermacs--send-command runs with a running aider session
branch: elpa/aidermacs commit 51a4e839876823330518036b482e2a282964ede0 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Ensure aidermacs--send-command runs with a running aider session Signed-off-by: Mingde (Matthew) Zeng --- aidermacs-models.el | 9 - aidermacs.el| 11 --- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/aidermacs-models.el b/aidermacs-models.el index f60a1274da..ec24e2c730 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -224,19 +224,10 @@ This is useful when available models have changed." (setq aidermacs--cached-models nil) (message "Model cache cleared")) -;;;###autoload (defun aidermacs-change-model (&optional arg) "Interactively select and change AI model in current aidermacs session. With prefix ARG, only allow setting the weak model." (interactive "P") - ;; Ensure a session is running and initialized - (let ((buffer-name (aidermacs-get-buffer-name))) -(unless (and (get-buffer buffer-name) - (process-live-p (get-buffer-process buffer-name))) - (aidermacs-run) - ;; Wait briefly for the prompt to appear - (sit-for 1))) - (unless aidermacs--cached-models (aidermacs--get-available-models)) (aidermacs--select-model arg)) diff --git a/aidermacs.el b/aidermacs.el index e684c04877..b4f02faebd 100644 --- a/aidermacs.el +++ b/aidermacs.el @@ -348,9 +348,14 @@ If USE-EXISTING is non-nil, use an existing buffer instead of creating new. If REDIRECT is non-nil it redirects the output (hidden) for comint backend. If CALLBACK is non-nil it will be called after the command finishes." (let* ((buffer-name (aidermacs-get-buffer-name use-existing)) - (buffer (or (get-buffer buffer-name) - (progn (aidermacs-run) -(get-buffer buffer-name + (buffer (if (and (get-buffer buffer-name) + (process-live-p (get-buffer-process buffer-name))) + (get-buffer buffer-name) + (when (get-buffer buffer-name) + (kill-buffer buffer-name)) + (aidermacs-run) + (sit-for 1) + (get-buffer buffer-name))) (processed-command (aidermacs--process-message-if-multi-line command))) ;; Check if command may edit files and prepare accordingly (with-current-buffer buffer
[nongnu] elpa/aidermacs 0c88c2f12d 6/6: Add MELPA Stable badge
branch: elpa/aidermacs commit 0c88c2f12d1278b3753235d019bfbbb28413fa03 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Add MELPA Stable badge Signed-off-by: Mingde (Matthew) Zeng --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b2de855d7..758bc96ac6 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ # Aidermacs: AI Pair Programming in Emacs [](https://melpa.org/#/aidermacs) +[](https://stable.melpa.org/#/aidermacs) [](https://elpa.nongnu.org/nongnu/aidermacs.html) [](https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html) [](https://github.com/MatthewZMD/aidermacs/blob/master/LICENSE) [](https://github.com/MatthewZMD/aidermacs/graphs/contributors) -[](https://github.com/MatthewZMD/aidermacs/issues) Missing [Cursor](https://cursor.sh) but prefer living in Emacs? Aidermacs brings Cursor-like AI-powered development to your Emacs workflow by integrating [Aider](https://github.com/paul-gauthier/aider), one of the most powerful open-source AI pair programming tools. As a community-driven project, Aidermacs prioritizes Emacs users' needs and preferences while providing the same powerful features found in Cursor!
[elpa] externals/denote e9bb949ce2 2/2: Merge pull request #560 from jeanphilippegg/revert-commits
branch: externals/denote commit e9bb949ce291a210774778ec6264bd38cb9cb23c Merge: 9743ece3b6 01e11e1db1 Author: Protesilaos Stavrou Commit: GitHub Merge pull request #560 from jeanphilippegg/revert-commits Reapply a fix that was undone in previous PR --- denote.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/denote.el b/denote.el index bfc0757400..73da4f172d 100644 --- a/denote.el +++ b/denote.el @@ -3494,7 +3494,7 @@ The TITLE, KEYWORDS, DATE, ID, SIGNATURE, and FILE-TYPE are passed from the renaming command and are used to construct a new front matter block if appropriate." (when-let* ((new-front-matter (denote--format-front-matter title date keywords id signature file-type))) -(denote--file-with-temp-buffer file +(with-current-buffer (find-file-noselect file) (goto-char (point-min)) (insert new-front-matter
[nongnu] elpa/eglot-inactive-regions b0c8225525: use en/disable-theme-functions hooks instead of advising load-theme
branch: elpa/eglot-inactive-regions commit b0c8225525f62b96d8fda9e76bac231830b149f0 Author: Filippo Argiolas Commit: Filippo Argiolas use en/disable-theme-functions hooks instead of advising load-theme --- eglot-inactive-regions.el | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/eglot-inactive-regions.el b/eglot-inactive-regions.el index 9b13021665..b874e27b05 100644 --- a/eglot-inactive-regions.el +++ b/eglot-inactive-regions.el @@ -288,17 +288,15 @@ Useful to update colors after a face or theme change." (with-current-buffer buffer (eglot-inactive-regions-refresh) -(defun eglot-inactive-regions-refresh-after-theme (&rest args) - "Refresh all on theme changes." - (unless (cl-third args) -(eglot-inactive-regions-refresh-all))) - - (defun eglot-inactive-regions--enable () "Helper method to enable inactive regions minor mode." (add-function :after (default-value 'font-lock-fontify-region-function) #'eglot-inactive-regions--fontify) - (advice-add #'load-theme :after #'eglot-inactive-regions-refresh-after-theme) + ;; enable hook will always fire twice after a `load-theme' or + ;; `enable-theme' as the latter always enable user theme too. Should + ;; not be an issue as fontification will only happen once anyway. + (add-hook 'enable-theme-functions #'eglot-inactive-regions-refresh-all) + (add-hook 'disable-theme-functions #'eglot-inactive-regions-refresh-all) (add-hook 'change-major-mode-hook #'eglot-inactive-regions-cleanup)) (defun eglot-inactive-regions--disable () @@ -310,7 +308,8 @@ Useful to update colors after a face or theme change." (eglot-inactive-regions-cleanup) (setq eglot-inactive-regions--ranges '()) (setq eglot-inactive-regions--active nil))) - (advice-remove #'load-theme :after #'eglot-inactive-regions-refresh-after-theme) + (remove-hook 'enable-theme-functions #'eglot-inactive-regions-refresh-all) + (remove-hook 'disable-theme-functions #'eglot-inactive-regions-refresh-all) (remove-hook 'change-major-mode-hook #'eglot-inactive-regions-cleanup)) (defun eglot-inactive-regions--uri-to-path (uri)
[nongnu] elpa/aidermacs 3cda7ffd4f 3/3: Use uv install aider.
branch: elpa/aidermacs commit 3cda7ffd4fb7a0292b57574913eb8c6f6fb84ac8 Author: Andy Stewart Commit: Matthew Zeng Use uv install aider. --- README.md | 13 + 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 1340b5de65..e815c5850e 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,19 @@ Yes! Aidermacs supports any OpenAI-compatible API endpoint. Check Aider document ### Is my code sent to the AI provider? Yes, the code you add to the session is sent to the AI provider. Be mindful of sensitive code. +### Why aider not support Python 3.13 +Aider only support Python 3.12 currently, you can use [uv](https://github.com/astral-sh/uv) install aider: + +```bash +uv tool install --force --python python3.12 aider-chat@latest +``` + +And adjust aidermacs program with below config. + +```elisp +(setq aidermacs-program (expand-file-name "~/.local/bin/aider")) +``` + ## Video Demo [https://img.youtube.com/vi/fB3-ie6zs4Y/0.jpg"; width=600>](https://www.youtube.com/watch?v=fB3-ie6zs4Y)
[elpa] externals/ellama 8588296419 8/8: Merge pull request #294 from s-kostyaev/add-ellama-session-line-minor-modes
branch: externals/ellama commit 8588296419b99cde2fec94ce821bcc553608ea18 Merge: 559f1c4590 beeb47214f Author: Sergey Kostyaev Commit: GitHub Merge pull request #294 from s-kostyaev/add-ellama-session-line-minor-modes Add session ID display in header and mode lines --- NEWS.org | 4 README.org | 57 - ellama.el | 71 +- 3 files changed, 130 insertions(+), 2 deletions(-) diff --git a/NEWS.org b/NEWS.org index 230f57b470..c6ba6cd5ce 100644 --- a/NEWS.org +++ b/NEWS.org @@ -1,3 +1,7 @@ +* Version 1.6.1 +- Added functionality to display the current Ellama session ID in both the + header line and the mode line. +- Added globalized minor modes for enabling this feature across all buffers. * Version 1.6.0 - Refactored the text insertion and handling logic in ~ellama.el~. - Added new customization variables ~ellama-show-reasoning~ and diff --git a/README.org b/README.org index 31dfb247d0..ba82ee2bec 100644 --- a/README.org +++ b/README.org @@ -40,7 +40,9 @@ You can customize ellama configuration like this: :init (setopt ellama-auto-scroll t) :config ;; show ellama context in header line in all buffers -(ellama-context-header-line-global-mode +1)) +(ellama-context-header-line-global-mode +1) +;; show ellama session id in header line in all buffers +(ellama-session-header-line-global-mode +1)) #+END_SRC More sofisticated configuration example: @@ -114,6 +116,8 @@ More sofisticated configuration example: :config ;; show ellama context in header line in all buffers (ellama-context-header-line-global-mode +1) +;; show ellama session id in header line in all buffers +(ellama-session-header-line-global-mode +1) ;; handle scrolling events (advice-add 'pixel-scroll-precision :before #'ellama-disable-scroll) (advice-add 'end-of-buffer :after #'ellama-enable-scroll)) @@ -482,6 +486,7 @@ argument generated text string. within your ~user-emacs-directory~. - ~ellama-show-reasoning~: Show reasoning in separate buffer if enabled. Enabled by default. - ~ellama-reasoning-display-action-function~: Display action function for reasoning. +- ~ellama-session-line-template~: Template for formatting the current session line. ** Minor modes @@ -551,6 +556,56 @@ This globalized minor mode provides a convenient way to ensure that context-specific mode line information is always available, regardless of the buffer being edited. +*** Ellama Session Header Line Mode + +The ~ellama-session-header-line-mode~ is a minor mode that allows you to display +the current Ellama session ID in the header line of your Emacs buffers. This +feature helps keep track of which session you are working with, especially +useful when managing multiple sessions. + + Enabling and Disabling + +To enable this mode, use the following command: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-header-line-mode +#+END_SRC + +This will toggle the display of the session ID in the header line. You can also +enable or disable it globally across all buffers using: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-header-line-global-mode +#+END_SRC + + Customization + +The session ID is displayed with a customizable face called ~ellama-face~. You +can customize this face to change its appearance. + +*** Ellama Session Mode Line Mode + +The ~ellama-session-mode-line-mode~ is a minor mode that allows you to display +the current Ellama session ID in the mode line of your Emacs buffers. This +feature provides an additional way to keep track of which session you are +working with, especially useful when managing multiple sessions. + + Enabling and Disabling + +To enable this mode, use the following command: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-mode-line-mode +#+END_SRC + +This will toggle the display of the session ID in the mode line. You can also +enable or disable it globally across all buffers using: +#+BEGIN_SRC emacs-lisp +M-x ellama-session-mode-line-global-mode +#+END_SRC + + Customization + +The session ID is displayed with a customizable face called ~ellama-face~. You +can customize this face to change its appearance. + ** Using Blueprints Blueprints in Ellama refer to predefined templates or structures that facilitate diff --git a/ellama.el b/ellama.el index 4d086f31a4..8d98ea8132 100644 --- a/ellama.el +++ b/ellama.el @@ -6,7 +6,7 @@ ;; URL: http://github.com/s-kostyaev/ellama ;; Keywords: help local tools ;; Package-Requires: ((emacs "28.1") (llm "0.24.0") (plz "0.8") (transient "0.7") (compat "29.1")) -;; Version: 1.6.0 +;; Version: 1.6.1 ;; SPDX-License-Identifier: GPL-3.0-or-later ;; Created: 8th Oct 2023 @@ -716,6 +716,75 @@ This filter contains only subset of markdown syntax to be good enough." (defvar ellama--current-session-id nil) +(defcustom ellama-session-line-template " ellama session: %s" + "Template for
[nongnu] elpa/aidermacs 7e8bd06bc1 1/3: Revamp README
branch: elpa/aidermacs commit 7e8bd06bc128d7e74dccd2600a0bb579e5f02fba Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Revamp README Signed-off-by: Mingde (Matthew) Zeng --- README.md | 312 +- 1 file changed, 123 insertions(+), 189 deletions(-) diff --git a/README.md b/README.md index 758bc96ac6..f4f2a34226 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ # Aidermacs: AI Pair Programming in Emacs + [](https://melpa.org/#/aidermacs) [](https://stable.melpa.org/#/aidermacs) [](https://elpa.nongnu.org/nongnu/aidermacs.html) @@ -10,39 +11,20 @@ [](https://github.com/MatthewZMD/aidermacs/blob/master/LICENSE) [](https://github.com/MatthewZMD/aidermacs/graphs/contributors) -Missing [Cursor](https://cursor.sh) but prefer living in Emacs? Aidermacs brings Cursor-like AI-powered development to your Emacs workflow by integrating [Aider](https://github.com/paul-gauthier/aider), one of the most powerful open-source AI pair programming tools. As a community-driven project, Aidermacs prioritizes Emacs users' needs and preferences while providing the same powerful features found in Cursor! - -- Built-in **Ediff** integration for reviewing AI-generated changes -- Top performance on the SWE Bench, solving real GitHub issues in major open source projects -- Support for multi-file edits in complex codebases -- Real-time file synchronization for true pair programming -- Broad language support including Python, JavaScript, TypeScript, PHP, HTML, CSS, etc. -- Compatibility with leading AI models like Claude, ChatGPT, DeepSeek, etc. +## Overview -## Why Aidermacs? +Aidermacs brings AI-powered development to Emacs by integrating [Aider](https://github.com/paul-gauthier/aider), one of the most powerful open-source AI pair programming tools. If you're missing [Cursor](https://cursor.sh) but prefer living in Emacs, Aidermacs provides similar AI capabilities while staying true to Emacs workflows. -### Video Demo - -[https://img.youtube.com/vi/fB3-ie6zs4Y/0.jpg"; width=600>](https://www.youtube.com/watch?v=fB3-ie6zs4Y) - -### Community-Driven Development - -Aidermacs thrives on community involvement. We believe collaborative development with user and contributor input creates the best software. We encourage you to: - -- Contribute Code: Submit pull requests with bug fixes, new features, or improvements to existing functionality. -- Report Issues: Let us know about any bugs, unexpected behavior, or feature requests through GitHub Issues. -- Share Ideas: Participate in discussions and propose new ideas for making Aidermacs even better. -- Improve Documentation: Help us make the documentation clearer, more comprehensive, and easier to use. +### Key Features -Your contributions are essential for making Aidermacs the best AI pair programming tool in Emacs! +- Intelligent model selection with multiple backends +- Built-in Ediff integration for AI-generated changes +- Enhanced file management from Emacs +- Great customizability and flexible ways to add content -https://github.com/MatthewZMD/aidermacs/graphs/contributors";> - https://contrib.rocks/image?repo=MatthewZMD/aidermacs"/> - - - Community Speaks +### Community Speaks Here's what the community is saying about Aidermacs: @@ -80,6 +62,101 @@ Here's what the community is saying about Aidermacs: 3. Open a project and run `M-x aidermacs-transient-menu` or `C-c a` (where you bind it) 4. Add files and start coding with AI! +## Usage + +### Getting Started + +The main interface to Aidermacs is through its transient menu system (similar to Magit). Access it with: + +``` +M-x aidermacs-transient-menu +``` + +Or bind it to a key in your config: + +```emacs-lisp +(global-set-key (kbd "C-c a") 'aidermacs-transient-menu) +``` + +Once the transient menu is open, you can navigate and execute commands using the displayed keys. Here's a summary of the main menu structure: + +# Core +- `a`: Start/Open Session (auto-detects project root) +- `.`: Start in Current Directory (good for monorepos) +- `l`: Clear Chat History +- `s`: Reset Session +- `x`: Exit Session + +# Persistent Modes +- `1`: Code Mode +- `2`: Chat/Ask Mode +- `3`: Architect Mode +- `4`: Help Mode + +# Utilities +- `^`: Show Last Commit (if auto-commits enabled) +- `u`: Undo Last Commit (if auto-commits enabled) +- `R`: Refresh Repo Map +- `h`: Session History +- `o`: Change Main Model +- `?`: Aider Meta-level Help + +# File Actions +- `f`: Add File (C-u: read-only) +- `F`: Add Current File +- `d`: Add From Directo
[nongnu] elpa/aidermacs updated (0c88c2f12d -> 3cda7ffd4f)
elpasync pushed a change to branch elpa/aidermacs. from 0c88c2f12d Add MELPA Stable badge new 7e8bd06bc1 Revamp README new 3adac7a78f Fix README typo new 3cda7ffd4f Use uv install aider. Summary of changes: README.md | 319 ++ 1 file changed, 132 insertions(+), 187 deletions(-)
[nongnu] elpa/magit d092661c61 4/5: magit-log.el: Declare magit--any-wip-mode-enabled-p
branch: elpa/magit commit d092661c6142ecd32e98caf4349881b30bfe6836 Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-log.el: Declare magit--any-wip-mode-enabled-p --- lisp/magit-log.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lisp/magit-log.el b/lisp/magit-log.el index 41e4cd4bfd..3035684f2a 100644 --- a/lisp/magit-log.el +++ b/lisp/magit-log.el @@ -31,6 +31,7 @@ (require 'magit-core) (require 'magit-diff) +(declare-function magit--any-wip-mode-enabled-p "magit-wip" ()) (declare-function magit-blob-visit "magit-files" (blob-or-file)) (declare-function magit-cherry-apply "magit-sequence" (commit &optional args)) (declare-function magit-insert-head-branch-header "magit-status" @@ -509,9 +510,7 @@ commits before and half after." ("r" "current" magit-reflog-current) ("O" "other" magit-reflog-other) ("H" "HEAD" magit-reflog-head)] - [:if (lambda () - (and (fboundp 'magit--any-wip-mode-enabled-p) - (magit--any-wip-mode-enabled-p))) + [:if magit--any-wip-mode-enabled-p :description "Wiplog" ("i" "index" magit-wip-log-index) ("w" "worktree" magit-wip-log-worktree)]
[nongnu] elpa/magit c8b1e12bd5 2/5: magit-log-current: Fall back to HEAD
branch: elpa/magit commit c8b1e12bd5ac00ea5e7f8640864dcd762105bafc Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-log-current: Fall back to HEAD Do now display the now redundant `magit-log-head' by default. Rearrange the "Log" and "Reflog" columns so that the related suffixes are still being displayed on the same row. --- lisp/magit-log.el | 25 - 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lisp/magit-log.el b/lisp/magit-log.el index 8ad1b56b15..aa72317ba3 100644 --- a/lisp/magit-log.el +++ b/lisp/magit-log.el @@ -494,10 +494,10 @@ commits before and half after." :class 'magit-log-prefix [magit-log-infix-arguments] [["Log" -("l" "current" magit-log-current) -("h" "HEAD"magit-log-head) -("u" "related" magit-log-related) -("o" "other" magit-log-other)] +("l" magit-log-current) +("o" "other" magit-log-other) +("h" "HEAD"magit-log-head :level 0) +("u" "related" magit-log-related)] ["" ("L" "local branches" magit-log-branches) ("b" "all branches"magit-log-all-branches) @@ -507,8 +507,8 @@ commits before and half after." (7 "m" "merged"magit-log-merged)] ["Reflog" ("r" "current" magit-reflog-current) -("H" "HEAD"magit-reflog-head) -("O" "other" magit-reflog-other)] +("O" "other" magit-reflog-other) +("H" "HEAD"magit-reflog-head)] [:if (lambda () (and (fboundp 'magit--any-wip-mode-enabled-p) (magit--any-wip-mode-enabled-p))) @@ -653,13 +653,12 @@ commits before and half after." (magit-read-string (format "Type a pattern to pass to %s" option))) ;;;###autoload -(defun magit-log-current (revs &optional args files) - "Show log for the current branch. -When `HEAD' is detached or with a prefix argument show log for -one or more revs read from the minibuffer." - (interactive (cons (magit-log-read-revs t) - (magit-log-arguments))) - (magit-log-setup-buffer revs args files)) +(transient-define-suffix magit-log-current (&optional args files) + "Show log for the current branch, or `HEAD' if no branch is checked out." + :description (##if (magit-get-current-branch) "current" "HEAD") + (interactive (magit-log-arguments)) + (magit-log-setup-buffer (list (or (magit-get-current-branch) "HEAD")) + args files)) ;;;###autoload (defun magit-log-head (&optional args files)
[nongnu] elpa/aidermacs ba490d8a19 3/6: Fix aidermacs-get-buffer-name mismatching dirnames
branch: elpa/aidermacs commit ba490d8a1993db5191783db6cb602a375590c8d5 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Fix aidermacs-get-buffer-name mismatching dirnames Signed-off-by: Mingde (Matthew) Zeng --- aidermacs-models.el | 2 +- aidermacs.el| 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/aidermacs-models.el b/aidermacs-models.el index ec24e2c730..f588c273d3 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -226,7 +226,7 @@ This is useful when available models have changed." (defun aidermacs-change-model (&optional arg) "Interactively select and change AI model in current aidermacs session. - With prefix ARG, only allow setting the weak model." +With prefix ARG, only allow setting the weak model." (interactive "P") (unless aidermacs--cached-models (aidermacs--get-available-models)) diff --git a/aidermacs.el b/aidermacs.el index b4f02faebd..2db15829e6 100644 --- a/aidermacs.el +++ b/aidermacs.el @@ -236,7 +236,9 @@ If supplied, SUFFIX is appended to the buffer name within the earmuffs." (cl-remove-if-not (lambda (dir-info) (and (car dir-info) - (string-prefix-p (car dir-info) default-directory) + (string-prefix-p + (expand-file-name (car dir-info)) + (expand-file-name default-directory)) (file-exists-p (car dir-info buffer-dirs) (lambda (a b)
[nongnu] elpa/aidermacs 9c8806258e 3/3: Fix linting
branch: elpa/aidermacs commit 9c8806258e1935238c4e72a3f58af0aa58ad8150 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Fix linting Signed-off-by: Mingde (Matthew) Zeng --- aidermacs-models.el | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/aidermacs-models.el b/aidermacs-models.el index 2aa79f0c2a..d3c99fce3c 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -52,7 +52,7 @@ If nil, uses the value of `aidermacs-default-model'." :type '(choice (const :tag "Use default model" nil) (string :tag "Specific model"))) -(defcustom aidermacs-editor-model nil +(defcustom aidermacs-editor-model nil "Default editing AI model to use for architect mode. If nil, uses the value of `aidermacs-default-model'." :type '(choice (const :tag "Use default model" nil) @@ -172,7 +172,8 @@ API provider." models)) (defun aidermacs--select-model (&optional set-weak-model) - "Provide model selection with completion, handling main/weak/editor models." + "Provide model selection with completion, handling main/weak/editor models. +When SET-WEAK-MODEL is non-nil, only allow setting the weak model." (condition-case nil (let* ((aider-version (aidermacs-aider-version)) (supports-specific-model (version<= "0.78.0" aider-version)) @@ -195,13 +196,13 @@ API provider." (aidermacs--send-command (format "/weak-model %s" model))) ((and is-architect-mode supports-specific-model) (pcase model-type - ("Main/Reasoning Model" + ("Main/Reasoning Model" (setq aidermacs-architect-model model) (aidermacs--send-command (format "/model %s" model))) ("Editing Model" (setq aidermacs-editor-model model) (aidermacs--send-command (format "/editor-model %s" model) - (t + (t (setq aidermacs-default-model model) (aidermacs--send-command (format "/model %s" model)) (quit (message "Model selection cancelled"
[nongnu] elpa/aidermacs 5337ce780a 1/3: Add NonGNU-devel ELPA badge
branch: elpa/aidermacs commit 5337ce780a9bbfb999f6d5da5db56f0f7296b610 Author: Mingde (Matthew) Zeng Commit: Mingde (Matthew) Zeng Add NonGNU-devel ELPA badge Signed-off-by: Mingde (Matthew) Zeng --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26cf06baf9..ee5fd79197 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ [](https://melpa.org/#/aidermacs) [](https://stable.melpa.org/#/aidermacs) +[](https://elpa.nongnu.org/nongnu-devel/aidermacs.html) [](https://elpa.nongnu.org/nongnu/aidermacs.html) [](https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html) [](https://github.com/MatthewZMD/aidermacs/blob/main/LICENSE)
[nongnu] elpa/gptel 913e9dba2a 3/3: gptel: Update docstrings, GPTel to gptel
branch: elpa/gptel commit 913e9dba2a977647b1cc2cc8ec368ac896cc47c2 Author: Karthik Chikmagalur Commit: Karthik Chikmagalur gptel: Update docstrings, GPTel to gptel * gptel.el (gptel-curl-file-size-threshold): Update spelling "GPTel" to "gptel". * gptel-transient.el: Ditto * gptel-curl.el (gptel-curl--stream-cleanup): Ditto * gptel-context.el: Ditto --- gptel-context.el | 4 ++-- gptel-curl.el | 6 +++--- gptel-transient.el | 2 +- gptel.el | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gptel-context.el b/gptel-context.el index bae1748cfc..5b831cc485 100644 --- a/gptel-context.el +++ b/gptel-context.el @@ -1,4 +1,4 @@ -;;; gptel-context.el --- Context aggregator for GPTel -*- lexical-binding: t; -*- +;;; gptel-context.el --- Context aggregator for gptel -*- lexical-binding: t; -*- ;; Copyright (C) 2023 Karthik Chikmagalur @@ -23,7 +23,7 @@ ;;; Commentary: ;; The context allows you to conveniently create contexts which can be fed -;; to GPTel. +;; to gptel. ;;; Code: diff --git a/gptel-curl.el b/gptel-curl.el index cd914ab16a..f8cfd0f05f 100644 --- a/gptel-curl.el +++ b/gptel-curl.el @@ -1,4 +1,4 @@ -;;; gptel-curl.el --- Curl support for GPTel -*- lexical-binding: t; -*- +;;; gptel-curl.el --- Curl support for gptel -*- lexical-binding: t; -*- ;; Copyright (C) 2023 Karthik Chikmagalur @@ -22,7 +22,7 @@ ;;; Commentary: -;; Curl support for GPTel. Utility functions. +;; Curl support for gptel. Utility functions. ;;; Code: @@ -205,7 +205,7 @@ PROC-INFO is the plist containing process metadata." ;; TODO: Separate user-messaging from this function (defun gptel-curl--stream-cleanup (process _status) - "Process sentinel for GPTel curl requests. + "Process sentinel for gptel curl requests. PROCESS and _STATUS are process parameters." (let ((proc-buf (process-buffer process))) diff --git a/gptel-transient.el b/gptel-transient.el index 24dce163e7..9888768306 100644 --- a/gptel-transient.el +++ b/gptel-transient.el @@ -1,4 +1,4 @@ -;;; gptel-transient.el --- Transient menu for GPTel -*- lexical-binding: t; -*- +;;; gptel-transient.el --- Transient menu for gptel -*- lexical-binding: t; -*- ;; Copyright (C) 2023 Karthik Chikmagalur diff --git a/gptel.el b/gptel.el index 23e34cd6ae..fe46e7da9c 100644 --- a/gptel.el +++ b/gptel.el @@ -248,7 +248,7 @@ This only affects requests originating from Org mode buffers." "Size threshold for using file input with Curl. Specifies the size threshold for when to use a temporary file to pass data to -Curl in GPTel queries. If the size of the data to be sent exceeds this +Curl in gptel queries. If the size of the data to be sent exceeds this threshold, the data is written to a temporary file and passed to Curl using the `--data-binary' option with a file reference. Otherwise, the data is passed directly as a command-line argument. @@ -256,7 +256,7 @@ directly as a command-line argument. The value is an integer representing the number of bytes. Adjusting this value may be necessary depending on the environment -and the typical size of the data being sent in GPTel queries. +and the typical size of the data being sent in gptel queries. A larger value may improve performance by avoiding the overhead of creating temporary files for small data payloads, while a smaller value may be needed if the command-line argument size is limited by the operating system.
[elpa] externals/swiper 01706ee5e4: Merge branch 'master' into externals/swiper
branch: externals/swiper commit 01706ee5e411e885ddf45bfcd75bf79c258f35ba Merge: c2ae13bc62 790042e81e Author: Basil L. Contovounesios Commit: Basil L. Contovounesios Merge branch 'master' into externals/swiper --- swiper.el | 25 + 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/swiper.el b/swiper.el index bbe05a992d..359e463932 100644 --- a/swiper.el +++ b/swiper.el @@ -858,6 +858,9 @@ When non-nil, INITIAL-INPUT is the initial search pattern." :unwind-fn #'swiper--cleanup :index-fn #'ivy-recompute-index-swiper) +(ivy-add-actions 'swiper + `(("w" ,#'swiper-action-copy "copy"))) + (defun swiper-toggle-face-matching () "Toggle matching only the candidates with `swiper-invocation-face'." (interactive) @@ -1567,10 +1570,6 @@ completion." ;; In case of unexpected error. (goto-char swiper--opoint))) -(ivy-add-actions 'swiper-isearch '(("w" swiper-isearch-action-copy "copy"))) -(ivy-add-actions 'swiper-isearch '(("i" swiper-isearch-action-insert "insert"))) -(ivy-add-actions 'swiper '(("w" swiper-action-copy "copy"))) - (defun swiper--isearch-insert-current () "Replace minibuffer contents with the current candidate. Like `ivy-insert-current', but tailored for `swiper-isearch'." @@ -1579,6 +1578,16 @@ Like `ivy-insert-current', but tailored for `swiper-isearch'." (let ((cur (ivy-state-current ivy-last))) (insert (with-ivy-window (swiper--isearch-candidate-string cur) +(defun swiper--isearch-kill-ring-save () + "Save the current candidates in the kill ring. +If the region is active, forward to `kill-ring-save' instead. +Like `ivy-kill-ring-save', but tailored for `swiper-isearch'." + (interactive) + (if (use-region-p) + (call-interactively #'kill-ring-save) +(kill-new (with-ivy-window +(mapconcat #'swiper--line-at-point ivy--old-cands "\n") + (defun swiper-isearch-thing-at-point () "Insert `symbol-at-point' into the minibuffer of `swiper-isearch'. When not running `swiper-isearch' already, start it." @@ -1621,6 +1630,10 @@ When the input is empty, browse the search history instead." (set-keymap-parent map swiper-map) (define-key map `[remap ,#'ivy-insert-current] #'swiper--isearch-insert-current) +(define-key map `[remap ,#'ivy-kill-ring-save] +#'swiper--isearch-kill-ring-save) +(define-key map `[remap ,#'kill-ring-save] +#'swiper--isearch-kill-ring-save) (define-key map (kbd "M-n") #'swiper-isearch-thing-at-point) (define-key map (kbd "C-r") #'swiper-isearch-C-r) map) @@ -1769,6 +1782,10 @@ When the input is empty, browse the search history instead." :unwind-fn #'swiper--isearch-unwind :format-fn #'swiper-isearch-format-function) +(ivy-add-actions 'swiper-isearch + `(("w" ,#'swiper-isearch-action-copy "copy") + ("i" ,#'swiper-isearch-action-insert "insert"))) + ;;;###autoload (defun swiper-isearch-backward (&optional initial-input) "Like `swiper-isearch' but the first result is before the point."
[nongnu] elpa/aidermacs updated (6cfc8bfa46 -> 9c8806258e)
elpasync pushed a change to branch elpa/aidermacs. from 6cfc8bfa46 Fix model inheritance to dynamically use default model values new 5337ce780a Add NonGNU-devel ELPA badge new 3eb71cf8ef Use file-in-directory-p new 9c8806258e Fix linting Summary of changes: README.md | 1 + aidermacs-models.el | 9 + aidermacs.el| 4 +--- 3 files changed, 7 insertions(+), 7 deletions(-)