diff options
| author | Abouzar Parvan <[email protected]> | 2021-07-18 22:26:51 +0430 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-07-18 17:56:51 +0000 | 
| commit | 113f69c447dd09bf3b99732c6e8a957df0cf6c82 (patch) | |
| tree | 31ff895ee871295124dd66d032fa93115605797f /lua/lang | |
| parent | 0e8f69f339156fd8ccd2ae85de95637859b3da76 (diff) | |
[Feature] Add R support (#965)
Diffstat (limited to 'lua/lang')
| -rw-r--r-- | lua/lang/r.lua | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/lua/lang/r.lua b/lua/lang/r.lua new file mode 100644 index 00000000..b05e6ee6 --- /dev/null +++ b/lua/lang/r.lua @@ -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 | 
