From d496f277419b366c6eabcd548613b67ca924a970 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sat, 1 Feb 2020 17:06:15 +0900 Subject: [PATCH 1/4] Add LSP support for ESS R --- docs/modules.org | 2 +- modules/lang/ess/README.org | 11 +++++++++-- modules/lang/ess/config.el | 8 +++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/modules.org b/docs/modules.org index 5ec4128e7..89edf0a4b 100644 --- a/docs/modules.org +++ b/docs/modules.org @@ -106,7 +106,7 @@ Modules that bring support for a language or group of languages to Emacs. + elm - TODO + emacs-lisp - TODO + erlang - TODO -+ [[file:../modules/lang/ess/README.org][ess]] - TODO ++ [[file:../modules/lang/ess/README.org][ess]] =+lsp= - TODO + [[file:../modules/lang/faust/README.org][faust]] - TODO + [[file:../modules/lang/fsharp/README.org][fsharp]] - TODO + [[file:../modules/lang/go/README.org][go]] =+lsp= - TODO diff --git a/modules/lang/ess/README.org b/modules/lang/ess/README.org index 55330d7ab..2fc985b7b 100644 --- a/modules/lang/ess/README.org +++ b/modules/lang/ess/README.org @@ -4,9 +4,16 @@ This module adds support for various statistics languages, including R, S-Plus, SAS, Julia and Stata. * Table of Contents :TOC: -- [[Appendix][Appendix]] - - [[Keybindings][Keybindings]] +- [[#prequisites][Prequisites]] +- [[#appendix][Appendix]] + - [[#keybindings][Keybindings]] +* Prequisites +This module has sevral optional dependencies: + ++ [[https://github.com/jimhester/lintr][lintr]]: Enables R linting. ++ [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag). + * Appendix ** Keybindings *** :map ess-doc-map diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index b38b09a4e..d97c4507b 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -19,9 +19,15 @@ ess-style 'DEFAULT ess-history-directory (expand-file-name "ess-history/" doom-cache-dir)) + (set-docsets! 'ess-r-mode "R") + (if (featurep! +lsp) + (add-hook 'ess-r-mode-hook #'lsp!) + (set-lookup-handlers! 'ess-r-mode + :documentation #'ess-display-help-on-object)) + (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl) - (set-lookup-handlers! '(ess-r-mode ess-julia-mode) + (set-lookup-handlers! 'ess-julia-mode :documentation #'ess-display-help-on-object) (set-evil-initial-state! 'ess-r-help-mode 'normal) From 1158412ae8883f030c2c92abc37be81e894be797 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 12:00:36 +0900 Subject: [PATCH 2/4] Fix a typo: sevral -> several --- modules/lang/ess/README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ess/README.org b/modules/lang/ess/README.org index 2fc985b7b..a50f434d7 100644 --- a/modules/lang/ess/README.org +++ b/modules/lang/ess/README.org @@ -9,7 +9,7 @@ SAS, Julia and Stata. - [[#keybindings][Keybindings]] * Prequisites -This module has sevral optional dependencies: +This module has several optional dependencies: + [[https://github.com/jimhester/lintr][lintr]]: Enables R linting. + [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag). From abd12a05158efff260b1569af31f6cab3e30f1d1 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 12:02:24 +0900 Subject: [PATCH 3/4] Make the LSP lookup handler fallback to ESS --- modules/lang/ess/config.el | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index d97c4507b..3bdd2e5ed 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -20,14 +20,12 @@ ess-history-directory (expand-file-name "ess-history/" doom-cache-dir)) (set-docsets! 'ess-r-mode "R") - (if (featurep! +lsp) - (add-hook 'ess-r-mode-hook #'lsp!) - (set-lookup-handlers! 'ess-r-mode - :documentation #'ess-display-help-on-object)) + (when (featurep! +lsp) + (add-hook 'ess-r-mode-hook #'lsp!)) (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl) - (set-lookup-handlers! 'ess-julia-mode + (set-lookup-handlers! '(ess-r-mode ess-julia-mode) :documentation #'ess-display-help-on-object) (set-evil-initial-state! 'ess-r-help-mode 'normal) From 48b4847db39a5ae35f08fe147d4c94a93890f559 Mon Sep 17 00:00:00 2001 From: Seong Yong-ju Date: Sun, 2 Feb 2020 17:26:28 +0900 Subject: [PATCH 4/4] Call lsp! in ess-r-mode-local-hook --- modules/lang/ess/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/lang/ess/config.el b/modules/lang/ess/config.el index 3bdd2e5ed..8f1812199 100644 --- a/modules/lang/ess/config.el +++ b/modules/lang/ess/config.el @@ -21,7 +21,7 @@ (set-docsets! 'ess-r-mode "R") (when (featurep! +lsp) - (add-hook 'ess-r-mode-hook #'lsp!)) + (add-hook 'ess-r-mode-local-vars-hook #'lsp!)) (set-repl-handler! 'ess-r-mode #'+ess/open-r-repl) (set-repl-handler! 'ess-julia-mode #'+ess/open-julia-repl)