@@ -727,52 +727,52 @@ Valid JSON unless NO-JSON is t."
727
727
(defun gptel--restore-state ()
728
728
" Restore gptel state when turning on `gptel-mode' ."
729
729
(when (buffer-file-name )
730
- (pcase major -mode
731
- ( 'org-mode
732
- (require 'gptel-org )
733
- (gptel-org--restore-state))
734
- (_ ( when gptel--bounds
735
- (mapc (pcase-lambda (`(, beg . , end ))
736
- (put-text-property beg end 'gptel 'response ))
737
- gptel--bounds)
738
- (message " gptel chat restored. " ))
739
- (when gptel--backend-name
740
- (if-let ((backend (alist-get
741
- gptel--backend-name gptel--known-backends
742
- nil nil #'equal )))
743
- (setq-local gptel-backend backend)
744
- (message
745
- (substitute-command-keys
746
- (concat
747
- " Could not activate gptel backend \" %s\" ! "
748
- " Switch backends with \\ [universal-argument] \\ [gptel-send]"
749
- " before using gptel." ))
750
- gptel--backend-name) ))))))
730
+ (if ( derived -mode-p 'org-mode )
731
+ ( progn
732
+ (require 'gptel-org )
733
+ (gptel-org--restore-state))
734
+ (when gptel--bounds
735
+ (mapc (pcase-lambda (`(, beg . , end ))
736
+ (put-text-property beg end 'gptel 'response ))
737
+ gptel--bounds)
738
+ (message " gptel chat restored. " ))
739
+ (when gptel--backend-name
740
+ (if-let ((backend (alist-get
741
+ gptel--backend-name gptel--known-backends
742
+ nil nil #'equal )))
743
+ (setq-local gptel-backend backend)
744
+ (message
745
+ (substitute-command-keys
746
+ (concat
747
+ " Could not activate gptel backend \" %s\" ! "
748
+ " Switch backends with \\ [universal-argument] \\ [gptel-send]"
749
+ " before using gptel." ))
750
+ gptel--backend-name))))))
751
751
752
752
(defun gptel--save-state ()
753
753
" Write the gptel state to the buffer.
754
754
755
755
This saves chat metadata when writing the buffer to disk. To
756
756
restore a chat session, turn on `gptel-mode' after opening the
757
757
file."
758
- (pcase major -mode
759
- ( 'org-mode
760
- (require 'gptel-org )
761
- (gptel-org--save-state))
762
- (_ ( let ((print-escape-newlines t ))
763
- (save-excursion
764
- (save-restriction
765
- (add-file-local-variable 'gptel-model gptel-model)
766
- (add-file-local-variable 'gptel--backend-name
767
- (gptel-backend-name gptel-backend))
768
- (unless (equal (default-value 'gptel-temperature ) gptel-temperature)
769
- (add-file-local-variable 'gptel-temperature gptel-temperature))
770
- (unless (string= (default-value 'gptel--system-message )
771
- gptel--system-message)
772
- (add-file-local-variable 'gptel--system-message gptel--system-message))
773
- (when gptel-max-tokens
774
- (add-file-local-variable 'gptel-max-tokens gptel-max-tokens))
775
- (add-file-local-variable 'gptel--bounds (gptel--get-buffer-bounds) )))))))
758
+ (if ( derived -mode-p 'org-mode )
759
+ ( progn
760
+ (require 'gptel-org )
761
+ (gptel-org--save-state))
762
+ (let ((print-escape-newlines t ))
763
+ (save-excursion
764
+ (save-restriction
765
+ (add-file-local-variable 'gptel-model gptel-model)
766
+ (add-file-local-variable 'gptel--backend-name
767
+ (gptel-backend-name gptel-backend))
768
+ (unless (equal (default-value 'gptel-temperature ) gptel-temperature)
769
+ (add-file-local-variable 'gptel-temperature gptel-temperature))
770
+ (unless (string= (default-value 'gptel--system-message )
771
+ gptel--system-message)
772
+ (add-file-local-variable 'gptel--system-message gptel--system-message))
773
+ (when gptel-max-tokens
774
+ (add-file-local-variable 'gptel-max-tokens gptel-max-tokens))
775
+ (add-file-local-variable 'gptel--bounds (gptel--get-buffer-bounds)))))))
776
776
777
777
778
778
; ; Minor mode and UI
@@ -790,7 +790,8 @@ file."
790
790
map)
791
791
(if gptel-mode
792
792
(progn
793
- (unless (memq major-mode '(org-mode markdown-mode text-mode))
793
+ (unless (or (derived-mode-p 'org-mode 'markdown-mode )
794
+ (eq major-mode 'text-mode ))
794
795
(gptel-mode -1 )
795
796
(user-error (format " `gptel-mode' is not supported in `%s' ." major-mode)))
796
797
(add-hook 'before-save-hook #'gptel--save-state nil t )
@@ -1194,9 +1195,9 @@ hook."
1194
1195
Currently only `org-mode' is handled.
1195
1196
1196
1197
BUFFER is the LLM interaction buffer."
1197
- (pcase ( buffer-local-value 'major -mode buffer )
1198
- ( 'org-mode (gptel--convert-markdown->org content) )
1199
- (_ content) ))
1198
+ (if ( with-current- buffer buffer ( derived-mode-p 'org -mode) )
1199
+ (gptel--convert-markdown->org content)
1200
+ content))
1200
1201
1201
1202
(defun gptel--url-get-response (info &optional callback )
1202
1203
" Fetch response to prompt in INFO from the LLM.
0 commit comments