Thomas 8 meses atrás
pai
commit
a6928cd106
2 arquivos alterados com 51 adições e 1 exclusões
  1. 49 0
      lua/plugins/r.lua
  2. 2 1
      lua/plugins/treesitter.lua

+ 49 - 0
lua/plugins/r.lua

@@ -0,0 +1,49 @@
+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 (but also bug fixes all the time). If configuration stability
+		-- is a high priority for you, pin to the latest minor version, but unpin
+		-- it and try the latest version before reporting an issue:
+		-- 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, "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,
+	},
+}

+ 2 - 1
lua/plugins/treesitter.lua

@@ -19,7 +19,8 @@ return {
 					"tsx",
 					"typst",
 					"markdown",
-					"markdown_inline"
+					"markdown_inline",
+					"r"
 				},
 				sync_install = false,
 				highlight = { enable = true },