mirror of
https://github.com/doomemacs/doomemacs
synced 2025-09-24 16:30:58 -05:00
feat(scala): add treesit support
This commit is contained in:
@@ -7,24 +7,12 @@
|
||||
;;
|
||||
;;; 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 (modulep! +lsp)
|
||||
(setq-hook! 'scala-mode-hook lsp-enable-indentation nil)
|
||||
(add-hook 'scala-mode-local-vars-hook #'lsp! 'append))
|
||||
|
||||
(when (modulep! +tree-sitter)
|
||||
(add-hook 'scala-mode-local-vars-hook #'tree-sitter! 'append))
|
||||
|
||||
(set-formatter! 'scalafmt '("scalafmt" "--stdin") :modes '(scala-mode))
|
||||
|
||||
(set-ligatures! 'scala-mode
|
||||
(defun +scala-common-config (mode)
|
||||
(set-formatter! 'scalafmt '("scalafmt" "--stdin")
|
||||
:modes (list mode))
|
||||
(set-repl-handler! mode #'+scala/open-repl
|
||||
:persist t)
|
||||
(set-ligatures! mode
|
||||
;; Functional
|
||||
:def "def"
|
||||
:composition "compose"
|
||||
@@ -49,9 +37,43 @@
|
||||
;; Other
|
||||
:union "union"
|
||||
:intersect "intersect"
|
||||
:diff "diff"))
|
||||
:diff "diff")
|
||||
|
||||
(when (modulep! +lsp)
|
||||
(add-hook (intern (format "%s-local-vars-hook" mode)) #'lsp! 'append)))
|
||||
|
||||
|
||||
(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
|
||||
lsp-enable-indentation nil)
|
||||
|
||||
(+scala-common-config 'scala-mode))
|
||||
|
||||
|
||||
(use-package! scala-ts-mode
|
||||
:when (modulep! +tree-sitter)
|
||||
:when (fboundp 'treesit-available-p)
|
||||
:defer t
|
||||
:init
|
||||
(set-tree-sitter! 'scala-mode 'scala-ts-mode
|
||||
'((scala :url "https://github.com/tree-sitter/tree-sitter-scala")))
|
||||
|
||||
:config
|
||||
(when (modulep! +lsp)
|
||||
(setq-hook! 'scala-ts-mode-hook lsp-enable-indentation nil)
|
||||
(add-hook 'scala-ts-mode-local-vars-hook #'lsp! 'append))
|
||||
|
||||
;; HACK: Rely on `major-mode-remap-defaults'.
|
||||
(cl-callf2 assq-delete-all 'scala-ts-mode auto-mode-alist)
|
||||
|
||||
(+scala-common-config 'scala-ts-mode))
|
||||
|
||||
|
||||
(use-package! sbt-mode
|
||||
:after scala-mode
|
||||
:config (set-repl-handler! 'scala-mode #'+scala/open-repl :persist t))
|
||||
:config (set-repl-handler! '(scala-mode scala-ts-mode) #'+scala/open-repl :persist t))
|
||||
|
Reference in New Issue
Block a user