doomemacs/modules/lang/racket/autoload.el
sorawee 0f3bd57101
Fix visit docs for Racket & support racket-xp (#3373)
* Fix visit docs for Racket & support racket-xp

- Fix Racket's +lookup/documentation in the same way as
  f20f477a44
- Support the +xp feature which enables racket-xp. When it's not
  enabled, default handlers to the traditional racket-repl
  (which requires users to run code first)

* PR feedback

* Replace add-hook! with add-hook
2020-06-13 03:03:11 -04:00

29 lines
880 B
EmacsLisp

;;; lang/racket/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +racket/open-repl ()
"Open the Racket REPL."
(interactive)
(pop-to-buffer
(or (get-buffer "*Racket REPL*")
(progn (racket-run-and-switch-to-repl)
(let ((buf (get-buffer "*Racket REPL*")))
(bury-buffer buf)
buf)))))
;;;###autoload
(defun +racket-lookup-documentation (thing)
"A `+lookup/documentation' handler for Racket."
(let ((buf (if racket-xp-mode
(racket-xp-describe thing)
(racket-repl-describe thing))))
(when buf
(pop-to-buffer buf)
t)))
;;;###autoload
(defun +racket-lookup-definition (_thing)
"A `+lookup/definition' handler for Racket."
(if racket-xp-mode
(call-interactively #'racket-xp-visit-definition)
(call-interactively #'racket-repl-visit-definition)))