diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2024-03-26 21:43:28 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2024-03-26 21:43:28 -0400 |
| commit | 4a903ca920b43184efb05a30c0bb79d21b56e0a9 (patch) | |
| tree | 78b8a674f404954af127a2cf7546780824c3b904 /.config/nvim/lua | |
| parent | f4b64685c4e5e80bd279cbb7d6f1c774041e7baa (diff) | |
Updated neovim based on theprimagen
Diffstat (limited to '.config/nvim/lua')
| -rw-r--r-- | .config/nvim/lua/dap_lldb.lua | 25 | ||||
| -rw-r--r-- | .config/nvim/lua/jacob/init.lua | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/jacob/plugins.lua | 58 | ||||
| -rw-r--r-- | .config/nvim/lua/jacob/remaps.lua | 42 | ||||
| -rw-r--r-- | .config/nvim/lua/jacob/set.lua | 32 | ||||
| -rw-r--r-- | .config/nvim/lua/lsp_config.lua | 100 |
6 files changed, 135 insertions, 125 deletions
diff --git a/.config/nvim/lua/dap_lldb.lua b/.config/nvim/lua/dap_lldb.lua deleted file mode 100644 index 40861d0..0000000 --- a/.config/nvim/lua/dap_lldb.lua +++ /dev/null @@ -1,25 +0,0 @@ -local dap = require'dap' - -require("dapui").setup() - -dap.adapters.lldb = { - type = 'executable', - -- absolute path is important here, otherwise the argument in the `runInTerminal` request will default to $CWD/lldb-vscode - command = '/usr/bin/lldb-vscode', - name = "lldb" -} -dap.configurations.c = { - { - name = "Launch", - type = "lldb", - request = "launch", - program = function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end, - cwd = '${workspaceFolder}', - stopOnEntry = false, - args = {}, - runInTerminal = true, - }, -} - diff --git a/.config/nvim/lua/jacob/init.lua b/.config/nvim/lua/jacob/init.lua new file mode 100644 index 0000000..db8a563 --- /dev/null +++ b/.config/nvim/lua/jacob/init.lua @@ -0,0 +1,3 @@ +require("jacob.remaps") +require("jacob.plugins") +require("jacob.set") diff --git a/.config/nvim/lua/jacob/plugins.lua b/.config/nvim/lua/jacob/plugins.lua new file mode 100644 index 0000000..83675c0 --- /dev/null +++ b/.config/nvim/lua/jacob/plugins.lua @@ -0,0 +1,58 @@ +-- Lazy.nvim plugin manager +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + + +require("lazy").setup({ + { + 'nvim-telescope/telescope.nvim', tag = '0.1.6', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + { + "ThePrimeagen/harpoon", + branch = "harpoon2", + dependencies = { "nvim-lua/plenary.nvim" } + }, + --{ + -- "NLKNguyen/papercolor-theme", + -- config = function() + -- vim.cmd('set t_Co=256') + -- vim.cmd('set background=light') + -- vim.cmd('colorscheme PaperColor') + -- end + --}, + { + 'folke/tokyonight.nvim', + priority = 1000, + init = function() + -- Like many other themes, this one has different styles, and you could load + -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. + vim.cmd.colorscheme 'tokyonight-day' + end, + }, + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + }, + { + "mbbill/undotree", + config = function() + vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle) + end + }, + {'VonHeikemen/lsp-zero.nvim', branch = 'v3.x'}, + {'neovim/nvim-lspconfig'}, + {'hrsh7th/cmp-nvim-lsp'}, + {'hrsh7th/nvim-cmp'}, + {'L3MON4D3/LuaSnip'}, +}) diff --git a/.config/nvim/lua/jacob/remaps.lua b/.config/nvim/lua/jacob/remaps.lua new file mode 100644 index 0000000..02f1709 --- /dev/null +++ b/.config/nvim/lua/jacob/remaps.lua @@ -0,0 +1,42 @@ +vim.g.mapleader = " " + +-- Netrw Directory Listing +vim.keymap.set("n", "<leader>pv", vim.cmd.Ex) + +-- Quick Save +vim.keymap.set("n", "<leader>w", vim.cmd.w) + +vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") +vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") + +vim.keymap.set("n", "J", "mzJ`z") +vim.keymap.set("n", "<C-d>", "<C-d>zz") +vim.keymap.set("n", "<C-u>", "<C-u>zz") +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") + +-- greatest remap ever +vim.keymap.set("x", "<leader>p", [["_dP]]) + +-- next greatest remap ever : asbjornHaland +vim.keymap.set({"n", "v"}, "<leader>y", [["+y]]) +vim.keymap.set("n", "<leader>Y", [["+Y]]) + +vim.keymap.set({"n", "v"}, "<leader>d", [["_d]]) + +vim.keymap.set("n", "Q", "<nop>") +vim.keymap.set("n", "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>") +vim.keymap.set("n", "<leader>f", vim.lsp.buf.format) + +vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz") +vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz") +vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz") +vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz") + +vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) +vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true }) + +vim.keymap.set("n", "<leader><leader>", function() + vim.cmd("so") +end) + diff --git a/.config/nvim/lua/jacob/set.lua b/.config/nvim/lua/jacob/set.lua new file mode 100644 index 0000000..a71211e --- /dev/null +++ b/.config/nvim/lua/jacob/set.lua @@ -0,0 +1,32 @@ +vim.opt.nu = true +vim.opt.relativenumber = true + +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true + +vim.opt.smartindent = true + +vim.opt.wrap = false + +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" +vim.opt.undofile = true + +vim.opt.hlsearch = false +vim.opt.incsearch = true + +vim.opt.scrolloff = 8 +vim.opt.signcolumn = "yes" +vim.opt.isfname:append("@-@") + +vim.opt.updatetime = 50 + +vim.opt.colorcolumn = "80" + +vim.opt.mouse = 'a' + +vim.opt.list = true +vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } diff --git a/.config/nvim/lua/lsp_config.lua b/.config/nvim/lua/lsp_config.lua deleted file mode 100644 index be7e018..0000000 --- a/.config/nvim/lua/lsp_config.lua +++ /dev/null @@ -1,100 +0,0 @@ -local nvim_lsp = require('lspconfig') - -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - 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', 'ga', '<Cmd>lua vim.lsp.buf.code_action()<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', '<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', '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) - - -- Set some keybinds conditional on server capabilities - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) - elseif client.resolved_capabilities.document_range_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) - end - - -- Set autocommands conditional on server_capabilities - if client.resolved_capabilities.document_highlight then - vim.api.nvim_exec([[ - hi LspReferenceRead cterm=bold ctermbg=DarkMagenta guibg=LightYellow - hi LspReferenceText cterm=bold ctermbg=DarkMagenta guibg=LightYellow - hi LspReferenceWrite cterm=bold ctermbg=DarkMagenta guibg=LightYellow - augroup lsp_document_highlight - autocmd! * <buffer> - autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight() - autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references() - augroup END - ]], false) - end -end - -nvim_lsp.gopls.setup{ - cmd = {'gopls'}, - -- for postfix snippets and analyzers - capabilities = capabilities, - settings = { - gopls = { - experimentalPostfixCompletions = true, - analyses = { - unusedparams = true, - shadow = true, - }, - staticcheck = true, - }, - }, - on_attach = on_attach, -} - - function goimports(timeoutms) - local context = { source = { organizeImports = true } } - vim.validate { context = { context, "t", true } } - - local params = vim.lsp.util.make_range_params() - params.context = context - - -- See the implementation of the textDocument/codeAction callback - -- (lua/vim/lsp/handler.lua) for how to do this properly. - local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, timeout_ms) - if not result or next(result) == nil then return end - local actions = result[1].result - if not actions then return end - local action = actions[1] - - -- textDocument/codeAction can return either Command[] or CodeAction[]. If it - -- is a CodeAction, it can have either an edit, a command or both. Edits - -- should be executed first. - if action.edit or type(action.command) == "table" then - if action.edit then - vim.lsp.util.apply_workspace_edit(action.edit) - end - if type(action.command) == "table" then - vim.lsp.buf.execute_command(action.command) - end - else - vim.lsp.buf.execute_command(action) - end - end - ---vim.lsp.set_log_level("debug")
\ No newline at end of file |
