summaryrefslogtreecommitdiff
path: root/nvim/lua/plugins/R.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/plugins/R.lua')
-rw-r--r--nvim/lua/plugins/R.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/nvim/lua/plugins/R.lua b/nvim/lua/plugins/R.lua
new file mode 100644
index 0000000..b4dec39
--- /dev/null
+++ b/nvim/lua/plugins/R.lua
@@ -0,0 +1,48 @@
+-- Adapted from the R.nvim README.md file on github
+return {
+ "R-nvim/R.nvim",
+ -- Only required if you also set defaults.lazy = true
+ lazy = false,
+ -- R.nvim is still young and we may make some breaking changes from time
+ -- to time. For now we recommend pinning to the latest minor version
+ -- like so:
+ version = "~0.1.0",
+ config = function()
+ -- Create a table with the options to be passed to setup()
+ ---@type RConfigUserOpts
+ local opts = {
+ hook = {
+ on_filetype = function()
+ vim.api.nvim_buf_set_keymap(0, "n", "<Enter>", "<Plug>RDSendLine", {})
+ vim.api.nvim_buf_set_keymap(0, "n", "<C-h>", "<C-w>w", {})
+ vim.api.nvim_buf_set_keymap(0, "v", "<Enter>", "<Plug>RSendSelection", {})
+ end
+ },
+ R_args = {"--quiet", "--no-save"},
+ min_editor_width = 72,
+ rconsole_width = 78,
+ objbr_mappings = { -- Object browser keymap
+ c = 'class', -- Call R functions
+ ['<localleader>gg'] = 'head({object}, n = 15)', -- Use {object} notation to write arbitrary R code.
+ v = function()
+ -- Run lua functions
+ require('r.browser').toggle_view()
+ end
+ },
+ disable_cmds = {
+ "RClearConsole",
+ "RCustomStart",
+ "RSPlot",
+ "RSaveClose",
+ },
+ }
+ -- Check if the environment variable "R_AUTO_START" exists.
+ -- If using fish shell, you could put in your config.fish:
+ -- alias r "R_AUTO_START=true nvim"
+ if vim.env.R_AUTO_START == "true" then
+ opts.auto_start = "on startup"
+ opts.objbr_auto_start = true
+ end
+ require("r").setup(opts)
+ end,
+}

Contact - Imprint