lang/scala: replace ensime with metals

Ensime just went missing from everywhere.
On [[ensime.github.io]], they encourage to switch to metals -
a new Scala language server already supported by lsp-mode.

This commit:
- removes ensime completely
- adds a doctor.el to check for metals-emacs binary

Original issue: 6288099561
Metals: https://scalameta.org/metals/docs/editors/emacs.html
This commit is contained in:
Oleksii Filonenko 2019-10-02 10:29:11 +03:00
parent 3f7e0fd103
commit d2aa2443c2
No known key found for this signature in database
GPG key ID: F3510FE5691629A1
3 changed files with 9 additions and 23 deletions

View file

@ -15,23 +15,6 @@
(add-hook 'scala-mode-local-vars-hook #'lsp!))) (add-hook 'scala-mode-local-vars-hook #'lsp!)))
(use-package! ensime
:unless (featurep! +lsp)
:defer t
:config
(setq ensime-startup-snapshot-notification nil
ensime-startup-notification nil
ensime-eldoc-hints 'all
;; let DOOM handle company setup
ensime-completion-style nil)
(set-company-backend! 'scala-mode '(ensime-company company-yasnippet))
;; Fix void-variable imenu-auto-rescan error caused by `ensime--setup-imenu'
;; trying to make imenu variables buffer local before imenu is loaded.
(require 'imenu))
(use-package! sbt-mode (use-package! sbt-mode
:after scala-mode :after scala-mode
:config (set-repl-handler! 'scala-mode #'+scala/open-repl)) :config (set-repl-handler! 'scala-mode #'+scala/open-repl))

View file

@ -0,0 +1,9 @@
;;; lang/scala/doctor.el -*- lexical-binding: t; -*-
(assert! (or (not (featurep! +lsp))
(featurep! :tools lsp))
"This module requires (:tools lsp)")
(if (and (featurep! +lsp)
(not (executable-find "metals-emacs")))
(warn! "metals-emacs isn't installed"))

View file

@ -3,9 +3,3 @@
(package! sbt-mode) (package! sbt-mode)
(package! scala-mode) (package! scala-mode)
(unless (featurep! +lsp)
;; Fix #1697: Ensime doesn't have a master branch and its MELPA recipe doesn't
;; specify a branch. Straight can't handle packages with non-standard primary
;; branches (at the time of writing), so we must specify it manually:
(package! ensime :recipe (:branch "2.0")))