summary refs log tree commit diff stats
path: root/.config/nvim/lua/plugins
diff options
context:
space:
mode:
authorChristian Krinitsin <christian@krinitsin.xyz>2024-03-16 21:00:19 +0100
committerChristian Krinitsin <christian@krinitsin.xyz>2024-03-16 21:00:19 +0100
commitb8a4392c8754a56265701f97f4833b447efff29a (patch)
treec7a0f84d29ace7a215201311ebc02e1e8eb7f952 /.config/nvim/lua/plugins
downloaddotfiles-b8a4392c8754a56265701f97f4833b447efff29a.tar.gz
dotfiles-b8a4392c8754a56265701f97f4833b447efff29a.zip
init
Diffstat (limited to '.config/nvim/lua/plugins')
-rw-r--r--.config/nvim/lua/plugins/appearance.lua28
-rw-r--r--.config/nvim/lua/plugins/autoclose.lua10
-rw-r--r--.config/nvim/lua/plugins/comment.lua21
-rw-r--r--.config/nvim/lua/plugins/everforest.lua12
-rw-r--r--.config/nvim/lua/plugins/git.lua18
-rw-r--r--.config/nvim/lua/plugins/lspconfig.lua136
-rw-r--r--.config/nvim/lua/plugins/statusline.lua11
-rw-r--r--.config/nvim/lua/plugins/telescope.lua8
8 files changed, 244 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/appearance.lua b/.config/nvim/lua/plugins/appearance.lua
new file mode 100644
index 0000000..24012be
--- /dev/null
+++ b/.config/nvim/lua/plugins/appearance.lua
@@ -0,0 +1,28 @@
+return {
+
+    {
+        "nvim-treesitter/nvim-treesitter",
+        build = ":TSUpdate",
+        config = function ()
+          require("nvim-treesitter.configs").setup({
+              ensure_installed = { "c", "lua", "vim" },
+              sync_install = false,
+              highlight = { enable = true },
+              indent = { enable = true },
+            })
+        end
+    },
+
+    {
+        "norcalli/nvim-colorizer.lua",
+        config = function ()
+            require 'colorizer'.setup()
+        end
+    },
+
+    {
+        "lukas-reineke/indent-blankline.nvim",
+        main = "ibl",
+        opts = {}
+    },
+}
diff --git a/.config/nvim/lua/plugins/autoclose.lua b/.config/nvim/lua/plugins/autoclose.lua
new file mode 100644
index 0000000..692f4e4
--- /dev/null
+++ b/.config/nvim/lua/plugins/autoclose.lua
@@ -0,0 +1,10 @@
+return {
+
+    {
+        "m4xshen/autoclose.nvim",
+        config = function ()
+            require("autoclose").setup()
+        end
+    }
+
+}
diff --git a/.config/nvim/lua/plugins/comment.lua b/.config/nvim/lua/plugins/comment.lua
new file mode 100644
index 0000000..c37d7cd
--- /dev/null
+++ b/.config/nvim/lua/plugins/comment.lua
@@ -0,0 +1,21 @@
+return {
+
+    {
+        "numToStr/Comment.nvim",
+        opts = {
+            -- Visual mappings
+            opleader = {
+                line = '<Space>/',
+                block = '<Space>?',
+            },
+
+            -- Normal mappings
+            toggler = {
+                line = '<Space>/',
+                block = '<Space>?',
+            }
+        },
+        lazy = false
+    }
+
+}
diff --git a/.config/nvim/lua/plugins/everforest.lua b/.config/nvim/lua/plugins/everforest.lua
new file mode 100644
index 0000000..9b0b58a
--- /dev/null
+++ b/.config/nvim/lua/plugins/everforest.lua
@@ -0,0 +1,12 @@
+return {
+
+    {
+      "neanias/everforest-nvim",
+      lazy = false, -- load during startup
+      priority = 1000, -- load before all the other start plugins
+      config = function()
+        vim.cmd([[colorscheme everforest]]) -- set colortheme
+      end,
+    }
+
+}
diff --git a/.config/nvim/lua/plugins/git.lua b/.config/nvim/lua/plugins/git.lua
new file mode 100644
index 0000000..4e09cd3
--- /dev/null
+++ b/.config/nvim/lua/plugins/git.lua
@@ -0,0 +1,18 @@
+return {
+
+    {
+        "kdheepak/lazygit.nvim",
+    	cmd = {
+    		"LazyGit",
+    		"LazyGitConfig",
+    		"LazyGitCurrentFile",
+    		"LazyGitFilter",
+    		"LazyGitFilterCurrentFile",
+    	},
+        -- optional for floating window border decoration
+        dependencies = {
+            "nvim-lua/plenary.nvim",
+        },
+    },
+
+}
diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua
new file mode 100644
index 0000000..ce00009
--- /dev/null
+++ b/.config/nvim/lua/plugins/lspconfig.lua
@@ -0,0 +1,136 @@
+local function border(hl_name)
+  return {
+    { "╭", hl_name },
+    { "─", hl_name },
+    { "╮", hl_name },
+    { "│", hl_name },
+    { "╯", hl_name },
+    { "─", hl_name },
+    { "╰", hl_name },
+    { "│", hl_name },
+  }
+end
+
+return {
+
+    {
+        "hrsh7th/cmp-nvim-lsp",
+        config = function()
+            require'cmp'.setup {
+                sources = {
+                  { name = 'nvim_lsp' }
+                }
+            }
+        end
+    },
+
+    {
+        "neovim/nvim-lspconfig",
+        config = function()
+           require'lspconfig'.lua_ls.setup{
+                capabilities = require('cmp_nvim_lsp').default_capabilities(),
+                settings = {  Lua = {  diagnostics = {  globals = { 'vim', 'c2' }  }  }  }
+           }
+
+           require'lspconfig'.clangd.setup{
+                capabilities = require('cmp_nvim_lsp').default_capabilities()
+           }
+        end,
+    },
+
+    {
+        "hrsh7th/nvim-cmp",
+        event = "InsertEnter",
+        dependencies = {
+            "hrsh7th/cmp-buffer", -- source for text in buffer
+            "hrsh7th/cmp-path", -- source for file system paths in commands
+            "L3MON4D3/LuaSnip", -- snippet engine
+            "saadparwaiz1/cmp_luasnip", -- for lua autocompletion
+            "rafamadriz/friendly-snippets", -- useful snippets library
+            "onsails/lspkind.nvim", -- vs-code like pictograms
+        },
+
+        config = function()
+        local cmp = require("cmp")
+
+        local luasnip = require("luasnip")
+
+        local lspkind = require("lspkind")
+
+        -- loads vscode style snippets from installed plugins (e.g. friendly-snippets)
+        require("luasnip.loaders.from_vscode").lazy_load()
+
+        cmp.setup({
+          completion = {
+            completeopt = "menu,menuone,preview,noselect",
+          },
+
+          window = {
+            completion = {
+              border = border "CmpDocBorder",
+              winhighlight = "Normal:CmpDoc",
+            },
+            documentation = {
+              border = border "CmpDocBorder",
+              winhighlight = "Normal:CmpDoc",
+            },
+          },
+
+          snippet = { -- configure how nvim-cmp interacts with snippet engine
+            expand = function(args)
+              luasnip.lsp_expand(args.body)
+            end,
+          },
+
+          mapping = cmp.mapping.preset.insert({
+            ["<S-Tab>"] = cmp.mapping(function(fallback)
+              if cmp.visible() then
+                cmp.select_prev_item()
+              elseif require("luasnip").jumpable(-1) then
+                vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-jump-prev", true, true, true), "")
+              else
+                fallback()
+              end
+            end, { "i", "s", }),
+            ["<Tab>"] = cmp.mapping(function(fallback)
+              if cmp.visible() then
+                cmp.select_next_item()
+              elseif require("luasnip").expand_or_jumpable() then
+                vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-expand-or-jump", true, true, true), "")
+              else
+                fallback()
+              end
+            end, { "i", "s", }),
+            ["<C-p>"] = cmp.mapping.select_prev_item(), -- previous suggestion
+            ["<C-n>"] = cmp.mapping.select_next_item(), -- next suggestion
+            ["<C-e>"] = cmp.mapping.abort(), -- close completion window
+            ["<CR>"] = cmp.mapping.confirm({ select = false }),
+          }),
+
+          -- sources for autocompletion
+          sources = cmp.config.sources({
+            { name = "nvim_lsp" },
+            { name = "luasnip" }, -- snippets
+            { name = "buffer" }, -- text within current buffer
+            { name = "path" }, -- file system paths
+          }),
+
+          -- configure lspkind for vs-code like pictograms in completion menu
+          formatting = {
+            format = lspkind.cmp_format({
+              maxwidth = 50,
+              ellipsis_char = "...",
+            }),
+          },
+        })
+      end,
+    },
+
+    {
+       "aznhe21/actions-preview.nvim",
+       config = function()
+         vim.keymap.set({ "v", "n" }, "<leader>an", require("actions-preview").code_actions)
+       end,
+    },
+
+}
diff --git a/.config/nvim/lua/plugins/statusline.lua b/.config/nvim/lua/plugins/statusline.lua
new file mode 100644
index 0000000..f065296
--- /dev/null
+++ b/.config/nvim/lua/plugins/statusline.lua
@@ -0,0 +1,11 @@
+return {
+
+    {
+        "nvim-lualine/lualine.nvim",
+        dependencies = { 'nvim-tree/nvim-web-devicons' },
+        config = function ()
+            require('lualine').setup()
+        end
+    },
+
+}
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..757fa90
--- /dev/null
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,8 @@
+return {
+
+    {
+        "nvim-telescope/telescope.nvim", tag = '0.1.6',
+        dependencies = { 'nvim-lua/plenary.nvim' }
+    }
+
+}