diff --git a/.emacs b/.emacs index 951c9fd..f6dd4d4 100644 --- a/.emacs +++ b/.emacs @@ -40,6 +40,7 @@ (load "~/.emacs.rc/latex-mode-rc.el") (load "~/.emacs.rc/agda2-mode-rc.el") (load "~/.emacs.rc/move-text-rc.el") +(load "~/.emacs.rc/metals-rc.el") (add-to-list 'auto-mode-alist '("\\.ebi\\'" . lisp-mode)) diff --git a/.emacs.rc/metals-rc.el b/.emacs.rc/metals-rc.el new file mode 100644 index 0000000..ed38eff --- /dev/null +++ b/.emacs.rc/metals-rc.el @@ -0,0 +1,42 @@ +(package-initialize) + +(require 'package) + +;; Install use-package if not already installed +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + +(require 'use-package) + +;; Enable defer and ensure by default for use-package +(setq use-package-always-defer t + use-package-always-ensure t) + +;; Enable scala-mode and sbt-mode +(use-package scala-mode + :mode "\\.s\\(cala\\|bt\\)$") + +(use-package sbt-mode + :commands sbt-start sbt-command + :config + ;; WORKAROUND: https://github.com/ensime/emacs-sbt-mode/issues/31 + ;; allows using SPACE when in the minibuffer + (substitute-key-definition + 'minibuffer-complete-word + 'self-insert-command + minibuffer-local-completion-map)) + +;; Enable nice rendering of diagnostincs like compile errors. +(use-package flycheck + :init (global-flycheck-mode)) + +(use-package lsp-mode + ;; Optional - enable lsp-mode automatically in scala files + :hook (scala-mode . lsp) + :config (setq lsp-prefer-flymake nil)) + +(use-package lsp-ui) + +;; Add company-lsp backend for metals +(use-package company-lsp)