(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)