Meu ambiente de desenvolvimento Emacs Scala

https://github.com/jilen/prelude


Recursos relacionados ao Scala

  • Combina scala-modeesbt-mode
  • Edição rápida, sem ensime
  • Compilar ao salvar
  • Verificação imediata de sintaxe usando flycheck(verifique apenas erros de sintaxe, não typecheck).
  • sbt-modeincluído com um comando personalizado play-startpara projetos do Play! Framework
  • Adicione um comando C-c C-tpara executar um Specificationde specs2 ou scalatest
  • No preenchimento baseado em texto de buffer com company-mode(baseado em texto, a empresa não entenderá Scala de forma alguma)

Características gerais

  • Baseado no prelúdio
  • Com muitos temas base16 agrupados
  • Pobre escrita lisp, não aprendi a ceceitar seriamente.

Configuração

  • clonar o repo git clone https://github.com/jilen/prelude
  • faça backup do seu próprio .emacs.ddiretório de configuração
  • mv o repositório clonado como .emacs.d
  • iniciar emacs

É isso aí.


Prelude-scala-sbt.el

;;; prelude-scala-sbt.el --- Scala2 and sbt mode

;;; Commentary:
;;
;;; Code:
(prelude-require-package 'sbt-mode)
(require '
prelude-scala)
(require 'sbt-mode)
(defun play-start ()

"Start Play console."

(interactive)

(let ((sbt:program-name "play")) ; do a '
let' binding for the variable
(sbt-start)))

(setq scala-indent:use-javadoc-style t)


(defun test-only ()

"Run test with current file."

(interactive)

(sbt-command (concat "testOnly " (find-spec-name))))


(defun find-spec-name ()

"Find spec name of current buffer."

(concat "*." (file-name-sans-extension (file-name-nondirectory (buffer-name)))))


(defun compile-sbt-project ()

"Compile the sbt project."

(sbt-command "test:compile")

)


(add-hook '
scala-mode-hook
(lambda ()
(add-hook 'after-save-hook 'compile-sbt-project)))

(provide 'prelude-scala-sbt)
;;; prelude-scala-sbt.el ends here

Captura de tela

Cenário