Skip to content

Commit

Permalink
Refactor julia layer to allow toggling of lsp-mode support
Browse files Browse the repository at this point in the history
Also in this commit, code was refactored to ease enabling ESS in
julia-mode buffers in a user-configurable way.
  • Loading branch information
non-Jedi committed Mar 10, 2018
1 parent 8ecd9a6 commit 95c5839
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 50 deletions.
6 changes: 6 additions & 0 deletions layers/+lang/julia/config.el
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@
;; variables

(spacemacs|define-jump-handlers julia-mode)

(defvar julia-mode-enable-ess nil
"If non-nil, enable ESS in julia-mode buffers and disable julia-repl.")

(defvar julia-mode-enable-lsp t
"If non-nil, enable lsp-mode in julia-mode buffers.")
21 changes: 21 additions & 0 deletions layers/+lang/julia/funcs.el
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,24 @@
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3

(defun spacemacs//julia-setup-buffer ()
"Setup ESS and/or lsp for buffer depending on config."
(if julia-mode-enable-ess
(spacemacs//julia-setup-ess)
(spacemacs//julia-setup-repl))
(if julia-mode-enable-lsp
(spacemacs//julia-setup-lsp)))

(defun spacemacs//julia-setup-repl ()
"Start julia-repl minor mode and configure for buffer."
(julia-repl-mode))

(defun spacemacs//julia-setup-ess ()
nil)

(defun spacemacs//julia-setup-lsp ()
"Start lsp-mode and configure for buffer."
(if (configuration-layer/layer-used-p 'lsp)
(lsp-julia-enable)
(message "`lsp' layer is not installed, please add `lsp' layer to your dotfile.")))
11 changes: 0 additions & 11 deletions layers/+lang/julia/layers.el

This file was deleted.

78 changes: 39 additions & 39 deletions layers/+lang/julia/packages.el
Original file line number Diff line number Diff line change
Expand Up @@ -22,54 +22,54 @@
(defun julia/init-julia-mode ()
(use-package julia-mode
:defer t
:init (progn
(spacemacs/declare-prefix-for-mode 'julia-mode
"mh" "help")
(spacemacs/declare-prefix-for-mode 'julia-mode
"me" "eval")
(spacemacs/declare-prefix-for-mode 'julia-mode
"m=" "format")
(spacemacs/set-leader-keys-for-major-mode 'julia-mode
"el" 'julia-latexsub
"==" 'julia-indent-line)
(spacemacs/set-leader-keys-for-major-mode 'julia-repl
"el" 'julia-latexsub))))
:init (add-hook 'julia-mode-hook #'spacemacs//julia-setup-buffer)
:config (progn
(spacemacs/declare-prefix-for-mode 'julia-mode
"mh" "help")
(spacemacs/declare-prefix-for-mode 'julia-mode
"me" "eval")
(spacemacs/declare-prefix-for-mode 'julia-mode
"m=" "format")
(spacemacs/set-leader-keys-for-major-mode 'julia-mode
"el" 'julia-latexsub
"==" 'julia-indent-line))))

(defun julia/init-julia-repl ()
(use-package julia-repl
:defer t
:init (progn
(spacemacs/register-repl 'julia-repl 'julia-repl
"julia-repl")
(add-hook 'julia-mode-hook
'julia-repl-mode)
(spacemacs/declare-prefix-for-mode 'julia-repl
"mh" "help")
(spacemacs/declare-prefix-for-mode 'julia-repl
"me" "eval")
(spacemacs/set-leader-keys-for-major-mode 'julia-repl
"'" 'julia-repl-edit
"hh" 'julia-repl-doc
"w" 'julia-repl-workspace
"em" 'julia-repl-macroexpand)
(spacemacs/declare-prefix-for-mode 'julia-mode
"ms" "send")
(spacemacs/set-leader-keys-for-major-mode 'julia-mode
"r" 'julia-repl
"sb" 'julia-repl-send-buffer
"sl" 'julia-repl-send-line
"sr" 'julia-repl-send-region-or-line
"'" 'julia-repl-edit
"hh" 'julia-repl-doc
"w" 'julia-repl-workspace
"em" 'julia-repl-macroexpand)
)))
"julia-repl"))
:config (progn
(spacemacs/declare-prefix-for-mode 'julia-repl
"mh" "help")
(spacemacs/declare-prefix-for-mode 'julia-repl
"me" "eval")
(spacemacs/set-leader-keys-for-major-mode
'julia-repl
"'" 'julia-repl-edit
"hh" 'julia-repl-doc
"w" 'julia-repl-workspace
"em" 'julia-repl-macroexpand
;; this command comes from julia-mode
"el" 'julia-latexsub)
(spacemacs/declare-prefix-for-mode 'julia-mode
"ms" "send")
(spacemacs/set-leader-keys-for-major-mode
'julia-mode
"r" 'julia-repl
"sb" 'julia-repl-send-buffer
"sl" 'julia-repl-send-line
"sr" 'julia-repl-send-region-or-line
"'" 'julia-repl-edit
"hh" 'julia-repl-doc
"w" 'julia-repl-workspace
"em" 'julia-repl-macroexpand))))

(defun julia/init-lsp-julia ()
(use-package lsp-julia
:init (progn
(add-hook 'julia-mode-hook #'lsp-julia-enable)
(push 'xref-find-definitions spacemacs-jump-handlers-julia-mode))
:config (progn
(push 'xref-find-definitions spacemacs-jump-handlers-julia-mode))
:commands lsp-julia-enable))

(defun julia/post-init-company-lsp ()
Expand Down

0 comments on commit 95c5839

Please sign in to comment.