Initial migrations to lazy.nvim

This commit is contained in:
2023-09-18 12:44:13 -04:00
parent 6410d07c70
commit 34da568c87
23 changed files with 706 additions and 309 deletions

View File

@@ -1,4 +1,4 @@
-- Plugins
require('plugins') require('plugins')
-- Key maps -- Key maps

View File

@@ -1,3 +1,17 @@
return {
"hrsh7th/nvim-cmp",
enabled = true,
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/cmp-vsnip",
"f3fora/cmp-spell",
"hrsh7th/cmp-calc",
"hrsh7th/cmp-emoji"
},
config = function()
-- Setup nvim-cmp. -- Setup nvim-cmp.
local cmp = require "cmp" local cmp = require "cmp"
local lspkind = require("lspkind") local lspkind = require("lspkind")
@@ -16,7 +30,7 @@ local feedkey = function(key, mode)
end end
require'lspconfig'.sourcekit.setup { require('lspconfig').sourcekit.setup {
capabilities = capabilities capabilities = capabilities
} }
@@ -116,3 +130,5 @@ cmp.setup.cmdline("/", {sources = {{name = "buffer"}}})
cmp.setup.cmdline(":", { cmp.setup.cmdline(":", {
sources = cmp.config.sources({{name = "path"}}, {{name = "cmdline"}}) sources = cmp.config.sources({{name = "path"}}, {{name = "cmdline"}})
}) })
end
}

105
nvim/lua/config/init.lua Normal file
View File

