58 lines
1.4 KiB
EmacsLisp
58 lines
1.4 KiB
EmacsLisp
;;; lang/scala/config.el -*- lexical-binding: t; -*-
|
|
|
|
(after! projectile
|
|
(add-to-list 'projectile-project-root-files "build.sbt"))
|
|
|
|
|
|
;;
|
|
;;; Packages
|
|
|
|
(after! scala-mode
|
|
(setq scala-indent:align-parameters t
|
|
;; indent block comments to first asterix, not second
|
|
scala-indent:use-javadoc-style t)
|
|
|
|
(setq-hook! 'scala-mode-hook
|
|
comment-line-break-function #'+scala-comment-indent-new-line-fn)
|
|
|
|
(when (featurep! +lsp)
|
|
(setq-hook! 'scala-mode-hook lsp-enable-indentation nil)
|
|
(add-hook 'scala-mode-local-vars-hook #'lsp! 'append))
|
|
|
|
(set-ligatures! 'scala-mode
|
|
;; Functional
|
|
:def "def"
|
|
:composition "compose"
|
|
;; HKT
|
|
:lambda "Lambda"
|
|
;; Types
|
|
:null "none"
|
|
:null "None"
|
|
:true "true"
|
|
:false "false"
|
|
:int "Int"
|
|
:str "String"
|
|
:float "Float"
|
|
:bool "Boolean"
|
|
:list "List"
|
|
;; Flow
|
|
:for "for"
|
|
:not "!"
|
|
:and "&&"
|
|
:or "||"
|
|
:yield "yield"
|
|
;; Other
|
|
:union "union"
|
|
:intersect "intersect"
|
|
:diff "diff"))
|
|
|
|
|
|
(use-package! sbt-mode
|
|
:after scala-mode
|
|
:config (set-repl-handler! 'scala-mode #'+scala/open-repl :persist t))
|
|
|
|
;; Tree sitter
|
|
(eval-when! (featurep! +tree-sitter)
|
|
(add-hook! 'scala-mode-hook
|
|
#'turn-on-tree-sitter-mode
|
|
#'+tree-sitter-keys-mode))
|