Round 75: copilot-accept/next/previous-completion/dismiss/mode/diagnose, gptel-menu/set-model/set-topic/abort, chatgpt-shell/send-region, ellama-chat/summarize/translate/code-review/code-complete/ask-about/improve-grammar/define-word
ober
9841ec8957bec5dc5db4d1f1360f065af4d60bdc
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2801,6 +2801,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | sp-select-next-thing | :orange_circle: | Select next thing | | sp-select-previous-thing | :orange_circle: | Select previous thing | +### Round 75 — AI Integration (Copilot, GPTel, Ellama) + +| Feature | Status | Notes | +|---|---|---| +| copilot-accept-completion | :orange_circle: | Accept AI completion | +| copilot-next-completion | :orange_circle: | Show next completion | +| copilot-previous-completion | :orange_circle: | Show previous completion | +| copilot-dismiss | :orange_circle: | Dismiss completion | +| copilot-mode | :orange_circle: | Toggle Copilot mode | +| copilot-diagnose | :orange_circle: | Run Copilot diagnostics | +| gptel-menu | :orange_circle: | GPTel options menu | +| gptel-set-model | :orange_circle: | Set GPTel model | +| gptel-set-topic | :orange_circle: | Set conversation topic | +| gptel-abort | :orange_circle: | Abort GPTel request | +| chatgpt-shell | :orange_circle: | Open ChatGPT shell | +| chatgpt-shell-send-region | :orange_circle: | Send region to ChatGPT | +| ellama-chat | :orange_circle: | Chat with local LLM | +| ellama-summarize | :orange_circle: | Summarize text | +| ellama-translate | :orange_circle: | Translate text | +| ellama-code-review | :orange_circle: | AI code review | +| ellama-code-complete | :orange_circle: | AI code completion | +| ellama-ask-about | :orange_circle: | Ask about topic | +| ellama-improve-grammar | :orange_circle: | Improve grammar | +| ellama-define-word | :orange_circle: | Define a word | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -12104,3 +12104,52 @@ (def (cmd-sp-select-previous-thing app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: selected previous thing"))) + +;; Round 75 — AI integration (batch 2) +(def (cmd-chatgpt-shell app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ChatGPT Shell: opening conversation"))) + +(def (cmd-chatgpt-shell-send-region app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ChatGPT Shell: sent region to AI"))) + +(def (cmd-ellama-chat app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Ellama chat: " + (lambda (msg) + (echo-message! echo (str "Ellama: sent '" msg "'")))))) + +(def (cmd-ellama-summarize app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Ellama: summarizing buffer/region"))) + +(def (cmd-ellama-translate app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Translate to language: " + (lambda (lang) + (echo-message! echo (str "Ellama: translating to " lang)))))) + +(def (cmd-ellama-code-review app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Ellama: reviewing code"))) + +(def (cmd-ellama-code-complete app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Ellama: completing code"))) + +(def (cmd-ellama-ask-about app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Ask about: " + (lambda (q) + (echo-message! echo (str "Ellama: asking about '" q "'")))))) + +(def (cmd-ellama-improve-grammar app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Ellama: improving grammar"))) + +(def (cmd-ellama-define-word app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Define word: " + (lambda (word) + (echo-message! echo (str "Ellama: defining '" word "'")))))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12630,3 +12630,51 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: joined adjacent sexps"))) +;; Round 75 — AI integration (batch 1) +(def (cmd-copilot-accept-completion app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Copilot: accepted completion"))) + +(def (cmd-copilot-next-completion app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Copilot: showing next completion"))) + +(def (cmd-copilot-previous-completion app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Copilot: showing previous completion"))) + +(def (cmd-copilot-dismiss app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Copilot: dismissed completion"))) + +(def (cmd-copilot-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'copilot) + (if (mode-enabled? app 'copilot) + (echo-message! echo "Copilot mode enabled") + (echo-message! echo "Copilot mode disabled")))) + +(def (cmd-copilot-diagnose app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Copilot: running diagnostics"))) + +(def (cmd-gptel-menu app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "GPTel: showing menu"))) + +(def (cmd-gptel-set-model app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "GPTel model: " + (lambda (model) + (echo-message! echo (str "GPTel: model set to " model)))))) + +(def (cmd-gptel-set-topic app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "GPTel topic: " + (lambda (topic) + (echo-message! echo (str "GPTel: topic set to '" topic "'")))))) + +(def (cmd-gptel-abort app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "GPTel: aborted current request"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3012,4 +3012,25 @@ (register-command! 'sp-backward-sexp cmd-sp-backward-sexp) (register-command! 'sp-select-next-thing cmd-sp-select-next-thing) (register-command! 'sp-select-previous-thing cmd-sp-select-previous-thing) + ;; Round 75 + (register-command! 'copilot-accept-completion cmd-copilot-accept-completion) + (register-command! 'copilot-next-completion cmd-copilot-next-completion) + (register-command! 'copilot-previous-completion cmd-copilot-previous-completion) + (register-command! 'copilot-dismiss cmd-copilot-dismiss) + (register-command! 'copilot-mode cmd-copilot-mode) + (register-command! 'copilot-diagnose cmd-copilot-diagnose) + (register-command! 'gptel-menu cmd-gptel-menu) + (register-command! 'gptel-set-model cmd-gptel-set-model) + (register-command! 'gptel-set-topic cmd-gptel-set-topic) + (register-command! 'gptel-abort cmd-gptel-abort) + (register-command! 'chatgpt-shell cmd-chatgpt-shell) + (register-command! 'chatgpt-shell-send-region cmd-chatgpt-shell-send-region) + (register-command! 'ellama-chat cmd-ellama-chat) + (register-command! 'ellama-summarize cmd-ellama-summarize) + (register-command! 'ellama-translate cmd-ellama-translate) + (register-command! 'ellama-code-review cmd-ellama-code-review) + (register-command! 'ellama-code-complete cmd-ellama-code-complete) + (register-command! 'ellama-ask-about cmd-ellama-ask-about) + (register-command! 'ellama-improve-grammar cmd-ellama-improve-grammar) + (register-command! 'ellama-define-word cmd-ellama-define-word) )