summaryrefslogtreecommitdiff
path: root/.config/nvim/lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua')
-rw-r--r--.config/nvim/lua/dap_lldb.lua25
-rw-r--r--.config/nvim/lua/jacob/init.lua3
-rw-r--r--.config/nvim/lua/jacob/plugins.lua58
-rw-r--r--.config/nvim/lua/jacob/remaps.lua42
-rw-r--r--.config/nvim/lua/jacob/set.lua32
-rw-r--r--.config/nvim/lua/lsp_config.lua100
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