Function: elisp-demos-add-demo
elisp-demos-add-demo is an interactive and byte-compiled function
defined in elisp-demos.el.
Signature
(elisp-demos-add-demo SYMBOL)
Documentation
Add demo for SYMBOL.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/elisp-demos-20260826.1326/elisp-demos.el
(defun elisp-demos-add-demo (symbol)
"Add demo for SYMBOL."
(interactive
(list (elisp-demos--read-symbol "Add demo: "
(lambda (sym)
(or (functionp sym)
(special-form-p sym)
(macrop sym))))))
;; Try to reuse existing window
(let* ((file (or (car elisp-demos-user-files) elisp-demos--elisp-demos\.org))
(buffer (get-file-buffer file))
(window (and buffer (get-buffer-window buffer))))
(if window
(select-window window)
(find-file file)))
(goto-char (point-min))
(or
(catch 'found
(while (re-search-forward "^\\* \\(.+\\)$" nil t)
(cond ((string= (org-entry-get (point) "ITEM") (symbol-name symbol))
(goto-char (line-beginning-position))
(user-error "%s already exists" symbol))
((string< (symbol-name symbol) (org-entry-get (point) "ITEM"))
(goto-char (line-beginning-position))
(throw 'found t)))))
(goto-char (point-max)))
(org-insert-heading)
(insert (symbol-name symbol) "\n"
"\n"
"#+BEGIN_SRC elisp\n"
(format " (%s )\n" (symbol-name symbol))
"#+END_SRC")
(search-backward ")\n#+END_SRC"))