summaryrefslogtreecommitdiff
path: root/nvim/lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua')
-rw-r--r--nvim/lua/config/lazy.lua47
-rw-r--r--nvim/lua/plugins/R.lua43
-rw-r--r--nvim/lua/plugins/airline.lua15
-rw-r--r--nvim/lua/plugins/misc.lua44
-rw-r--r--nvim/lua/plugins/treesitter.lua10
5 files changed, 159 insertions, 0 deletions
diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..a4c6f2a
--- /dev/null
+++ b/nvim/lua/config/lazy.lua
@@ -0,0 +1,47 @@
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- Make sure to setup `mapleader` and `maplocalleader` before
+-- loading lazy.nvim so that mappings are correct.
+-- This is also a good place to setup other settings (vim.opt)
+vim.g.mapleader = "\\"
+vim.g.maplocalleader = ","
+
+-- Create some keymaps for moving between vim windows without <C-w>, as it
+-- closes the browser tab if vim is run via a browser.
+vim.api.nvim_set_keymap('n', '<C-h>', '<C-w>h', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-j>', '<C-w>j', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-k>', '<C-w>k', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-l>', '<C-w>l', { noremap = true, silent = true })
+
+--
+vim.opt.ts = 2
+vim.opt.sw = 2
+vim.opt.expandtab = true
+
+-- Setup lazy.nvim
+require("lazy").setup({
+ spec = {
+ -- import your plugins
+ { import = "plugins" },
+ },
+ -- Configure any other settings here. See the documentation for more details.
+ -- colorscheme that will be used when installing plugins.
+ install = { colorscheme = { "habamax" } },
+ -- automatically check for plugin updates
+ checker = { enabled = true },
+})
diff --git a/nvim/lua/plugins/R.lua b/nvim/lua/plugins/R.lua
new file mode 100644
index 0000000..1188a26
--- /dev/null
+++ b/nvim/lua/plugins/R.lua
@@ -0,0 +1,43 @@
+-- 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",
+ },
+ }
+ opts.auto_start = "on startup"
+ opts.objbr_auto_start = true
+ require("r").setup(opts)
+ end,
+}
diff --git a/nvim/lua/plugins/airline.lua b/nvim/lua/plugins/airline.lua
new file mode 100644
index 0000000..a52e9be
--- /dev/null
+++ b/nvim/lua/plugins/airline.lua
@@ -0,0 +1,15 @@
+return {
+ -- airline
+ { "vim-airline/vim-airline",
+ init = function()
+ vim.g.airline_powerline_fonts = 1
+ vim.g["airline#extensions#tabline#enabled"] = 1
+ vim.g["airline#extensions#branch#enabled"] = 1
+ end,
+ },
+ { "vim-airline/vim-airline-themes",
+ init = function()
+ vim.g.airline_theme = 'wombat'
+ end,
+ }
+}
diff --git a/nvim/lua/plugins/misc.lua b/nvim/lua/plugins/misc.lua
new file mode 100644
index 0000000..7292e3f
--- /dev/null
+++ b/nvim/lua/plugins/misc.lua
@@ -0,0 +1,44 @@
+return {
+
+ -- pandoc
+ { "vim-pandoc/vim-pandoc" },
+ { "vim-pandoc/vim-pandoc-syntax" },
+
+ -- kwbdi
+ --[[ The following plugin gives me <Leader>bd for closing a buffer while keeping
+ the window open, for example when editing several R scripts with
+ the R interpreter running in a separate vim window ]]
+ { "seb-mueller/kwbdi.vim" },
+
+ -- Version control
+ { "tpope/vim-fugitive" },
+ { "airblade/vim-gitgutter" },
+ { "samoshkin/vim-mergetool",
+ init = function()
+ vim.g.mergetool_layout = 'mr'
+ vim.g.mergetool_prefer_revision = 'local'
+ end,
+ },
+
+ -- Show an manage marks
+ { "kshenoy/vim-signature" },
+
+ -- Wayland clipboard
+ { "jasonccox/vim-wayland-clipboard" },
+
+ -- vimcmdline
+ { "jalvesaq/vimcmdline",
+ init = function()
+ vim.b.cmdline_map_start = '<LocalLeader>s'
+ end,
+ },
+
+ -- fzf
+ { "junegunn/fzf" },
+
+ -- Look up docs in vim scripts with 'K'
+ { "tpope/vim-scriptease" },
+
+ -- Delete trailing whitespace
+ { "vim-scripts/DeleteTrailingWhitespace" }
+}
diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..07c4586
--- /dev/null
+++ b/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,10 @@
+return {
+ "nvim-treesitter/nvim-treesitter",
+ run = ":TSUpdate",
+ config = function ()
+ require("nvim-treesitter.configs").setup({
+ ensure_installed = { "markdown", "markdown_inline", "r", "rnoweb", "yaml", "csv" },
+ highlight = { enable = true },
+ })
+ end
+}

Contact - Imprint