Created
March 13, 2019 18:13
-
-
Save jisantuc/f90207041617041207aa950f6db5b4f1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; packages.el --- scala-metals layer packages file for Spacemacs. | |
;; | |
;; Copyright (c) 2012-2017 Sylvain Benner & Contributors | |
;; | |
;; Author: James <james@shenzhen.internal.azavea.com> | |
;; URL: https://github.com/syl20bnr/spacemacs | |
;; | |
;; This file is not part of GNU Emacs. | |
;; | |
;;; License: GPLv3 | |
;;; Commentary: | |
;; See the Spacemacs documentation and FAQs for instructions on how to implement | |
;; a new layer: | |
;; | |
;; SPC h SPC layers RET | |
;; | |
;; | |
;; Briefly, each package to be installed or configured by this layer should be | |
;; added to `scala-metals-packages'. Then, for each package PACKAGE: | |
;; | |
;; - If PACKAGE is not referenced by any other Spacemacs layer, define a | |
;; function `scala-metals/init-PACKAGE' to load and initialize the package. | |
;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so | |
;; define the functions `scala-metals/pre-init-PACKAGE' and/or | |
;; `scala-metals/post-init-PACKAGE' to customize the package as it is loaded. | |
;;; Code: | |
(defconst scala-metals-packages | |
'() | |
"The list of Lisp packages required by the scala-metals layer. | |
Each entry is either: | |
1. A symbol, which is interpreted as a package to be installed, or | |
2. A list of the form (PACKAGE KEYS...), where PACKAGE is the | |
name of the package to be installed or loaded, and KEYS are | |
any number of keyword-value-pairs. | |
The following keys are accepted: | |
- :excluded (t or nil): Prevent the package from being loaded | |
if value is non-nil | |
- :location: Specify a custom installation location. | |
The following values are legal: | |
- The symbol `elpa' (default) means PACKAGE will be | |
installed using the Emacs package manager. | |
- The symbol `local' directs Spacemacs to load the file at | |
`./local/PACKAGE/PACKAGE.el' | |
- A list beginning with the symbol `recipe' is a melpa | |
recipe. See: https://github.com/milkypostman/melpa#recipe-format") | |
;; Add melpa to your packages repositories | |
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) | |
;; 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 diagnostics like compile errors. | |
(use-package flycheck | |
:init (global-flycheck-mode)) | |
(use-package lsp-mode | |
:init (setq lsp-prefer-flymake nil)) | |
(use-package lsp-ui | |
:hook (lsp-mode . lsp-ui-mode)) | |
(use-package lsp-scala | |
:after scala-mode | |
:demand t | |
;; Optional - enable lsp-scala automatically in scala files | |
:hook (scala-mode . lsp)) | |
;;; packages.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment