From c68660f3bea9a9c2df16a0b312b2dd9a04d83552 Mon Sep 17 00:00:00 2001 From: Roger Gonzalez Date: Fri, 7 Apr 2023 21:51:36 -0300 Subject: Added chatgpt-shell to Emacs --- .config/doom/custom-packages/ob-dall-e-shell.el | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .config/doom/custom-packages/ob-dall-e-shell.el (limited to '.config/doom/custom-packages/ob-dall-e-shell.el') diff --git a/.config/doom/custom-packages/ob-dall-e-shell.el b/.config/doom/custom-packages/ob-dall-e-shell.el new file mode 100644 index 00000000..9fc3c753 --- /dev/null +++ b/.config/doom/custom-packages/ob-dall-e-shell.el @@ -0,0 +1,68 @@ +;;; ob-dall-e-shell.el --- Org babel functions for DALL-E evaluation -*- lexical-binding: t; -*- + +;; Copyright (C) Alvaro Ramirez + +;; Author: Alvaro Ramirez +;; URL: https://github.com/xenodium/chatgpt-shell + +;;; License: + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;; Run and render DALL-E blocks using org babel. +;; +;; Install with: +;; +;; (require 'ob-dall-e-shell) +;; (ob-dall-e-shell-setup) +;; +;; Usage: +;; +;; #+begin_src dall-e-shell +;; Hello +;; #+end_src + +;;; Requirements: + +;;; Code: +(require 'ob) +(require 'org) +(require 'chatgpt-shell) +(require 'map) + +(defalias 'dall-e-shell-mode #'text-mode) + +(defvar org-babel-default-header-args:dall-e-shell '((:results . "file") + (:version . nil))) + +(defun org-babel-execute:dall-e-shell(body params) + "Execute a block of DALL-E prompt in BODY with org-babel header PARAMS. +This function is called by `org-babel-execute-src-block'" + (message "executing DALL-E source code block") + (chatgpt-shell-post-dall-e-prompt body (map-elt params :version))) + +(defun ob-dall-e-shell-setup () + "Set up babel DALL-E support." + (org-babel-do-load-languages 'org-babel-load-languages + (append org-babel-load-languages + '((dall-e-shell . t)))) + (add-to-list 'org-src-lang-modes '("dall-e-shell" . text))) + +(provide 'ob-dall-e-shell) + +;;; ob-dall-e-shell.el ends here -- cgit v1.2.3