branch: elpa/aidermacs
commit dbcc393ba0a03225844bc9c9fdc0498489ea5d8b
Author: Kang Tu <tni...@gmail.com>
Commit: GitHub <nore...@github.com>

    Feat: aider-minor-mode (#10)
    
    * add aider-send-line-under-cursor
    
    * feat: add Aider mode with key binding for .aider files
    
    * add scratch.aider, for batch / reproducible of aider command
    
    * make switch buffer shortcut for aider-mode
    
    * feat: add aider-send-paragraph function and key binding in aider-mode
    
    * reorder function, change short-cut to fit ess key binding
    
    * feat: add function to batch add Dired marked files to Aider buffer
    
    * feat: add interactive function to run find-name-dired from Git repository 
root
    
    * update menu
    
    * refactor: Rename parameter in aider--send-command for clarity and update 
calls
    
    * update place to invoke aider--send-command. remove dup
    
    * refactor: Replace Aider major mode with minor mode and keybindings setup
    
    * update README. make aider minor mode manual
    
    fix typo
    
    ---------
    
    Co-authored-by: Kang Tu <kang...@apple.com>
---
 README.org | 16 +++++++++++++++-
 aider.el   | 27 +++++++++++++--------------
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/README.org b/README.org
index 5382646e3a..4701442037 100644
--- a/README.org
+++ b/README.org
@@ -41,7 +41,21 @@
 
 ** Optional
 
-- If you use helm, maybe you can load the helm-aider.el manually. That file 
added support of command history and completion from helm.
+- Maybe you might want to try helm-aider.el. That file added support of 
command history and completion from helm.
+
+- If you enjoy writing aider command in a separate file and send them to aider 
session, just like working on python or R script and send code block into REPL, 
you might want to try aider-minor-mode. It by default bind C-c C-n to send 
current line to aider session, and C-c C-c to send current region to aider 
session.
+
+- To automatically enable aider-minor-mode to any file with aider inside 
filename
+
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'find-file-hook
+            (lambda ()
+              (when (and (buffer-file-name)
+                         (string-match-p "aider" (buffer-file-name)))
+                (aider-minor-mode 1))))
+
+  (provide 'aider)
+#+END_SRC
 
 * Screenshot
 
diff --git a/aider.el b/aider.el
index 730b5b1d3a..26d044986b 100644
--- a/aider.el
+++ b/aider.el
@@ -294,20 +294,19 @@ The command will be formatted as \"/architect \" followed 
by the user command an
                       (point)))))
     (aider--send-command (string-trim paragraph) t)))
 
-(defun aider-mode-setup ()
-  "Setup key bindings for Aider mode."
-  (local-set-key (kbd "C-c C-n") 'aider-send-line-under-cursor)
-  (local-set-key (kbd "C-c C-c") 'aider-send-paragraph))
+;; Define the keymap for Aider Minor Mode
+(defvar aider-minor-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map (kbd "C-c C-n") 'aider-send-line-under-cursor)
+    (define-key map (kbd "C-c C-c") 'aider-send-paragraph)
+    map)
+  "Keymap for Aider Minor Mode.")
+
+;; Define the Aider Minor Mode
+(define-minor-mode aider-minor-mode
+  "Minor mode for Aider with keybindings."
+  :lighter " Aider"
+  :keymap aider-minor-mode-map)
 
-(add-hook 'aider-mode-hook 'aider-mode-setup)
-
-(define-derived-mode aider-mode fundamental-mode "Aider"
-  "Major mode for editing Aider files."
-  ;; Add any additional setup for aider-mode here
-  )
-
-(add-to-list 'auto-mode-alist '("\\.aider\\'" . aider-mode))
-
-(provide 'aider)
 
 ;;; aider.el ends here

Reply via email to