From 941e573e22d1c4b01e05b8cacc7a317bfb8eeaf8 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 6 Dec 2024 21:49:13 +0100 Subject: Experimental neovim configuration with lua Currently, using the neovim appimage, nvimserver cannot be installed --- nvim/lua/plugins/R.lua | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 nvim/lua/plugins/R.lua (limited to 'nvim/lua/plugins/R.lua') 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", "", "RDSendLine", {}) + vim.api.nvim_buf_set_keymap(0, "n", "", "w", {}) + vim.api.nvim_buf_set_keymap(0, "v", "", "RSendSelection", {}) + end + }, + R_args = {"--quiet", "--no-save"}, + min_editor_width = 72, + rconsole_width = 78, + objbr_mappings = { -- Object browser keymap + c = 'class', -- Call R functions + ['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, +} -- cgit v1.2.1