Changed my Neovim config

This commit is contained in:
Steven Medeiros Melo
2025-03-17 17:40:37 -04:00
parent 9eae74aacc
commit 3fe3f967f6
11 changed files with 231 additions and 121 deletions

92
lua/stevenmm/lazy/cmp.lua Normal file
View File

@@ -0,0 +1,92 @@
return {
"hrsh7th/nvim-cmp",
dependencies = {
"windwp/nvim-autopairs",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"onsails/lspkind.nvim",
},
config = function ()
print("cmp.lua")
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp = require('cmp')
local cmp_select = { behavior = cmp.SelectBehavior.Select }
local lspkind = require("lspkind")
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
cmp.setup({
enabled = function()
-- disable completion in comments
local context = require('cmp.config.context')
-- keep command mode completion enabled when cursor is in a comment
if vim.api.nvim_get_mode().mode == 'c' then
return true
else
return not context.in_treesitter_capture("comment") and not context.in_syntax_group("Comment")
end
end,
formatting = {
format = lspkind.cmp_format({
mode = 'symbol_text',
max_width = {
menu = 50,
abbr = 50,
},
show_labelDetails = true
}),
},
-- preselect = { cmp.PreselectMode.Item },
performance = {
max_view_entries = 10,
},
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-- require('nvim-svelte-snippets').
end,
},
mapping = cmp.mapping.preset.insert({
['<Down>'] = cmp.mapping.select_next_item(cmp_select),
['<Up>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
['<C-Space>'] = cmp.mapping.complete({
config = {
sources = {
{ name = 'luasnip' }
}
}
}),
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
--['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
}),
})
end
}

View File

@@ -0,0 +1,8 @@
return {
'JoosepAlviste/nvim-ts-context-commentstring',
config = function ()
require('ts_context_commentstring').setup({
enable_autocmd = false,
})
end
}

View File

@@ -1,122 +1,44 @@
return {
"neovim/nvim-lspconfig",
-- Load each package config using the dependencies order
dependencies = {
-- mason configs:
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
-- cmp configs:
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/nvim-cmp",
-- LuaSnip config:
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"nvim-svelte/nvim-svelte-snippets",
-- fidget config:
"j-hui/fidget.nvim",
},
config = function()
local cmp = require('cmp')
local cmp_lsp = require("cmp_nvim_lsp")
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
cmp_lsp.default_capabilities())
print("lsp.lua")
require("fidget").setup({})
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = {
"gopls",
"clangd",
"lua_ls",
"rust_analyzer",
-- "php"
-- "tsserver",
},
handlers = {
function(server_name) -- default handler (optional)
require("lspconfig")[server_name].setup {
capabilities = capabilities
}
end,
["lua_ls"] = function()
local lspconfig = require("lspconfig")
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { "vim", "it", "describe", "before_each", "after_each" },
}
}
}
}
end,
["clangd"] = function ()
local lspconfig = require("lspconfig")
lspconfig.clangd.setup({
capabilities = capabilities,
})
end,
["gopls"] = function ()
local lspconfig = require("lspconfig")
lspconfig.gopls.setup {
capabilities = capabilities,
}
end
}
})
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
-- completion = { autocomplete = true },
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = cmp.mapping.preset.insert({
['<Down>'] = cmp.mapping.select_next_item(cmp_select),
['<Up>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
['<C-Space>'] = cmp.mapping.complete({
config = {
sources = {
{ name = 'luasnip' }
}
}
}),
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
--['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
}),
})
vim.diagnostic.config({
-- virtual_text = false,
-- virtual_text = false,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = '',
[vim.diagnostic.severity.WARN] = '',
[vim.diagnostic.severity.INFO] = '',
[vim.diagnostic.severity.HINT] = '󰌶',
}
text = {
[vim.diagnostic.severity.ERROR] = '',
[vim.diagnostic.severity.WARN] = '',
[vim.diagnostic.severity.INFO] = '',
[vim.diagnostic.severity.HINT] = '󰌶',
}
},
update_in_insert = true,
float = {
@@ -129,8 +51,8 @@ return {
},
})
-- vim.o.updatetime = 250
-- vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
-- vim.o.updatetime = 250
-- vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
end
}

