autocmds.lua
~/.config/nvim/lua/config/autocmds.lua
vim.api.nvim_create_autocmd("FileType", {
pattern = "dart",
callback = function(ev)
vim.opt.commentstring = "// %s"
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function(ev)
-- Don't hide the stuff in ``````
vim.api.nvim_set_option_value('conceallevel', 0, { scope = "local" })
-- Interpret - as part of the word
vim.api.nvim_set_option_value('iskeyword', '@,48-57,_,192-255,-', { scope = "local" })
vim.keymap.set('n', "<Leader><CR>", function()
vim.cmd('vsplit')
vim.fn.feedkeys('<CR>')
end, { desc = "Enter after a vsplit" })
end,
})
local lspautocmds = vim.api.nvim_create_augroup('LSPAutoCmds', { clear = true, })
vim.api.nvim_create_autocmd("LspAttach", {
group = lspautocmds,
callback = function(args)
local bufnr = args.buf
local client_id = args.data.client_id
local client = vim.lsp.get_client_by_id(client_id)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { buffer = bufnr, desc = '[G]o to [D]efinition' })
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { buffer = bufnr, desc = '[G]o to [D]eclaration' })
-- vim.keymap.set('n', '<Leader>ca', vim.lsp.buf.code_action, { buffer = bufnr, desc = '[C]ode [A]ction' })
vim.keymap.set('n', '<Leader>rn', vim.lsp.buf.rename, { buffer = bufnr, desc = '[R]e[n]ame' })
vim.keymap.set('n', 'K', function() vim.lsp.buf.hover({ border = "single" }) end,
{ buffer = bufnr, desc = 'Hover Documentation' })
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, { desc = 'Format current buffer with LSP' })
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
vim.keymap.set('n', '<Leader>gd', function()
vim.api.nvim_open_win(0, true, { split = 'left' })
vim.lsp.buf.definition()
end, { desc = "gd with vert split" })
-- local project_folder = vim.lsp.buf.list_workspace_folders()[1]
-- if project_folder ~= nil then
-- vim.keymap.set('n', '<Leader>pf', function()
-- fzf_lua.files({ cwd = project_folder })
-- end, { buffer = bufnr, desc = '[P]roject [F]iles' })
-- end
-- vim.lsp.completion.enable(true, client_id, bufnr, { autotrigger = true })
-- document highlight references
-- vim.keymap.set('n', '<C-r>', vim.lsp.buf.document_highlight, { buffer = bufnr, desc = 'Highlight referneces'})
end
})