feat(ai): add my/copy-region-as-path-tag helper and binding

This commit is contained in:
2026-03-23 15:36:58 +08:00
parent 94c9caa171
commit ec119361e5
+20 -3
View File
@@ -172,11 +172,30 @@
(gptel-rewrite-region (region-beginning) (region-end) (gptel-rewrite-region (region-beginning) (region-end)
"Fix spelling, grammar, and improve clarity. Keep the same tone and style."))) "Fix spelling, grammar, and improve clarity. Keep the same tone and style.")))
(defun my/copy-region-as-path-tag ()
"Copy the current region as a path tag: @path/to/file.ext:start-end"
(interactive)
(if (use-region-p)
(let* ((filename (file-relative-name (buffer-file-name) (doom-project-root)))
(start-line (line-number-at-pos (region-beginning)))
;; If region ends at beginning of a line, we want the previous line
(end-pos (1- (region-end)))
(end-line (line-number-at-pos (max (region-beginning) end-pos)))
(tag (format "@%s:%d-%d" filename start-line end-line)))
(kill-new tag)
(message "Copied: %s" tag))
(let* ((filename (file-relative-name (buffer-file-name) (doom-project-root)))
(line (line-number-at-pos))
(tag (format "@%s:%d" filename line)))
(kill-new tag)
(message "Copied: %s" tag))))
;; Add keybindings for helper functions ;; Add keybindings for helper functions
(map! :leader (map! :leader
(:prefix "A" (:prefix "A"
:desc "Quick explain" "e" #'my/gptel-quick-explain-region :desc "Quick explain" "e" #'my/gptel-quick-explain-region
:desc "Proofread text" "p" #'my/gptel-proofread-region)) :desc "Proofread text" "p" #'my/gptel-proofread-region
:desc "Copy path tag" "t" #'my/copy-region-as-path-tag))
;;; Claude Code Configuration ;;; Claude Code Configuration
@@ -332,6 +351,4 @@
;; (add-hook 'eat-mode-hook ;; (add-hook 'eat-mode-hook
;; (lambda () ;; (lambda ()
;; (setq-local show-trailing-whitespace nil)))) ;; (setq-local show-trailing-whitespace nil))))
;; (map! :leader
;; (:prefix ("C" . "claude-code")
;; :desc "Claudemacs menu" "E" #'claudemacs-transient-menu))) ;; :desc "Claudemacs menu" "E" #'claudemacs-transient-menu)))