@@ -0,0 +1,105 @@
return {
-- Theme
{
'EdenEast/nightfox.nvim',
lazy = false, -- make sure we load this during startup
priority = 1000, -- make sure to load this before all other plugins.
config = function()
-- load the colorscheme
vim.cmd([[colorscheme nightfox]])
end,
--config = get_config("nightfox")
},
{
"nvim-lualine/lualine.nvim",
dependencies = {
-- "nvim-tree/web-dev-icons"
},
config = function()
--require('lau
end,
},
{ 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' },
{
"nvim-treesitter/nvim-treesitter",
-- config = get_config("treesitter"),
-- run = ":TSUpdate"
},
"nvim-treesitter/nvim-treesitter-textobjects",
-- LSP
{
"onsails/lspkind-nvim",
dependencies = {
"famiu/bufdelete.nvim"
}
},
{
"ray-x/lsp_signature.nvim",
dependencies = {
"neovim/nvim-lspconfig"
}
},
{ "williamboman/mason.nvim" },
{
"williamboman/mason-lspconfig.nvim",
config = function()
require('mason').setup()
require('mason-lspconfig').setup({
ensure_installed = {
"bashls",
"clangd",
"dockerls",
"gopls",
"jsonls",
"jedi_language_server",
"lua_ls",
"terraformls",
"tsserver",
"texlab",
"yamlls",
}
})
end
},
-- requirement for Neogit
{
"sindrets/diffview.nvim",
cmd = {
"DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles",
"DiffviewFocusFiles"
},
--config = get_config("diffview")
},
{
"TimUntersberger/neogit",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim", -- optional
"sindrets/diffview.nvim", -- optional
},
cmd = "Neogit",
--config = get_config("neogit")
},
{
"hrsh7th/vim-vsnip",
--config = get_config("vsnip")
},
-- use({
-- "andrewferrier/wrapping.nvim",
-- config = function()
-- require("wrapping").setup()
-- end,
-- })
}

View File

@@ -1,16 +1,6 @@
local lsp_installer = require("nvim-lsp-installer") return {
"williamboman/nvim-lsp-installer",
-- Register a handler that will be called for all installed servers. config = function()
-- Alternatively, you may also register handlers on specific server instances instead (see example below). require("nvim-lsp-installer").setup()
lsp_installer.on_server_ready(function(server) end
local opts = {} }
-- (optional) Customize the options passed to the server
-- if server.name == "tsserver" then
-- opts.root_dir = function() ... end
-- end
-- This setup() function is exactly the same as lspconfig's setup function.
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
server:setup(opts)
end)

View File

@@ -0,0 +1,158 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
},
config = function()
require("mason").setup()
require("mason-lspconfig").setup()
local nvim_lsp = require("lspconfig")
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(bufnr)
local function buf_set_keymap(...)
vim.api.nvim_buf_set_keymap(bufnr, ...)
end
-- Mappings.
local opts = {noremap = true, silent = true}
-- See `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
buf_set_keymap("n", "gT", vim.lsp.buf.type_definition, opts)
-- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap("n", "<space>wa",
"<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
buf_set_keymap("n", "<space>wr",
"<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
buf_set_keymap("n", "<space>wl",
"<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>",
opts)
buf_set_keymap("n", "<space>D",
"<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>",
opts)
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
buf_set_keymap("n", "<space>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts)
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
end
-- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches
--local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").default_capabilities()
local servers = {
"gopls", "bashls", "jedi_language_server", "dockerls", "terraformls",
"tsserver", "texlab", "yamlls", "jsonls", "clangd", "sourcekit"
}
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup {
on_attach = on_attach,
capabilities = capabilities,
settings = {
gopls = {analyses = {unusedparams = false}, staticcheck = true},
json = {
format = {enabled = false},
schemas = {
{
description = "ESLint config",
fileMatch = {".eslintrc.json", ".eslintrc"},
url = "http://json.schemastore.org/eslintrc"
}, {
description = "Package config",
fileMatch = {"package.json"},
url = "https://json.schemastore.org/package"
}, {
description = "Packer config",
fileMatch = {"packer.json"},
url = "https://json.schemastore.org/packer"
}, {
description = "Renovate config",
fileMatch = {
"renovate.json", "renovate.json5",
".github/renovate.json", ".github/renovate.json5",
".renovaterc", ".renovaterc.json"
},
url = "https://docs.renovatebot.com/renovate-schema"
}, {
description = "OpenApi config",
fileMatch = {"*api*.json"},
url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"
}
}
},
redhat = {telemetry = {enabled = false}},
texlab = {
auxDirectory = ".",
bibtexFormatter = "texlab",
build = {
args = {
"--keep-intermediates", "--keep-logs", "--synctex", "%f"
},
executable = "tectonic",
forwardSearchAfter = false,
onSave = false
},
chktex = {onEdit = false, onOpenAndSave = false},
diagnosticsDelay = 300,
formatterLineLength = 80,
forwardSearch = {args = {}},
latexFormatter = "latexindent",
latexindent = {modifyLineBreaks = false}
},
yaml = {
schemaStore = {
enable = true,
url = "https://www.schemastore.org/api/json/catalog.json"
},
schemas = {
kubernetes = "/*.yaml",
["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}",
["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
["http://json.schemastore.org/prettierrc"] = ".prettierrc.{yml,yaml}",
["http://json.schemastore.org/kustomization"] = "kustomization.{yml,yaml}",
["http://json.schemastore.org/ansible-playbook"] = "*play*.{yml,yaml}",
["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}",
["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
["https://json.schemastore.org/gitlab-ci"] = "*gitlab-ci*.{yml,yaml}",
["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "docker-compose.{yml,yaml}",
["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}"
},
format = {enabled = false},
validate = false, -- TODO: conflicts between Kubernetes resources and kustomization.yaml
completion = true,
hover = true
}
},
flags = {debounce_text_changes = 150}
}
require"lsp_signature".setup({
bind = true, -- This is mandatory, otherwise border config won't get registered.
floating_window = true, -- show hint in a floating window, set to false for virtual text only mode
doc_lines = 2, -- Set to 0 for not showing doc
hint_prefix = "🐼 ",
-- use_lspsaga = false, -- set to true if you want to use lspsaga popup
handler_opts = {
border = "shadow" -- double, single, shadow, none
}
})
end
-- Test source-kit
require('lspconfig').sourcekit.setup{}
end
}

View File

@@ -0,0 +1,16 @@
return {
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
},
config = function()
require("neo-tree").setup({
close_if_last_window = false,
enable_git_status = true,
enable_diagnostics = true
})
end
}

View File

@@ -1,10 +1,11 @@
local actions = require('telescope.actions') return {
local telescope = require('telescope') 'nvim-telescope/telescope.nvim',
branch = '0.1.x',
--telescope.load_extension('projects') dependencies = {
telescope.load_extension('fzf') 'nvim-lua/plenary.nvim'
},
telescope.setup{ config = function()
require('telescope').setup({
defaults = { defaults = {
file_ignore_patterns = {"node_modules", "%.jpg", "%.png"}, file_ignore_patterns = {"node_modules", "%.jpg", "%.png"},
vimgrep_arguments = { vimgrep_arguments = {
@@ -17,22 +18,22 @@ telescope.setup{
'--column', '--column',
'--smart-case' '--smart-case'
}, },
mappings = { -- mappings = {
i = { -- i = {
-- Close on first esc instead of gonig to normal mode -- -- Close on first esc instead of gonig to normal mode
["<esc>"] = actions.close, -- ["<esc>"] = actions.close,
["<A-q>"] = actions.send_selected_to_qflist, -- ["<A-q>"] = actions.send_selected_to_qflist,
["<C-q>"] = actions.send_to_qflist, -- ["<C-q>"] = actions.send_to_qflist,
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next, -- ["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
["<tab>"] = actions.toggle_selection + actions.move_selection_previous, -- ["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
}, -- },
n = { -- n = {
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next, -- ["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
["<tab>"] = actions.toggle_selection + actions.move_selection_previous, -- ["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
["<A-q>"] = actions.send_selected_to_qflist, -- ["<A-q>"] = actions.send_selected_to_qflist,
["<C-q>"] = actions.send_to_qflist, -- ["<C-q>"] = actions.send_to_qflist,
}, -- },
}, -- },
prompt_prefix = "", prompt_prefix = "",
selection_caret = "", selection_caret = "",
entry_prefix = " ", entry_prefix = " ",
@@ -63,4 +64,13 @@ telescope.setup{
-- Developer configurations: Not meant for general override -- Developer configurations: Not meant for general override
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker
} }
})
local builtin = require('telescope.builtin')
-- Telescope keymaps
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
end
} }

118
nvim/lua/config/tmp/cmp.lua Normal file
View File

@@ -0,0 +1,118 @@
-- Setup nvim-cmp.
local cmp = require "cmp"
local lspkind = require("lspkind")
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0
and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
col, col):match("%s") == nil
end
local feedkey = function(key, mode)
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true),
mode, true)
end
require'lspconfig'.sourcekit.setup {
capabilities = capabilities
}
lspkind.init({
symbol_map = {
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = ""
}
})
cmp.setup({
formatting = {
format = lspkind.cmp_format {
with_text = false,
maxwidth = 50,
menu = {
buffer = "BUF",
nvim_lsp = "LSP",
path = "PATH",
vsnip = "SNIP",
calc = "CALC",
spell = "SPELL",
emoji = "EMOJI"
}
}
},
experimental = {native_menu = false, ghost_text = false},
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
end
},
mapping = {
["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-n>"] = cmp.mapping.select_next_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = false
},
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif vim.fn["vsnip#available"](1) == 1 then
feedkey("<Plug>(vsnip-expand-or-jump)", "")
elseif has_words_before() then
cmp.complete()
else
fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
end
end, {"i", "s"}),
["<S-Tab>"] = cmp.mapping(function()
if cmp.visible() then
cmp.select_prev_item()
elseif vim.fn["vsnip#jumpable"](-1) == 1 then
feedkey("<Plug>(vsnip-jump-prev)", "")
end
end, {"i", "s"})
},
sources = {
{name = "nvim_lsp"}, {name = "buffer", keyword_length = 5},
{name = "vsnip"}, {name = "calc"}, {name = "emoji"}, {name = "spell"},
{name = "path"}
}
})
-- Use buffer source for `/`.
cmp.setup.cmdline("/", {sources = {{name = "buffer"}}})
-- Use cmdline & path source for ':'.
cmp.setup.cmdline(":", {
sources = cmp.config.sources({{name = "path"}}, {{name = "cmdline"}})
})

View File

@@ -0,0 +1,16 @@
local lsp_installer = require("nvim-lsp-installer")
-- Register a handler that will be called for all installed servers.
-- Alternatively, you may also register handlers on specific server instances instead (see example below).
lsp_installer.on_server_ready(function(server)
local opts = {}
-- (optional) Customize the options passed to the server
-- if server.name == "tsserver" then
-- opts.root_dir = function() ... end
-- end
-- This setup() function is exactly the same as lspconfig's setup function.
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
server:setup(opts)
end)

View File

@@ -34,7 +34,7 @@ g.nvim_tree_icons = {
} }
g.loaded_netrw = 1 g.loaded_netrw = 1
g.loaded_netrwPlugin = 1 g.loaded_netrwPlugin = 1
local tree_cb = require"nvim-tree.config".nvim_tree_callback local tree_cb = require("nvim-tree.config").nvim_tree_callback
-- This function has been generated from your -- This function has been generated from your
-- view.mappings.list -- view.mappings.list

View File

@@ -0,0 +1,66 @@
local actions = require('telescope.actions')
local telescope = require('telescope')
--telescope.load_extension('projects')
telescope.load_extension('fzf')
telescope.setup{
defaults = {
file_ignore_patterns = {"node_modules", "%.jpg", "%.png"},
vimgrep_arguments = {
'rg',
'--follow',
'--color=never',
'--no-heading',
'--with-filename',
'--line-number',
'--column',
'--smart-case'
},
mappings = {
i = {
-- Close on first esc instead of gonig to normal mode
["<esc>"] = actions.close,
["<A-q>"] = actions.send_selected_to_qflist,
["<C-q>"] = actions.send_to_qflist,
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
},
n = {
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
["<A-q>"] = actions.send_selected_to_qflist,
["<C-q>"] = actions.send_to_qflist,
},
},
prompt_prefix = "",
selection_caret = "",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "flex",
layout_config = {
width = 0.75,
prompt_position = "bottom",
preview_cutoff = 120,
horizontal = { mirror = false },
vertical = { mirror = true },
},
file_sorter = require'telescope.sorters'.get_fuzzy_file,
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
-- path_display = true, -- strange behaviour not showing the files in result window
winblend = 0,
border = {},
borderchars = { '', '', '', '', '', '', '', '' },
color_devicons = true,
use_less = true,
set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
-- Developer configurations: Not meant for general override
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker
}
}

View File

@@ -0,0 +1,8 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
}

View File

@@ -2,10 +2,6 @@ local keymap = vim.api.nvim_set_keymap
local default_options = {noremap = true, silent = true} local default_options = {noremap = true, silent = true}
-- local expr_options = {noremap = true, expr = true, silent = true} -- local expr_options = {noremap = true, expr = true, silent = true}
-- map the leader key
keymap('n', '<Space>', '<NOP>', default_options)
vim.g.mapleader = " "
-- easier escape key mapping -- easier escape key mapping
keymap('i', 'jk', '<ESC>', default_options) keymap('i', 'jk', '<ESC>', default_options)
@@ -32,4 +28,5 @@ keymap("x", "K", ":move '<-2<CR>gv-gv", default_options)
keymap("x", "J", ":move '>+1<CR>gv-gv", default_options) keymap("x", "J", ":move '>+1<CR>gv-gv", default_options)
-- Toggle nvim-tree open or closed -- Toggle nvim-tree open or closed
keymap("n", "<c-n>", "<CMD>NvimTreeToggle<CR>", default_options) keymap("n", "<c-n>", "<CMD>:Neotree toggle<CR>", default_options)

View File

@@ -1,121 +1,18 @@
-- Plugins -- Plugins
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
local execute = vim.api.nvim_command if not vim.loop.fs_stat(lazypath) then
local fn = vim.fn vim.fn.system({
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' "git",
"clone",
"--filter=blob:none",
-- returns the require for use in `config` parameter of packer's use "https://github.com/folke/lazy.nvim.git",
-- expects the name of the config file "--branch=stable", -- latest stable release
function get_config(name) lazypath,
return string.format("require(\"config/%s\")", name)
end
-- Install packer if not available
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({
"git", "clone", "https://github.com/wbthomason/packer.nvim",
install_path
}) })
execute "packadd packer.nvim"
end end
vim.opt.rtp:prepend(lazypath)
-- Initialize and configure packer vim.g.mapleader = ' '
local packer = require("packer") vim.g.maplocalleader = ' '
packer.init {
enable = true, -- enable profiling via :PackerCompile profile=true
threshold = 0 -- the amount in ms that a plugins load time must be over for it to be included in the profile
}
local use = packer.use
packer.reset()
-- actual plugins list require("lazy").setup('config')
use "wbthomason/packer.nvim"
use {"kyazdani42/nvim-tree.lua", config = get_config("nvim-tree")}
use {
"nvim-lualine/lualine.nvim",
config = get_config("lualine"),
requires = {"kyazdani42/nvim-web-devicons", opt = true}
}
use {
'nvim-telescope/telescope.nvim',
config = get_config("telescope"),
requires = { {'nvim-lua/plenary.nvim'} }
}
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
use {
"nvim-treesitter/nvim-treesitter",
config = get_config("treesitter"),
run = ":TSUpdate"
}
use "nvim-treesitter/nvim-treesitter-textobjects"
use {
"hrsh7th/nvim-cmp",
requires = {
{"hrsh7th/cmp-nvim-lsp"}, {"hrsh7th/cmp-buffer"}, {"hrsh7th/cmp-path"},
{"hrsh7th/cmp-cmdline"}, {"hrsh7th/cmp-vsnip"},
{"f3fora/cmp-spell", {"hrsh7th/cmp-calc"}, {"hrsh7th/cmp-emoji"}}
},
config = get_config("cmp")
}
use {"onsails/lspkind-nvim", requires = {{"famiu/bufdelete.nvim"}}}
-- LSP
use {"ray-x/lsp_signature.nvim", requires = {{"neovim/nvim-lspconfig"}}}
use { "williamboman/mason.nvim" }
use { "williamboman/mason-lspconfig.nvim" }
use {
"neovim/nvim-lspconfig",
config = get_config("lsp")
}
use {
"williamboman/nvim-lsp-installer",
config = get_config("lsp-installer")
}
use {"folke/which-key.nvim", event = "VimEnter", config = get_config("which")}
-- requirement for Neogit
use {
"sindrets/diffview.nvim",
cmd = {
"DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles",
"DiffviewFocusFiles"
},
config = get_config("diffview")
}
use {
"TimUntersberger/neogit",
requires = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim", -- optional
"sindrets/diffview.nvim", -- optional
},
cmd = "Neogit",
config = get_config("neogit")
}
use {"hrsh7th/vim-vsnip", config = get_config("vsnip")}
use({
"andrewferrier/wrapping.nvim",
config = function()
require("wrapping").setup()
end,
})
-- Theme
use {
'EdenEast/nightfox.nvim',
config = get_config("nightfox")
}