| @@ -1084,6 +1084,27 @@ found, otherwise returns nil." | |||||
| ;; Include some extra modes | ;; Include some extra modes | ||||
| (require 'generic-x) | (require 'generic-x) | ||||
| ;; Derived from https://github.com/ensime/ensime-emacs/issues/591#issuecomment-291916753 | |||||
| (defun my-scalafmt () | |||||
| (interactive) | |||||
| (cl-assert buffer-file-name) | |||||
| (cl-assert (not (buffer-modified-p))) | |||||
| (let* ((configdir (locate-dominating-file default-directory ".scalafmt.conf")) | |||||
| (configoption (if configdir | |||||
| (concat " --config " | |||||
| (shell-quote-argument (expand-file-name configdir)) | |||||
| ".scalafmt.conf" | |||||
| ) | |||||
| "")) | |||||
| (str (concat "scalafmt -f " | |||||
| (shell-quote-argument buffer-file-name) | |||||
| configoption | |||||
| " -i --exclude ensime"))) | |||||
| (message str) | |||||
| (shell-command-to-string str)) | |||||
| (message "scalafmt done") | |||||
| (revert-buffer nil t)) | |||||
| (when (fboundp 'web-mode) | (when (fboundp 'web-mode) | ||||
| (add-to-list 'auto-mode-alist | (add-to-list 'auto-mode-alist | ||||
| '("\\.html\\.j2\\'" . web-mode)) | '("\\.html\\.j2\\'" . web-mode)) | ||||