public
Last active

coloured SLIME REPL for Clojure

  • Download Gist
clojure-font-lock-setup.el
Emacs Lisp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
;;; 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))))
 
(add-hook 'slime-repl-mode-hook
(lambda ()
;(font-lock-mode nil)
(clojure-font-lock-setup)
;(font-lock-mode t)
))
 
(defadvice slime-repl-emit (after sr-emit-ad activate)
(with-current-buffer (slime-output-buffer)
(add-text-properties slime-output-start slime-output-end
'(font-lock-face slime-repl-output-face
rear-nonsticky (font-lock-face)))))
 
(defadvice slime-repl-insert-prompt (after sr-prompt-ad activate)
(with-current-buffer (slime-output-buffer)
(let ((inhibit-read-only t))
(add-text-properties slime-repl-prompt-start-mark (point-max)
'(font-lock-face slime-repl-prompt-face
rear-nonsticky
(slime-repl-prompt
read-only
font-lock-face
intangible))))))

Hi...sorry I get this error message:

error in process filter: Symbol's function definition is void: clojure-font-lock-setup

How can I fix it?...thanks!!!

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.