diff options
| author | Christian Krinitsin <christian@krinitsin.xyz> | 2024-03-16 21:00:19 +0100 |
|---|---|---|
| committer | Christian Krinitsin <christian@krinitsin.xyz> | 2024-03-16 21:00:19 +0100 |
| commit | b8a4392c8754a56265701f97f4833b447efff29a (patch) | |
| tree | c7a0f84d29ace7a215201311ebc02e1e8eb7f952 /.config/nvim/lua/plugins | |
| download | dotfiles-b8a4392c8754a56265701f97f4833b447efff29a.tar.gz dotfiles-b8a4392c8754a56265701f97f4833b447efff29a.zip | |
init
Diffstat (limited to '.config/nvim/lua/plugins')
| -rw-r--r-- | .config/nvim/lua/plugins/appearance.lua | 28 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/autoclose.lua | 10 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/comment.lua | 21 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/everforest.lua | 12 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/git.lua | 18 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/lspconfig.lua | 136 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/statusline.lua | 11 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/telescope.lua | 8 |
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' } + } + +} |