diff options
Diffstat (limited to 'nvim/lua/plugins/R.lua')
-rw-r--r-- | nvim/lua/plugins/R.lua | 48 |
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, +} |