Aggiunta configurazione per Erlang e Clojure
This commit is contained in:
98
.emacs.rc/clojure-rc.el
Normal file
98
.emacs.rc/clojure-rc.el
Normal file
@@ -0,0 +1,98 @@
|
||||
;;;;
|
||||
;; Clojure
|
||||
;;;;
|
||||
|
||||
;; Enable paredit for Clojure
|
||||
(add-hook 'clojure-mode-hook 'enable-paredit-mode)
|
||||
|
||||
;; This is useful for working with camel-case tokens, like names of
|
||||
;; Java classes (e.g. JavaClassName)
|
||||
(add-hook 'clojure-mode-hook 'subword-mode)
|
||||
|
||||
;; A little more syntax highlighting
|
||||
(require 'clojure-mode-extra-font-locking)
|
||||
|
||||
;; syntax hilighting for midje
|
||||
(add-hook 'clojure-mode-hook
|
||||
(lambda ()
|
||||
(setq inferior-lisp-program "lein repl")
|
||||
(font-lock-add-keywords
|
||||
nil
|
||||
'(("(\\(facts?\\)"
|
||||
(1 font-lock-keyword-face))
|
||||
("(\\(background?\\)"
|
||||
(1 font-lock-keyword-face))))
|
||||
(define-clojure-indent (fact 1))
|
||||
(define-clojure-indent (facts 1))
|
||||
(rainbow-delimiters-mode)))
|
||||
|
||||
;;;;
|
||||
;; Cider
|
||||
;;;;
|
||||
|
||||
;; provides minibuffer documentation for the code you're typing into the repl
|
||||
(add-hook 'cider-mode-hook 'eldoc-mode)
|
||||
|
||||
;; go right to the REPL buffer when it's finished connecting
|
||||
(setq cider-repl-pop-to-buffer-on-connect t)
|
||||
|
||||
;; When there's a cider error, show its buffer and switch to it
|
||||
(setq cider-show-error-buffer t)
|
||||
(setq cider-auto-select-error-buffer t)
|
||||
|
||||
;; Where to store the cider history.
|
||||
(setq cider-repl-history-file "~/.emacs.d/cider-history")
|
||||
|
||||
;; Wrap when navigating history.
|
||||
(setq cider-repl-wrap-history t)
|
||||
|
||||
;; enable paredit in your REPL
|
||||
(add-hook 'cider-repl-mode-hook 'paredit-mode)
|
||||
|
||||
;; Use clojure mode for other extensions
|
||||
(add-to-list 'auto-mode-alist '("\\.edn$" . clojure-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.boot$" . clojure-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.cljs.*$" . clojure-mode))
|
||||
(add-to-list 'auto-mode-alist '("lein-env" . enh-ruby-mode))
|
||||
|
||||
|
||||
;; key bindings
|
||||
;; these help me out with the way I usually develop web apps
|
||||
(defun cider-start-http-server ()
|
||||
(interactive)
|
||||
(cider-load-current-buffer)
|
||||
(let ((ns (cider-current-ns)))
|
||||
(cider-repl-set-ns ns)
|
||||
(cider-interactive-eval (format "(println '(def server (%s/start))) (println 'server)" ns))
|
||||
(cider-interactive-eval (format "(def server (%s/start)) (println server)" ns))))
|
||||
|
||||
|
||||
(defun cider-refresh ()
|
||||
(interactive)
|
||||
(cider-interactive-eval (format "(user/reset)")))
|
||||
|
||||
(defun cider-user-ns ()
|
||||
(interactive)
|
||||
(cider-repl-set-ns "user"))
|
||||
|
||||
(eval-after-load 'cider
|
||||
'(progn
|
||||
(define-key clojure-mode-map (kbd "C-c C-v") 'cider-start-http-server)
|
||||
(define-key clojure-mode-map (kbd "C-M-r") 'cider-refresh)
|
||||
(define-key clojure-mode-map (kbd "C-c u") 'cider-user-ns)
|
||||
(define-key cider-mode-map (kbd "C-c u") 'cider-user-ns)))
|
||||
|
||||
;; Customizations relating to editing a buffer.
|
||||
|
||||
;; Key binding to use "hippie expand" for text autocompletion
|
||||
;; http://www.emacswiki.org/emacs/HippieExpand
|
||||
(global-set-key (kbd "M-/") 'hippie-expand)
|
||||
|
||||
;; Lisp-friendly hippie expand
|
||||
(setq hippie-expand-try-functions-list
|
||||
'(try-expand-dabbrev
|
||||
try-expand-dabbrev-all-buffers
|
||||
try-expand-dabbrev-from-kill
|
||||
try-complete-lisp-symbol-partially
|
||||
try-complete-lisp-symbol))
|
||||
|
||||
Reference in New Issue
Block a user