mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-08-28 13:58:12 +02:00
most of the "visual mode" mappings use "v" instead of "x", affecting select mode, which should not have printable characters remapped. (this is felt when e.g. using snippets)
89 lines
2.6 KiB
Lua
89 lines
2.6 KiB
Lua
return {
|
|
recommended = function()
|
|
return LazyVim.extras.wants({
|
|
ft = "r",
|
|
root = { "*.R", "*.Rmd", "*qmd" },
|
|
})
|
|
end,
|
|
{
|
|
"R-nvim/R.nvim",
|
|
lazy = false,
|
|
opts = {
|
|
-- Create a table with the options to be passed to setup()
|
|
R_args = { "--quiet", "--no-save" },
|
|
hook = {
|
|
on_filetype = function()
|
|
-- This function will be called at the FileType event
|
|
-- of files supported by R.nvim. This is an
|
|
-- opportunity to create mappings local to buffers.
|
|
vim.keymap.set("n", "<Enter>", "<Plug>RDSendLine", { buffer = true })
|
|
vim.keymap.set("x", "<Enter>", "<Plug>RSendSelection", { buffer = true })
|
|
|
|
local wk = require("which-key")
|
|
wk.add({
|
|
buffer = true,
|
|
mode = { "n", "x" },
|
|
{ "<localleader>a", group = "all" },
|
|
{ "<localleader>b", group = "between marks" },
|
|
{ "<localleader>c", group = "chunks" },
|
|
{ "<localleader>f", group = "functions" },
|
|
{ "<localleader>g", group = "goto" },
|
|
{ "<localleader>i", group = "install" },
|
|
{ "<localleader>k", group = "knit" },
|
|
{ "<localleader>p", group = "paragraph" },
|
|
{ "<localleader>q", group = "quarto" },
|
|
{ "<localleader>r", group = "r general" },
|
|
{ "<localleader>s", group = "split or send" },
|
|
{ "<localleader>t", group = "terminal" },
|
|
{ "<localleader>v", group = "view" },
|
|
})
|
|
end,
|
|
},
|
|
pdfviewer = "",
|
|
},
|
|
config = function(_, opts)
|
|
vim.g.rout_follow_colorscheme = true
|
|
require("r").setup(opts)
|
|
require("r.pdf.generic").open = vim.ui.open
|
|
end,
|
|
},
|
|
{
|
|
"hrsh7th/nvim-cmp",
|
|
optional = true,
|
|
dependencies = { "R-nvim/cmp-r" },
|
|
opts = function(_, opts)
|
|
opts.sources = opts.sources or {}
|
|
table.insert(opts.sources, { name = "cmp_r" })
|
|
end,
|
|
},
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = { ensure_installed = { "r", "rnoweb" } },
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
r_language_server = {
|
|
root_dir = function(fname)
|
|
return require("lspconfig.util").root_pattern("DESCRIPTION", "NAMESPACE", ".Rbuildignore")(fname)
|
|
or require("lspconfig.util").find_git_ancestor(fname)
|
|
or vim.loop.os_homedir()
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"nvim-neotest/neotest",
|
|
optional = true,
|
|
dependencies = {
|
|
"shunsambongi/neotest-testthat",
|
|
},
|
|
opts = {
|
|
adapters = {
|
|
["neotest-testthat"] = {},
|
|
},
|
|
},
|
|
},
|
|
}
|