|
@@ -0,0 +1,56 @@
|
|
|
+local M = {}
|
|
|
+
|
|
|
+M.config = function()
|
|
|
+ -- R -e 'install.packages("formatR",repos = "http://cran.us.r-project.org")'
|
|
|
+ -- R -e 'install.packages("readr",repos = "http://cran.us.r-project.org")'
|
|
|
+ O.lang.r = {
|
|
|
+ formatter = {
|
|
|
+ exe = "R",
|
|
|
+ args = {
|
|
|
+ "--slave",
|
|
|
+ "--no-restore",
|
|
|
+ "--no-save",
|
|
|
+ '-e "formatR::tidy_source(text=readr::read_file(file(\\"stdin\\")), arrow=FALSE)"',
|
|
|
+ },
|
|
|
+ stdin = true,
|
|
|
+ },
|
|
|
+ }
|
|
|
+end
|
|
|
+
|
|
|
+M.format = function()
|
|
|
+ O.formatters.filetype["r"] = {
|
|
|
+ function()
|
|
|
+ return {
|
|
|
+ exe = O.lang.r.formatter.exe,
|
|
|
+ args = O.lang.r.formatter.args,
|
|
|
+ stdin = O.lang.r.formatter.stdin,
|
|
|
+ }
|
|
|
+ end,
|
|
|
+ }
|
|
|
+ O.formatters.filetype["rmd"] = O.formatters.filetype["r"]
|
|
|
+
|
|
|
+ require("formatter.config").set_defaults {
|
|
|
+ logging = false,
|
|
|
+ filetype = O.formatters.filetype,
|
|
|
+ }
|
|
|
+end
|
|
|
+
|
|
|
+M.lint = function()
|
|
|
+ -- TODO: implement linters (if applicable)
|
|
|
+ return "No linters configured!"
|
|
|
+end
|
|
|
+
|
|
|
+M.lsp = function()
|
|
|
+ if require("lv-utils").check_lsp_client_active "r_language_server" then
|
|
|
+ return
|
|
|
+ end
|
|
|
+ -- R -e 'install.packages("languageserver",repos = "http://cran.us.r-project.org")'
|
|
|
+ require("lspconfig").r_language_server.setup {}
|
|
|
+end
|
|
|
+
|
|
|
+M.dap = function()
|
|
|
+ -- TODO: implement dap
|
|
|
+ return "No DAP configured!"
|
|
|
+end
|
|
|
+
|
|
|
+return M
|