diff options
| author | JackJ30 <jackqjamison@gmail.com> | 2025-05-27 21:45:51 -0400 |
|---|---|---|
| committer | JackJ30 <jackqjamison@gmail.com> | 2025-05-27 21:45:51 -0400 |
| commit | 80351c2cde0845c894466dd83b0554e4f96cbcb0 (patch) | |
| tree | 8783146cc0319df20e3edb85615c09e6d1b8a3e0 /.config/nvim/lua/user | |
| parent | 41b74f66946213b6efc4134a514fd5ab76b03353 (diff) | |
new nvim
Diffstat (limited to '.config/nvim/lua/user')
| -rw-r--r-- | .config/nvim/lua/user/autocmds.lua | 22 | ||||
| -rw-r--r-- | .config/nvim/lua/user/init.lua | 0 | ||||
| -rw-r--r-- | .config/nvim/lua/user/keymaps.lua | 32 | ||||
| -rw-r--r-- | .config/nvim/lua/user/options.lua | 14 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/cmp.lua | 24 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/colorscheme.lua | 6 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/find-file.lua | 10 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/init.lua | 1 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/lspconfig.lua | 73 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/luadev.lua | 5 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/mini.lua | 7 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/trouble.lua | 5 |
12 files changed, 199 insertions, 0 deletions
diff --git a/.config/nvim/lua/user/autocmds.lua b/.config/nvim/lua/user/autocmds.lua new file mode 100644 index 0000000..bff808a --- /dev/null +++ b/.config/nvim/lua/user/autocmds.lua @@ -0,0 +1,22 @@ +-- Wrap and check for spell in text filetypes. +vim.api.nvim_create_autocmd('FileType', { + group = vim.api.nvim_create_augroup('wrap_spell', { clear = true }), + pattern = { 'gitcommit', 'markdown' }, + callback = function() + vim.opt_local.wrap = true + vim.opt_local.spell = true + end, +}) + +-- Go to last loc when opening a buffer. +vim.api.nvim_create_autocmd('BufReadPost', { + group = vim.api.nvim_create_augroup('last_loc', { clear = true }), + callback = function() + local mark = vim.api.nvim_buf_get_mark(0, '"') + local lcount = vim.api.nvim_buf_line_count(0) + if mark[1] > 0 and mark[1] <= lcount then + -- Protected call to catch errors. + pcall(vim.api.nvim_win_set_cursor, 0, mark) + end + end, +}) diff --git a/.config/nvim/lua/user/init.lua b/.config/nvim/lua/user/init.lua new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.config/nvim/lua/user/init.lua diff --git a/.config/nvim/lua/user/keymaps.lua b/.config/nvim/lua/user/keymaps.lua new file mode 100644 index 0000000..0a6d7f7 --- /dev/null +++ b/.config/nvim/lua/user/keymaps.lua @@ -0,0 +1,32 @@ +-- Remap for dealing with word wrap +vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) +vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) + +-- Move to window using the <C-hjkl> keys +vim.keymap.set('n', '<C-h>', '<C-w>h', { desc = 'Switch to left window' }) +vim.keymap.set('n', '<C-j>', '<C-w>j', { desc = 'Switch to lower window' }) +vim.keymap.set('n', '<C-k>', '<C-w>k', { desc = 'Switch to upper window' }) +vim.keymap.set('n', '<C-l>', '<C-w>l', { desc = 'Switch to right window' }) + +-- Quickfix list +vim.keymap.set('n', '[q', vim.cmd.cprev, { desc = 'Previous quickfix item' }) +vim.keymap.set('n', ']q', vim.cmd.cnext, { desc = 'Next quickfix item' }) + +-- Diagnostics +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to prev diagnostic message' }) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) +vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) +vim.keymap.set('n', '<leader>q', vim.diagnostic.setqflist, { desc = 'Open diagnostic quickfix list' }) + +-- Nagivation in insert +vim.keymap.set('i', '<C-h>', '<Left>', { desc = "Forward char" }) +vim.keymap.set('i', '<C-j>', '<C-o>gj', { desc = "Up char" }) +vim.keymap.set('i', '<C-k>', '<C-o>gk', { desc = "Forward char" }) +vim.keymap.set('i', '<C-l>', '<Right>', { desc = "Forward char" }) + +-- <C-g> to exit +vim.keymap.set({'i', 'n', 'v', 'c'}, '<C-g>', '<Esc>', { desc = "Exit mode" }) +vim.cmd('cmap <C-g> <C-c>') + +-- C-d to delete +vim.keymap.set('i', '<C-d>', '<Del>', { desc = "Delete forward char"}) diff --git a/.config/nvim/lua/user/options.lua b/.config/nvim/lua/user/options.lua new file mode 100644 index 0000000..ef987ff --- /dev/null +++ b/.config/nvim/lua/user/options.lua @@ -0,0 +1,14 @@ +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 0 +vim.opt.expandtab = false + +vim.opt.shortmess:append { s = true, I = true } + +vim.g.mapleader = ' ' +vim.g.maplocalleader = '\\' + +vim.opt.signcolumn="yes" + +vim.diagnostic.config({ + virtual_text = true +}) diff --git a/.config/nvim/lua/user/plugins/cmp.lua b/.config/nvim/lua/user/plugins/cmp.lua new file mode 100644 index 0000000..8776310 --- /dev/null +++ b/.config/nvim/lua/user/plugins/cmp.lua @@ -0,0 +1,24 @@ +return { + 'hrsh7th/nvim-cmp', + event = { 'InsertEnter', 'CmdlineEnter' }, + dependencies = { + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-cmdline', + 'hrsh7th/cmp-path', + }, + opts = function() + local cmp = require('cmp') + + return { + mapping = cmp.mapping.preset.insert(), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + }, { + { name = 'buffer' }, + }, { + { name = 'path' }, + }) + } + end, +} + diff --git a/.config/nvim/lua/user/plugins/colorscheme.lua b/.config/nvim/lua/user/plugins/colorscheme.lua new file mode 100644 index 0000000..7862f25 --- /dev/null +++ b/.config/nvim/lua/user/plugins/colorscheme.lua @@ -0,0 +1,6 @@ +return { + "Mofiqul/dracula.nvim", + config = function () + vim.cmd[[colorscheme dracula]] + end +} diff --git a/.config/nvim/lua/user/plugins/find-file.lua b/.config/nvim/lua/user/plugins/find-file.lua new file mode 100644 index 0000000..b547d10 --- /dev/null +++ b/.config/nvim/lua/user/plugins/find-file.lua @@ -0,0 +1,10 @@ +return { + "NAHTAIV3L/vertico.nvim", + dependencies = { + 'nvim-lua/plenary.nvim', + }, + config = function () + vim.keymap.set("n", "<leader>f", require("vertico").find_file) + vim.keymap.set("n", "<C-g>", require("vertico").close) + end +} diff --git a/.config/nvim/lua/user/plugins/init.lua b/.config/nvim/lua/user/plugins/init.lua new file mode 100644 index 0000000..a564707 --- /dev/null +++ b/.config/nvim/lua/user/plugins/init.lua @@ -0,0 +1 @@ +return {} diff --git a/.config/nvim/lua/user/plugins/lspconfig.lua b/.config/nvim/lua/user/plugins/lspconfig.lua new file mode 100644 index 0000000..371fdec --- /dev/null +++ b/.config/nvim/lua/user/plugins/lspconfig.lua @@ -0,0 +1,73 @@ +local on_attach = function(client, bufnr) + local keymap = function(mode, keys, func, opts) + opts.buffer = bufnr + vim.keymap.set(mode, keys, func, opts) + end + + keymap('n', 'gd', vim.lsp.buf.definition, { desc = 'Go to definition' }) + keymap('n', 'gD', vim.lsp.buf.declaration, { desc = 'Go to declaration' }) + keymap('n', 'gI', vim.lsp.buf.implementation, { desc = 'Go to implementation' }) + keymap('n', 'gy', vim.lsp.buf.type_definition, { desc = 'Go to type definition' }) + keymap('n', 'gr', vim.lsp.buf.references, { desc = 'List references' }) + + keymap('n', '<leader>ds', vim.lsp.buf.document_symbol, { desc = 'List document symbols' }) + keymap('n', '<leader>ws', vim.lsp.buf.workspace_symbol, { desc = 'List workspace symbols' }) + + keymap('n', 'K', vim.lsp.buf.hover, { desc = 'Show documentation' }) + keymap('n', 'gK', vim.lsp.buf.signature_help, { desc = 'Show signature' }) + keymap('i', '<C-k>', vim.lsp.buf.signature_help, { desc = 'Show signature' }) + + keymap('n', '<leader>rn', vim.lsp.buf.rename, { desc = 'Rename symbol' }) + keymap('n', '<leader>ca', vim.lsp.buf.code_action, { desc = 'Code action' }) + + keymap('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, { desc = 'Add workspace folder' }) + keymap('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, { desc = 'Remove workspace folder' }) + keymap( + 'n', + '<leader>wl', + function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, + { desc = 'List workspace folders' } + ) +end + +return { + 'neovim/nvim-lspconfig', + dependencies = { + "hrsh7th/cmp-nvim-lsp", + }, + ft = { 'lua', 'zig' }, + opts = { + servers = { + lua_ls = { + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + }, + }, + zls = { + settings = {}, + }, + }, + }, + config = function(_, opts) + local lspconfig = require('lspconfig'); + local capabilities = require('cmp_nvim_lsp').default_capabilities() + + for name, conf in pairs(opts.servers) do + lspconfig[name].setup { + capabilities = capabilities, + settings = conf.settings, + on_attach = function(client, bufnr) + local _, err = pcall(on_attach, client, bufnr) + if err then + vim.notify('[on_attach] error: ' .. err, vim.log.levels.ERROR) + else + vim.notify('[on_attach] ' .. client.name .. ' attached to buffer ' .. bufnr, vim.log.levels.INFO) + end + end, + } + end + end +} diff --git a/.config/nvim/lua/user/plugins/luadev.lua b/.config/nvim/lua/user/plugins/luadev.lua new file mode 100644 index 0000000..7011f66 --- /dev/null +++ b/.config/nvim/lua/user/plugins/luadev.lua @@ -0,0 +1,5 @@ +return { + "folke/lazydev.nvim", + ft = "lua", + config = true, +} diff --git a/.config/nvim/lua/user/plugins/mini.lua b/.config/nvim/lua/user/plugins/mini.lua new file mode 100644 index 0000000..879c14d --- /dev/null +++ b/.config/nvim/lua/user/plugins/mini.lua @@ -0,0 +1,7 @@ +return { + { + 'echasnovski/mini.pairs', + event = 'InsertEnter', + config = true, + }, +} diff --git a/.config/nvim/lua/user/plugins/trouble.lua b/.config/nvim/lua/user/plugins/trouble.lua new file mode 100644 index 0000000..1e81a92 --- /dev/null +++ b/.config/nvim/lua/user/plugins/trouble.lua @@ -0,0 +1,5 @@ +return { + "folke/trouble.nvim", + config = true, + cmd = "Trouble" +} |
