No conozco ninguna forma de tener el CLOCURE REPL básico, como comenzó por algo como java -cp clojure.jar clojure.main
, resaltar la sintaxis. Sin embargo, si usa Emacs & SLIME (¡el entorno de desarrollo elegido para una gran parte de la comunidad Clojure!), Entonces puede tener la sintaxis de resaltado SLIME REPL como clojure-mode
.
primer lugar, usted tiene que levantar algo de código de la función clojure-mode
(definida hacia la parte superior de clojure-mode.el
):
;;; all code in this function lifted from the clojure-mode function
;;; from clojure-mode.el
(defun clojure-font-lock-setup()
(interactive)
(set (make-local-variable 'lisp-indent-function)
'clojure-indent-function)
(set (make-local-variable 'lisp-doc-string-elt-property)
'clojure-doc-string-elt)
(set (make-local-variable 'font-lock-multiline) t)
(add-to-list 'font-lock-extend-region-functions
'clojure-font-lock-extend-region-def t)
(when clojure-mode-font-lock-comment-sexp
(add-to-list 'font-lock-extend-region-functions
'clojure-font-lock-extend-region-comment t)
(make-local-variable 'clojure-font-lock-keywords)
(add-to-list 'clojure-font-lock-keywords
'clojure-font-lock-mark-comment t)
(set (make-local-variable 'open-paren-in-column-0-is-defun-start) nil))
(setq font-lock-defaults
'(clojure-font-lock-keywords ; keywords
nil nil
(("+-*/.<>=!?$%_&~^:@" . "w")) ; syntax alist
nil
(font-lock-mark-block-function . mark-defun)
(font-lock-syntactic-face-function
. lisp-font-lock-syntactic-face-function))))
luego añadirlo a la slime-repl-mode-hook
:
(add-hook 'slime-repl-mode-hook
(lambda()
(font-lock-mode nil)
(clojure-font-lock-setup)
(font-lock-mode t)))
Et voilà La próxima vez que se conecte a SLIME REPL, tendrá a su disposición clojure-mode
resaltado de sintaxis. Si también usa SLIME para Common Lisp, querrá ajustar esto para que no intente resaltar Clojure con CL. Además, esto es solo una primera aproximación; una cosa que se rompe es el resaltado rápido (la cosa namespace>
ya no se resaltará). Sin embargo, no soy un hacker hábil con font-lock
por cualquier estiramiento de la imaginación, así que lo dejo así. :-)
¡Eso es bonito! ¿Cómo puedo obtener eso para SLIME REPL? – Zolomon
@Zolomon - vea mi respuesta a continuación. –
Pregunta similar: [¿Qué hacer para que 'lein repl' colorful?] (Http://stackoverflow.com/q/19500353/578288) –