r.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. local M = {}
  2. M.config = function()
  3. -- R -e 'install.packages("formatR",repos = "http://cran.us.r-project.org")'
  4. -- R -e 'install.packages("readr",repos = "http://cran.us.r-project.org")'
  5. O.lang.r = {
  6. formatter = {
  7. exe = "R",
  8. args = {
  9. "--slave",
  10. "--no-restore",
  11. "--no-save",
  12. '-e "formatR::tidy_source(text=readr::read_file(file(\\"stdin\\")), arrow=FALSE)"',
  13. },
  14. stdin = true,
  15. },
  16. }
  17. end
  18. M.format = function()
  19. O.formatters.filetype["r"] = {
  20. function()
  21. return {
  22. exe = O.lang.r.formatter.exe,
  23. args = O.lang.r.formatter.args,
  24. stdin = O.lang.r.formatter.stdin,
  25. }
  26. end,
  27. }
  28. O.formatters.filetype["rmd"] = O.formatters.filetype["r"]
  29. require("formatter.config").set_defaults {
  30. logging = false,
  31. filetype = O.formatters.filetype,
  32. }
  33. end
  34. M.lint = function()
  35. -- TODO: implement linters (if applicable)
  36. return "No linters configured!"
  37. end
  38. M.lsp = function()
  39. if require("lv-utils").check_lsp_client_active "r_language_server" then
  40. return
  41. end
  42. -- R -e 'install.packages("languageserver",repos = "http://cran.us.r-project.org")'
  43. require("lspconfig").r_language_server.setup {}
  44. end
  45. M.dap = function()
  46. -- TODO: implement dap
  47. return "No DAP configured!"
  48. end
  49. return M