View File

@@ -0,0 +1,62 @@
return {
"williamboman/mason.nvim",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"williamboman/mason-lspconfig.nvim",
},
config = function ()
print('mason.lua')
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
require('cmp_nvim_lsp').default_capabilities()
)
require('mason').setup({})
require('mason-lspconfig').setup({
ensure_installed = {
"gopls",
"clangd",
"lua_ls",
"rust_analyzer",
-- "php"
-- "tsserver",
},
handlers = {
function(server_name) -- default handler (optional)
require("lspconfig")[server_name].setup {
capabilities = capabilities
}
end,
["lua_ls"] = function()
local lspconfig = require("lspconfig")
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { "vim", "it", "describe", "before_each", "after_each" },
}
}
}
}
end,
["clangd"] = function ()
local lspconfig = require("lspconfig")
lspconfig.clangd.setup({
capabilities = capabilities,
})
end,
["gopls"] = function ()
local lspconfig = require("lspconfig")
lspconfig.gopls.setup {
capabilities = capabilities,
}
end
}
})
end
}

View File

@@ -1,7 +1,13 @@
return {
'echasnovski/mini.comment',
version = false,
config = function ()
require('mini.comment').setup()
end
'echasnovski/mini.comment',
version = false,
config = function()
require('mini.comment').setup({
options = {
custom_commentstring = function()
return require('ts_context_commentstring').calculate_commentstring() or vim.bo.commentstring
end
},
})
end
}

View File

@@ -0,0 +1,5 @@
return {
"windwp/nvim-autopairs",
event = "InsertEnter",
config = true
}

View File

@@ -14,5 +14,6 @@ vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = "stevenmm.lazy",
change_detection = { notify = false },
'JoosepAlviste/nvim-ts-context-commentstring',
-- "nvim-lua/plenary.nvim"
})

View File

@@ -5,6 +5,7 @@ local keyset = vim.keymap.set
keyset("", "<Caps_lock>", "<Esc>")
keyset("n", "<leader>ma", ":Mason<CR>", { silent = true })
keyset("n", "<leader>na", ":NvimTreeToggle<CR>", { silent = true })
keyset('n', '<leader>la', ":Lazy<CR>", { silent = true })
keyset("n", "<leader>fb", ":Telescope file_browser path=%:p:h<CR>", { noremap = true, silent = true })
keyset("n", "<leader>ha", ":Telescope harpoon marks<CR>", { noremap = true, silent = true })
keyset('n', '<leader>se', ":Telescope emoji<CR>", { desc = '[S]earch [E]moji' })
keyset('n', '<leader>se', ":Telescope emoji<cr>", { desc = '[S]earch [E]moji' })

View File

@@ -6,23 +6,30 @@ vim.opt.relativenumber = true
vim.opt.encoding = 'UTF-8'
vim.opt.guifont = 'NotoSansM Nerd Font Mono'
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.softtabstop = -1
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.smarttab = false
vim.opt.expandtab = false
vim.opt.expandtab = true
vim.opt.smartindent = false
vim.opt.wrap = false
vim.opt.linebreak = false
-- vim.opt.textwidth = 80
vim.opt.colorcolumn = "80"
-- vim.opt.formatoptions = "t"
-- vim.opt_local.columns = 80
vim.opt.swapfile = false
vim.opt.backup = false
if vim.fn.has('win32') or vim.fn.has('win64') then
vim.opt.undodir = os.getenv("XDG_CONFIG_HOME") .. "/.vim/undodir"
vim.opt.shell = 'powershell.exe'
else
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.shell = 'bash'
end
vim.opt.undofile = true
@@ -37,5 +44,3 @@ vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.opt.colorcolumn = "80"