From af8389dab7b4d7cfbfba6c186931c861b8b0dfcc Mon Sep 17 00:00:00 2001 From: Bryan Ramos Date: Thu, 22 Aug 2024 16:29:12 -0400 Subject: [PATCH] wip --- nvim/lazy-lock.json | 10 +- nvim/lua/config/keymaps.lua | 2 + nvim/lua/plugins/colorscheme.lua | 2 +- nvim/lua/plugins/indent-blankline.lua | 3 +- nvim/lua/plugins/lsp.lua | 171 ++++++++++++++++---------- nvim/lua/plugins/lualine.lua | 27 ++-- nvim/lua/plugins/neotree.lua | 18 +-- nvim/lua/plugins/telescope.lua | 5 +- nvim/lua/plugins/which-key.lua | 3 + 9 files changed, 153 insertions(+), 88 deletions(-) diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 1642ff2..b659896 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,7 +1,9 @@ { "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, "base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" }, - "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, + "bufferline.nvim": { "branch": "main", "commit": "2e3c8cc5a57ddd32f1edd2ffd2ccb10c09421f6c" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" }, "indent-blankline.nvim": { "branch": "master", "commit": "db926997af951da38e5004ec7b9fbdc480b48f5d" }, "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, @@ -11,9 +13,9 @@ "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" }, "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, - "nvim-lspconfig": { "branch": "master", "commit": "b21c166bbf337734f2a39734a905c1c3e298205c" }, - "nvim-treesitter": { "branch": "master", "commit": "0b8b78f9d08dc338a146eb4cd4bcbed8dd36a783" }, - "nvim-treesitter-context": { "branch": "master", "commit": "0f3332788e0bd37716fbd25f39120dcfd557c90f" }, + "nvim-lspconfig": { "branch": "master", "commit": "a7f0f9c18baa70a3970ea18f9984e03b6f6c2e8a" }, + "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, + "nvim-treesitter": { "branch": "master", "commit": "8724e7d028ba11604dde94dc4be63f70cccf16e0" }, "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" }, "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" }, diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index 50d7406..a12a224 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -19,3 +19,5 @@ vim.keymap.set('n', '', ':bnext', { noremap = true, silent = true }) vim.keymap.set("v", "<", "", ">gv") + +vim.keymap.set("n", "", ':nohlsearchlet @/=""', { noremap = true, silent = true}) diff --git a/nvim/lua/plugins/colorscheme.lua b/nvim/lua/plugins/colorscheme.lua index f434453..df9a970 100644 --- a/nvim/lua/plugins/colorscheme.lua +++ b/nvim/lua/plugins/colorscheme.lua @@ -4,7 +4,7 @@ return { config = function() vim.cmd("colorscheme base16-onedark") vim.cmd([[ - hi Normal guibg=NONE ctermbg=NONE + hi Normal guibg=NONE ctermbg=NONE guifg=#FFFFFF hi NonText guibg=NONE ctermbg=NONE hi LineNr guibg=NONE ctermbg=NONE hi CursorLine guibg=NONE ctermbg=NONE diff --git a/nvim/lua/plugins/indent-blankline.lua b/nvim/lua/plugins/indent-blankline.lua index 599c900..418ab88 100644 --- a/nvim/lua/plugins/indent-blankline.lua +++ b/nvim/lua/plugins/indent-blankline.lua @@ -7,8 +7,7 @@ return { --indent = { char = "⎸" }, indent = { char = "┆" }, scope = { - show_start = false, - show_end = false + enabled = false }, }) end, diff --git a/nvim/lua/plugins/lsp.lua b/nvim/lua/plugins/lsp.lua index c16d08c..d2ce6a1 100644 --- a/nvim/lua/plugins/lsp.lua +++ b/nvim/lua/plugins/lsp.lua @@ -3,7 +3,7 @@ return { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() - require('nvim-treesitter.configs').setup { + require('nvim-treesitter.configs').setup ({ ensure_installed = { "lua", "c", @@ -27,41 +27,34 @@ return { }, auto_install = true, sync_install = true, - } - end - }, - - { - "nvim-treesitter/nvim-treesitter-context", - config = function() - require("treesitter-context").setup({ - enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) - max_lines = 3, -- How many lines the window should span. Values <= 0 mean no limit. - min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit. - line_numbers = false, - multiline_threshold = 20, -- Maximum number of lines to collapse for a single context line - trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' - mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline' - -- Separator between context and content. Should be a single character string, like '-'. - -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. - separator = "=", - zindex = 20, -- The Z-index of the context window - on_attach = nil, -- (fun(buf: integer): boolean) rurn false to disable attaching - }) - end, - }, - - { - "neovim/nvim-lspconfig", - config = function() - local lsp = require('lspconfig') - lsp.lua_ls.setup{} - require("which-key").add({ - { "cl", ":LspInfo", desc = "LSP Info" }, + highlight = { + enable = true, + } }) end }, + --{ + -- "nvim-treesitter/nvim-treesitter-context", + -- dependencies = { "nvim-treesitter/nvim-treesitter" }, + -- config = function() + -- require("treesitter-context").setup({ + -- enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + -- max_lines = 3, -- How many lines the window should span. Values <= 0 mean no limit. + -- min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit. + -- line_numbers = false, + -- multiline_threshold = 20, -- Maximum number of lines to collapse for a single context line + -- trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' + -- mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline' + -- -- Separator between context and content. Should be a single character string, like '-'. + -- -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. + -- separator = "=", + -- zindex = 20, -- The Z-index of the context window + -- on_attach = nil, -- (fun(buf: integer): boolean) rurn false to disable attaching + -- }) + -- end, + --}, + { "williamboman/mason.nvim", config = function() @@ -71,43 +64,95 @@ return { { "williamboman/mason-lspconfig.nvim", + dependencies = { "williamboman/mason.nvim" }, config = function() require("mason-lspconfig").setup{} end }, { - "hrsh7th/nvim-cmp", - dependencies = { - { - "L3MON4D3/LuaSnip", - version = "v2.*", - build = "make install_jsregexp", - } + "hrsh7th/nvim-cmp", + dependencies = { + { + "L3MON4D3/LuaSnip", + version = "v2.*", + build = "make install_jsregexp", + }, + "saadparwaiz1/cmp_luasnip", + "hrsh7th/cmp-nvim-lsp" + }, + + config = function() + local cmp = require("cmp") + cmp.setup({ + enabled = function() + local context = require("cmp.config.context") + 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, + + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + + end + }, + + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm(), + [""] = cmp.mapping(function(fallback) + fallback() + end, { "i", "s" }), + }), + + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' } + }), + }) + end }, - config = function() - local cmp = require("cmp") - cmp.setup({ - enabled = function() - local context = require("cmp.config.context") - 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, - mapping = { - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm(), - [""] = cmp.mapping(function(fallback) - fallback() - end, { "i", "s" }), - } - }) - end + + { + "neovim/nvim-lspconfig", + config = function() + local lsp = require('lspconfig') + local navic = require('nvim-navic') + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local servers = require('mason-lspconfig').get_installed_servers() + + for _, server in ipairs(servers) do + lsp[server].setup { + capabilities = capabilities, + on_attach = function(client, bufnr) + if client.server_capabilities.documentSymbolProvider then + navic.attach(client,bufnr) + end + end, + } + end + lsp.lua_ls.setup{ + settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + } + } + require("which-key").add({ + { "cl", ":LspInfo", desc = "LSP Info" }, + }) + end }, } diff --git a/nvim/lua/plugins/lualine.lua b/nvim/lua/plugins/lualine.lua index c5f8a37..459ed04 100644 --- a/nvim/lua/plugins/lualine.lua +++ b/nvim/lua/plugins/lualine.lua @@ -1,14 +1,18 @@ return { { "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, + dependencies = { + "nvim-tree/nvim-web-devicons", + "SmiteshP/nvim-navic" + }, config = function() + local navic = require('nvim-navic') require("lualine").setup ({ options = { icons_enabled = true, theme = 'material', component_separators = { left = '>', right = '|'}, - section_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, disabled_filetypes = { statusline = {}, winbar = {}, @@ -25,23 +29,32 @@ return { sections = { lualine_a = {'mode'}, lualine_b = {'branch', 'diff', 'diagnostics'}, - lualine_c = {'filename'}, - lualine_x = {'encoding', 'fileformat', 'filetype'}, + lualine_c = { + {'filename'}, + { function() return require("nvim-navic").get_location() end, cond = function() + return require("nvim-navic").is_available() + end, + }, + }, + lualine_x = {'filetype'}, lualine_y = {'progress'}, lualine_z = {'location'} }, inactive_sections = { lualine_a = {}, lualine_b = {}, - lualine_c = {'filename'}, - lualine_x = {'location'}, + lualine_c = {}, + lualine_x = {}, lualine_y = {}, lualine_z = {} }, tabline = {}, winbar = {}, inactive_winbar = {}, - extensions = {} + extensions = { + 'lazy', + 'neo-tree', + } }) end } diff --git a/nvim/lua/plugins/neotree.lua b/nvim/lua/plugins/neotree.lua index a0671bc..e04584f 100644 --- a/nvim/lua/plugins/neotree.lua +++ b/nvim/lua/plugins/neotree.lua @@ -8,6 +8,7 @@ return { }, config = function() require("neo-tree").setup({ + enable_diagnostics = false, window = { position = "left", width = 20, @@ -19,7 +20,6 @@ return { local function toggle_neotree() local api = vim.api - local win = api.nvim_get_current_win() local bufs = api.nvim_list_bufs() for _, buf in ipairs(bufs) do @@ -37,14 +37,14 @@ return { { "e", toggle_neotree, desc = "File Explorer" } }) - vim.fn.sign_define("DiagnosticSignError", - {text = " ", texthl = "DiagnosticSignError"}) - vim.fn.sign_define("DiagnosticSignWarn", - {text = " ", texthl = "DiagnosticSignWarn"}) - vim.fn.sign_define("DiagnosticSignInfo", - {text = " ", texthl = "DiagnosticSignInfo"}) - vim.fn.sign_define("DiagnosticSignHint", - {text = "󰌵", texthl = "DiagnosticSignHint"}) + --vim.fn.sign_define("DiagnosticSignError", + -- {text = " ", texthl = "DiagnosticSignError"}) + --vim.fn.sign_define("DiagnosticSignWarn", + -- {text = " ", texthl = "DiagnosticSignWarn"}) + --vim.fn.sign_define("DiagnosticSignInfo", + -- {text = " ", texthl = "DiagnosticSignInfo"}) + --vim.fn.sign_define("DiagnosticSignHint", + -- {text = "󰌵", texthl = "DiagnosticSignHint"}) end, }, } diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua index e84cc63..835a392 100644 --- a/nvim/lua/plugins/telescope.lua +++ b/nvim/lua/plugins/telescope.lua @@ -34,10 +34,11 @@ return { -- Code { "gd", ":Telescope lsp_definitions", desc = "Go to Definition" }, + { "gr", ":Telescope lsp_references", desc = "Goto References" }, { "gi", ":Telescope lsp_implementations", desc = "Go to Implementations" }, { "gt", ":Telescope lsp_type_definitions", desc = "Go to Type Definition" }, - { "cv", ":Telescope treesitter", desc = "List function names & variables" }, - { "cd", ":Telescope diagnostics", desc = "Code diagnostics" }, + { "cv", ":Telescope treesitter", desc = "Function Names & Variables" }, + { "cd", ":Telescope diagnostics", desc = "Code Diagnostics" }, -- Git { "Gt", ":Telescope git_branches", desc = "Git Branches" }, diff --git a/nvim/lua/plugins/which-key.lua b/nvim/lua/plugins/which-key.lua index f515201..e49c10c 100644 --- a/nvim/lua/plugins/which-key.lua +++ b/nvim/lua/plugins/which-key.lua @@ -19,6 +19,9 @@ return { { "bd", ":bd", desc = "Delete Buffer" }, { "bD", "execute 'close' | execute 'bd!'", desc = "Delete Window & Buffer" }, + { "ca", vim.lsp.buf.code_action, desc = "Code Action" }, + { "cr", vim.lsp.buf.rename, desc = "Rename Variable" }, + { "G", group = "Git"}, { "f", group = "Files"}, { "c", group = "Code"},