mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
feat(julia): add treesit support
This commit is contained in:
@ -15,11 +15,11 @@ This module adds support for [[https://julialang.org/][the Julia language]] to D
|
||||
|
||||
** Module flags
|
||||
- +lsp ::
|
||||
Enable LSP support for ~julia-mode~. Requires [[doom-module::tools lsp]] and a langserver
|
||||
(supports LanguageServer.jl).
|
||||
Enable LSP support for ~julia-mode~. Requires [[doom-module::tools lsp]] and a
|
||||
langserver (supports LanguageServer.jl).
|
||||
- +tree-sitter ::
|
||||
Leverages tree-sitter for better syntax highlighting and structural text
|
||||
editing. Requires [[doom-module::tools tree-sitter]].
|
||||
editing. Requires Emacs >=29 and [[doom-module::tools tree-sitter]].
|
||||
- +snail ::
|
||||
Use Snail, a development environment and REPL interaction package for Julia in
|
||||
the spirit of Common Lisp’s SLIME and Clojure’s CIDER. It enables convenient
|
||||
|
@ -4,14 +4,11 @@
|
||||
:interpreter "julia"
|
||||
:config
|
||||
(unless (modulep! +snail)
|
||||
(set-repl-handler! 'julia-mode #'+julia/open-repl))
|
||||
(set-repl-handler! '(julia-mode julia-ts-mode) #'+julia/open-repl))
|
||||
|
||||
(when (modulep! +lsp)
|
||||
(add-hook 'julia-mode-local-vars-hook #'lsp! 'append))
|
||||
|
||||
(when (modulep! +tree-sitter)
|
||||
(add-hook 'julia-mode-local-vars-hook #'tree-sitter! 'append))
|
||||
|
||||
;; Borrow matlab.el's fontification of math operators. From
|
||||
;; <https://web.archive.org/web/20170326183805/https://ogbe.net/emacsconfig.html>
|
||||
(dolist (mode '(julia-mode ess-julia-mode))
|
||||
@ -47,9 +44,22 @@
|
||||
1 font-lock-type-face)))))
|
||||
|
||||
|
||||
(use-package! julia-ts-mode
|
||||
:when (modulep! +tree-sitter)
|
||||
:defer t
|
||||
:init
|
||||
(set-tree-sitter! 'julia-mode 'julia-ts-mode
|
||||
'((julia :url "https://github.com/tree-sitter/tree-sitter-julia"
|
||||
:rev "v0.23.1")))
|
||||
:config
|
||||
(when (modulep! +lsp)
|
||||
(add-hook 'julia-ts-mode-local-vars-hook #'lsp! 'append)))
|
||||
|
||||
|
||||
(use-package! julia-repl
|
||||
:preface (defvar +julia-repl-start-hook nil)
|
||||
:hook (julia-mode . julia-repl-mode)
|
||||
:hook (julia-ts-mode . julia-repl-mode)
|
||||
:hook (+julia-repl-start . +julia-override-repl-escape-char-h)
|
||||
:hook (+julia-repl-start . julia-repl-use-emacsclient)
|
||||
:config
|
||||
@ -95,7 +105,8 @@
|
||||
:after eglot
|
||||
:init
|
||||
;; Prevent timeout while installing LanguageServer.jl
|
||||
(setq-hook! 'julia-mode-hook eglot-connect-timeout (max eglot-connect-timeout 60))
|
||||
(setq-hook! '(julia-mode-hook julia-ts-mode-hook)
|
||||
eglot-connect-timeout (max eglot-connect-timeout 60))
|
||||
:config (eglot-jl-init))
|
||||
|
||||
|
||||
@ -103,6 +114,7 @@
|
||||
:when (modulep! +snail)
|
||||
:when (modulep! :term vterm)
|
||||
:hook (julia-mode . julia-snail-mode)
|
||||
:hook (julia-ts-mode . julia-snail-mode)
|
||||
:config
|
||||
(set-popup-rule! "^\\*julia.*\\*$" :ttl nil :select nil :quit nil)
|
||||
|
||||
|
@ -4,6 +4,9 @@
|
||||
(package! julia-mode :pin "5c940c4ba357d8361534f11169f3d40b2d7833fc")
|
||||
(package! julia-repl :pin "317d56021889a336b4be241604ba71e46dc80581")
|
||||
|
||||
(when (modulep! +tree-sitter)
|
||||
(package! julia-ts-mode :pin "d693c6b35d3aed986b2700a3b5f910de12d6c53c"))
|
||||
|
||||
(when (modulep! +lsp)
|
||||
(if (modulep! :tools lsp +eglot)
|
||||
(package! eglot-jl :pin "7c968cc61fb64016ebe6dc8ff83fd05923db4374")
|
||||
|
@ -38,7 +38,6 @@
|
||||
(java "https://github.com/tree-sitter/tree-sitter-java" nil nil nil nil)
|
||||
(javascript "https://github.com/tree-sitter/tree-sitter-javascript" "master" "src" nil nil)
|
||||
(json "https://github.com/tree-sitter/tree-sitter-json" nil nil nil nil)
|
||||
(julia "https://github.com/tree-sitter/tree-sitter-julia" nil nil nil nil)
|
||||
(kotlin "https://github.com/fwcd/tree-sitter-kotlin" nil nil nil nil)
|
||||
(latex "https://github.com/latex-lsp/tree-sitter-latex" nil nil nil nil)
|
||||
(make "https://github.com/tree-sitter-grammars/tree-sitter-make" nil nil nil nil)
|
||||
|
Reference in New Issue
Block a user