diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/lua/mappings.lua | 399 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins.lua | 33 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/cmp.lua | 18 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/lsp-installer.lua | 129 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/lspconfig.lua | 39 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/null-ls.lua | 1 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/telescope.lua | 125 |
7 files changed, 284 insertions, 460 deletions
diff --git a/nvim/.config/nvim/lua/mappings.lua b/nvim/.config/nvim/lua/mappings.lua index 16cd958..b2d398a 100644 --- a/nvim/.config/nvim/lua/mappings.lua +++ b/nvim/.config/nvim/lua/mappings.lua @@ -1,257 +1,170 @@ -local status_ok, which_key = pcall(require, "which-key") -if not status_ok then - return -end - -local opts = { - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps -} - local mappings = { - -- Ctrl maps - ["<C-s>"] = { "<cmd>w!<CR>", "Save" }, - ["<C-b>"] = { "<Cmd>Neotree focus toggle<CR>", "Explorer" }, -} - -local nopts = { - mode = "n", -- NORMAL mode - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps -} - -local nmappings = { - -- Ctrl maps - ["<C-/>"] = { "<cmd>lua require('Comment.api').toggle_current_linewise()<CR>", "Comment" }, - - -- Prefix "<leader>" - ["<leader>"] = { - a = { "<cmd>Alpha<cr>", "Alpha" }, - f = { "<cmd>Telescope buffers show_all_buffers=true theme=get_dropdown<cr>", "Buffers" }, - c = { "<cmd>Bdelete!<CR>", "Close Buffer" }, - q = { "<cmd>q!<CR>", "Quit" }, - R = { "<cmd>lua require('renamer').rename()<cr>", "Rename" }, - w = { "<cmd>w!<CR>", "Save" }, - W = { ":set wrap! linebreak!<CR>", "Toggle Line Wrap" }, - z = { "<cmd>ZenMode<cr>", "Zen" }, - ["/"] = { "<cmd>lua require('Comment.api').toggle_current_linewise()<CR>", "Comment" }, - - f = { - name = "Find", - b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" }, - c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" }, - C = { "<cmd>Telescope commands<cr>", "Commands" }, - e = { "<cmd>Telescope frecency theme=get_dropdown<cr>", "Frecency" }, - f = { "<cmd>Telescope find_files theme=get_dropdown<cr>", "Find files" }, - g = { "<cmd>Telescope live_grep theme=ivy<cr>", "Find Text" }, - h = { "<cmd>Telescope help_tags<cr>", "Help" }, - i = { "<cmd>lua require('telescope').extensions.media_files.media_files()<cr>", "Media" }, - k = { "<cmd>Telescope keymaps<cr>", "Keymaps" }, - l = { "<cmd>Telescope resume<cr>", "Last Search" }, - m = { "<cmd>Telescope man_pages<cr>", "Man Pages" }, - r = { "<cmd>Telescope oldfiles<cr>", "Recent File" }, - R = { "<cmd>Telescope registers<cr>", "Registers" }, - s = { "<cmd>Telescope session-lens search_session<cr>", "Sessions" }, - t = { "<cmd>Telescope buffers show_all_buffers=true theme=get_dropdown<cr>", "Buffers" }, - }, - - g = { - name = "Git", - b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" }, - c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" }, - d = { "<cmd>Gitsigns diffthis HEAD<cr>", "Diff" }, - g = { "<cmd>LazyGit<CR>", "Lazygit" }, - j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" }, - k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" }, - l = { "<cmd>GitBlameToggle<cr>", "Blame" }, - o = { "<cmd>Telescope git_status<cr>", "Open changed file" }, - p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" }, - r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" }, - R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" }, - s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" }, - u = { "<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>", "Undo Stage Hunk" }, - w = { - name = "Worktree", - s = { [[<Cmd>lua require('telescope').extensions.git_worktree.git_worktrees()<CR>]], "Switch" }, - c = { [[<Cmd>lua require('telescope').extensions.git_worktree.create_git_worktree()<CR>]], "Create" }, - }, - }, - - l = { - name = "LSP", - a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" }, - d = { "<cmd>TroubleToggle<cr>", "Diagnostics" }, - f = { "<cmd>lua vim.lsp.buf.formatting()<cr>", "Format" }, - -- F = { "<cmd>LspToggleAutoFormat<cr>", "Toggle Autoformat" }, - g = { - name = "Goto", - d = { "<cmd>lua vim.lsp.buf.definition()<CR>", "Definition" }, - D = { "<cmd>lua vim.lsp.buf.declaration()<CR>", "Declaration" }, - i = { "<cmd>lua vim.lsp.buf.implementation()<CR>", "Implementation" }, - r = { "<cmd>lua vim.lsp.buf.references()<CR>", "References" }, + { + -- NORMAL mode + opts = {}, + mappings = { + ["<C-s>"] = { "<cmd>w!<CR>", "Save" }, + ["<C-/>"] = { "<cmd>lua require('Comment.api').toggle_current_linewise()<CR>", "Comment" }, + ["<leader>"] = { + c = { "<cmd>Bdelete!<CR>", "Close Buffer" }, + q = { "<cmd>q!<CR>", "Quit" }, + R = { "<cmd>lua require('renamer').rename()<cr>", "Rename" }, + w = { "<cmd>w!<CR>", "Save" }, + W = { ":set wrap! linebreak!<CR>", "Toggle Line Wrap" }, + z = { "<cmd>ZenMode<cr>", "Zen" }, + ["/"] = { "<cmd>lua require('Comment.api').toggle_current_linewise()<CR>", "Comment" }, + + f = { + name = "Find", + b = { "<cmd>Telescope buffers show_all_buffers=true<cr>", "Buffers" }, + c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" }, + C = { "<cmd>Telescope commands<cr>", "Commands" }, + e = { "<cmd>Telescope frecency theme=get_dropdown<cr>", "Frecency" }, + f = { "<cmd>Telescope find_files theme=get_dropdown<cr>", "Find files" }, + g = { "<cmd>Telescope live_grep theme=ivy<cr>", "Find Text" }, + h = { "<cmd>Telescope help_tags<cr>", "Help" }, + i = { "<cmd>lua require('telescope').extensions.media_files.media_files()<cr>", "Media" }, + k = { "<cmd>Telescope keymaps<cr>", "Keymaps" }, + l = { "<cmd>Telescope resume<cr>", "Last Search" }, + m = { "<cmd>Telescope man_pages<cr>", "Man Pages" }, + r = { "<cmd>Telescope oldfiles<cr>", "Recent File" }, + R = { "<cmd>Telescope registers<cr>", "Registers" }, + s = { "<cmd>Telescope session-lens search_session<cr>", "Sessions" }, + }, + + g = { + name = "Git", + b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" }, + c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" }, + d = { "<cmd>Gitsigns diffthis HEAD<cr>", "Diff" }, + g = { "<cmd>LazyGit<CR>", "Lazygit" }, + j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" }, + k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" }, + l = { "<cmd>GitBlameToggle<cr>", "Blame" }, + o = { "<cmd>Telescope git_status<cr>", "Open changed file" }, + p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" }, + r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" }, + R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" }, + s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" }, + u = { "<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>", "Undo Stage Hunk" }, + w = { + name = "Worktree", + s = { + [[<Cmd>lua require('telescope').extensions.git_worktree.git_worktrees()<CR>]], + "Switch", + }, + c = { + [[<Cmd>lua require('telescope').extensions.git_worktree.create_git_worktree()<CR>]], + "Create", + }, + }, + }, + + l = { + name = "LSP", + a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" }, + d = { "<cmd>TroubleToggle document_diagnostics<cr>", "Document Diagnostics" }, + D = { "<cmd>TroubleToggle workspace_diagnostics<cr>", "Workspace Diagnostics" }, + f = { "<cmd>lua vim.lsp.buf.formatting()<cr>", "Format" }, + -- F = { "<cmd>LspToggleAutoFormat<cr>", "Toggle Autoformat" }, + g = { + name = "Goto", + d = { "<cmd>lua vim.lsp.buf.definition()<CR>", "Definition" }, + D = { "<cmd>lua vim.lsp.buf.declaration()<CR>", "Declaration" }, + i = { "<cmd>lua vim.lsp.buf.implementation()<CR>", "Implementation" }, + r = { "<cmd>lua vim.lsp.buf.references()<CR>", "References" }, + }, + h = { "<Cmd>lua vim.lsp.buf.hover()<CR>", "Hover" }, + H = { "<Cmd>lua vim.lsp.buf.signature_help()<CR>", "Signature Help" }, + i = { "<cmd>LspInfo<cr>", "Info" }, + I = { "<cmd>LspInstallInfo<cr>", "Installer Info" }, + j = { "<cmd>lua vim.diagnostic.goto_next({buffer=0})<CR>", "Next Diagnostic" }, + k = { "<cmd>lua vim.diagnostic.goto_prev({buffer=0})<cr>", "Prev Diagnostic" }, + l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" }, + o = { "<cmd>SymbolsOutline<cr>", "Outline" }, + q = { "<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>", "Quickfix" }, + r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" }, + R = { "<cmd>TroubleToggle lsp_references<cr>", "References" }, + s = { "<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols" }, + S = { "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", "Workspace Symbols" }, + w = { "<cmd>Telescope lsp_workspace_diagnostics<cr>", "Workspace Diagnostics" }, + }, + m = { + name = "Markers", + a = { "<cmd>BookmarkAnnotate<cr>", "Annotate" }, + c = { "<cmd>BookmarkClear<cr>", "Clear" }, + h = { '<cmd>lua require("harpoon.mark").add_file()<cr>', "Harpoon" }, + j = { "<cmd>BookmarkNext<cr>", "Next" }, + k = { "<cmd>BookmarkPrev<cr>", "Prev" }, + m = { "<cmd>BookmarkToggle<cr>", "Toggle" }, + s = { + "<cmd>lua require('telescope').extensions.vim_bookmarks.all({ hide_filename=false, prompt_title=\"bookmarks\", shorten_path=false })<cr>", + "Show", + }, + u = { '<cmd>lua require("harpoon.ui").toggle_quick_menu()<cr>', "Harpoon UI" }, + x = { "<cmd>BookmarkClearAll<cr>", "Clear All" }, + }, + p = { + name = "Packer", + c = { "<cmd>PackerCompile<cr>", "Compile" }, + C = { "<cmd>PackerClean<cr>", "Clean" }, + i = { "<cmd>PackerInstall<cr>", "Install" }, + s = { "<cmd>PackerSync<cr>", "Sync" }, + S = { "<cmd>PackerStatus<cr>", "Status" }, + u = { "<cmd>PackerUpdate<cr>", "Update" }, + }, + r = { + name = "Replace", + f = { "<cmd>lua require('spectre').open_file_search()<cr>", "Replace Buffer" }, + r = { "<cmd>lua require('spectre').open()<cr>", "Replace" }, + w = { "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", "Replace Word" }, + }, }, - h = { "<Cmd>lua vim.lsp.buf.hover()<CR>", "Hover" }, - H = { "<Cmd>lua vim.lsp.buf.signature_help()<CR>", "Signature Help" }, - i = { "<cmd>LspInfo<cr>", "Info" }, - I = { "<cmd>LspInstallInfo<cr>", "Installer Info" }, - j = { "<cmd>lua vim.diagnostic.goto_next({buffer=0})<CR>", "Next Diagnostic" }, - k = { "<cmd>lua vim.diagnostic.goto_prev({buffer=0})<cr>", "Prev Diagnostic" }, - l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" }, - o = { "<cmd>SymbolsOutline<cr>", "Outline" }, - q = { "<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>", "Quickfix" }, - r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" }, - R = { "<cmd>TroubleToggle lsp_references<cr>", "References" }, - s = { "<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols" }, - S = { "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", "Workspace Symbols" }, - w = { "<cmd>Telescope lsp_workspace_diagnostics<cr>", "Workspace Diagnostics" }, - }, - - p = { - name = "Packer", - c = { "<cmd>PackerCompile<cr>", "Compile" }, - C = { "<cmd>PackerClean<cr>", "Clean" }, - i = { "<cmd>PackerInstall<cr>", "Install" }, - s = { "<cmd>PackerSync<cr>", "Sync" }, - S = { "<cmd>PackerStatus<cr>", "Status" }, - u = { "<cmd>PackerUpdate<cr>", "Update" }, }, - - r = { - name = "Replace", - f = { "<cmd>lua require('spectre').open_file_search()<cr>", "Replace Buffer" }, - r = { "<cmd>lua require('spectre').open()<cr>", "Replace" }, - w = { "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", "Replace Word" }, - }, - - s = { - name = "Surround", - ["."] = { "<cmd>lua require('surround').repeat_last()<cr>", "Repeat" }, - a = { "<cmd>lua require('surround').surround_add(true)<cr>", "Add" }, - b = { "<cmd>lua require('surround').toggle_brackets()<cr>", "Brackets" }, - d = { "<cmd>lua require('surround').surround_delete()<cr>", "Delete" }, - q = { "<cmd>lua require('surround').toggle_quotes()<cr>", "Quotes" }, - r = { "<cmd>lua require('surround').surround_replace()<cr>", "Replace" }, - }, - - t = { - name = "Terminal", - ["1"] = { ":1ToggleTerm<cr>", "1" }, - ["2"] = { ":2ToggleTerm<cr>", "2" }, - ["3"] = { ":3ToggleTerm<cr>", "3" }, - ["4"] = { ":4ToggleTerm<cr>", "4" }, - f = { "<cmd>ToggleTerm direction=float<cr>", "Float" }, - h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" }, - v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" }, + }, + { + -- VISUAL mode + opts = { + mode = "v", }, + mappings = { + -- Ctrl maps + ["<C-/>"] = { + "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", + "Comment", + }, - T = { - name = "Treesitter", - h = { "<cmd>TSHighlightCapturesUnderCursor<cr>", "Highlight" }, - p = { "<cmd>TSPlaygroundToggle<cr>", "Playground" }, + -- Prefix "<leader>" + ["<leader>"] = { + ["/"] = { + "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", + "Comment", + }, + }, }, }, - -- Prefix "m" - m = { - a = { "<cmd>BookmarkAnnotate<cr>", "Annotate" }, - c = { "<cmd>BookmarkClear<cr>", "Clear" }, - h = { '<cmd>lua require("harpoon.mark").add_file()<cr>', "Harpoon" }, - j = { "<cmd>BookmarkNext<cr>", "Next" }, - k = { "<cmd>BookmarkPrev<cr>", "Prev" }, - m = { "<cmd>BookmarkToggle<cr>", "Toggle" }, - s = { - "<cmd>lua require('telescope').extensions.vim_bookmarks.all({ hide_filename=false, prompt_title=\"bookmarks\", shorten_path=false })<cr>", - "Show", + { + -- INSERT mode + opts = { + mode = "i", + }, + mappings = { + ["<C-h>"] = { "<left>", "Left" }, + ["<C-j>"] = { "<up>", "Up" }, + ["<C-k>"] = { "<down>", "Down" }, + ["<C-l>"] = { "<right>", "Right" }, }, - u = { '<cmd>lua require("harpoon.ui").toggle_quick_menu()<cr>', "Harpoon UI" }, - x = { "<cmd>BookmarkClearAll<cr>", "Clear All" }, - }, -} - -local vopts = { - mode = "v", -- VISUAL mode - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps -} - -local vmappings = { - -- Ctrl maps - ["<C-/>"] = { "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", "Comment" }, - - -- Prefix "<leader>" - ["<leader>"] = { - ["/"] = { "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", "Comment" }, }, } -local iopts = { - mode = "i", -- INSERT mode - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps -} - -local imappings = { - -- Ctrl maps - ["<C-h>"] = { "<left>", "Left" }, - ["<C-j>"] = { "<up>", "Up" }, - ["<C-k>"] = { "<down>", "Down" }, - ["<C-l>"] = { "<right>", "Right" }, -} - -which_key.register(mappings, opts) -which_key.register(nmappings, nopts) -which_key.register(vmappings, vopts) -which_key.register(imappings, iopts) +local ok, legendary = pcall(require, "legendary") +if ok then + legendary.setup() +end -function WhichKeyNeoTree(bufNumber) - local status_ok, which_key = pcall(require, "which-key") - if not status_ok then - return +local ok, which_key = pcall(require, "which-key") +if ok then + for i, m in ipairs(mappings) do + which_key.register(m.mappings, m.opts) end - - vim.g.maplocalleader = " " - vim.g.mapleader = "" - - local nopts = { - mode = "n", - buffer = vim.api.nvim_get_current_buf(), - silent = true, - noremap = true, - nowait = true, - } - - local nmappings = { - ["<2-LeftMouse>"] = { "<cmd> lua require('neo-tree').open()<cr>", "Open" }, - ["<cr>"] = { "<cmd> lua require('neo-tree').open()<cr>", "Open" }, - ["<localleader>"] = { - S = { "<cmd> lua require('neo-tree').open_split()<cr>", "HSplit" }, - s = { "<cmd> lua require('neo-tree').open_vsplit()<cr>", "VSplit" }, - t = { "<cmd> lua require('neo-tree').open_tabnew()<cr>", "New Tab" }, - C = { "<cmd> lua require('neo-tree').close_node()<cr>", "Collapse" }, - z = { "<cmd> lua require('neo-tree').close_all_nodes()<cr>", "Collapse All" }, - R = { "<cmd> lua require('neo-tree').refresh()<cr>", "Refresh" }, - a = { "<cmd> lua require('neo-tree').add()<cr>", "Add" }, - A = { "<cmd> lua require('neo-tree').add_directory()<cr>", "Add Dir" }, - d = { "<cmd> lua require('neo-tree').delete()<cr>", "Delete" }, - r = { "<cmd> lua require('neo-tree').rename()<cr>", "Rename" }, - y = { "<cmd> lua require('neo-tree').copy_to_clipboard()<cr>", "Copy" }, - x = { "<cmd> lua require('neo-tree').cut_to_clipboard()<cr>", "Cut" }, - p = { "<cmd> lua require('neo-tree').paste_from_clipboard()<cr>", "Paste" }, - c = { "<cmd> lua require('neo-tree').copy()<cr>", "Copy To" }, - m = { "<cmd> lua require('neo-tree').move()<cr>", "Move To" }, - q = { "<cmd> lua require('neo-tree').close_window()<cr>", "Close" }, - }, - } - which_key.register(nmappings, nopts) end - -local bufNo = vim.api.nvim_get_current_buf() - -vim.cmd("autocmd FileType neo-tree lua WhichKeyNeoTree(" .. bufNo .. ")") diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 9999317..2b30884 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -81,11 +81,11 @@ return packer.startup(function(use) "neovim/nvim-lspconfig", config = [[require('plugins/lspconfig')]], }) - - use({ - "williamboman/nvim-lsp-installer", - config = [[require('plugins/lsp-installer')]], - }) + use({ "lukas-reineke/virt-column.nvim", config = [[require("virt-column").setup()]] }) + -- use({ + -- "williamboman/nvim-lsp-installer", + -- config = [[require('plugins/lsp-installer')]], + -- }) use("nvim-lua/lsp_extensions.nvim") use("simrat39/rust-tools.nvim") @@ -121,7 +121,7 @@ return packer.startup(function(use) { "nvim-telescope/telescope-fzf-native.nvim", run = "make" }, { "nvim-telescope/telescope-frecency.nvim", requires = "tami5/sqlite.lua" }, }, - config = [[require('plugins/telescope')]], + config = [[require('plugins/telescope').setup()]], }) use({ @@ -170,7 +170,6 @@ return packer.startup(function(use) "Gpush", "Gpull", }, - disable = true, }) use({ @@ -262,16 +261,16 @@ return packer.startup(function(use) use("moll/vim-bbye") use("SmiteshP/nvim-gps") - use({ - "nvim-neo-tree/neo-tree.nvim", - branch = "v2.x", - requires = { - "nvim-lua/plenary.nvim", - "kyazdani42/nvim-web-devicons", - "MunifTanjim/nui.nvim", - }, - config = [[require('plugins/neo-tree')]], - }) + -- use({ + -- "nvim-neo-tree/neo-tree.nvim", + -- branch = "v2.x", + -- requires = { + -- "nvim-lua/plenary.nvim", + -- "kyazdani42/nvim-web-devicons", + -- "MunifTanjim/nui.nvim", + -- }, + -- config = [[require('plugins/neo-tree')]], + -- }) -- use({ -- "kyazdani42/nvim-tree.lua", diff --git a/nvim/.config/nvim/lua/plugins/cmp.lua b/nvim/.config/nvim/lua/plugins/cmp.lua index 63a3320..7631da6 100644 --- a/nvim/.config/nvim/lua/plugins/cmp.lua +++ b/nvim/.config/nvim/lua/plugins/cmp.lua @@ -3,14 +3,18 @@ if not status_ok then return end -local get_enabled = function() - -- disable completion in comments +enabled = function() local context = require("cmp.config.context") - -- keep command mode completion enabled when cursor is in a comment - if vim.api.nvim_get_mode().mode == "c" then + + if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then + -- disable completion in prompts + return false + elseif vim.api.nvim_get_mode().mode == "c" then + -- keep command mode completion enabled when cursor is in a comment return true else - return not context.in_treesitter_capture("comment") and not context.in_syntax_group("Comment") + -- disable completion in comments + return not (context.in_treesitter_capture("comment") == true or context.in_syntax_group("Comment")) end end @@ -19,7 +23,7 @@ local get_snippets = function(args) end cmp.setup({ - enabled = get_enabled, + enabled = enabled, completion = { completeopt = "menu,menuone,noinsert", }, @@ -42,7 +46,7 @@ cmp.setup({ }), }, formatting = { - format = lspkind.cmp_format({ + format = require("lspkind").cmp_format({ mode = "symbol_text", menu = { nvim_lsp = "[LSP]", diff --git a/nvim/.config/nvim/lua/plugins/lsp-installer.lua b/nvim/.config/nvim/lua/plugins/lsp-installer.lua deleted file mode 100644 index 9ebe40a..0000000 --- a/nvim/.config/nvim/lua/plugins/lsp-installer.lua +++ /dev/null @@ -1,129 +0,0 @@ -local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer") -if not status_ok then - print("Failed to require nvim-lsp-installer") -end - --- Provide settings first! -lsp_installer.settings({ - ui = { - icons = { - server_installed = "✓", - server_pending = "➜", - server_uninstalled = "✗", - }, - }, - - -- Limit for the maximum amount of servers to be installed at the same time. Once this limit is reached, any further - -- servers that are requested to be installed will be put in a queue. - max_concurrent_installers = 4, -}) - ---------------------------------------------------- -local enhance_server_opts = { - ["sumneko_lua"] = function(opts) - opts.on_attach = function(client) - client.resolved_capabilities.document_formatting = false - client.resolved_capabilities.document_range_formatting = false - end - end, - ["eslintls"] = function(opts) - opts.settings = { - format = { - enable = true, - }, - } - end, - ["gopls"] = function(opts) - opts.cmd = { - "gopls", - "serve", - } - opts.settings = { - gopls = { - staticcheck = true, - analyses = { - unusedparams = true, - }, - }, - } - end, -} - -local function make_server_ready(attach) - lsp_installer.on_server_ready(function(server) - -- Specify the default options which we'll use to setup all servers - local opts = { - on_attach = on_attach, - } - if server.name == "rust_analyzer" then - local rustopts = { - tools = { - autoSetHints = true, - hover_with_actions = false, - inlay_hints = { - show_parameter_hints = true, - parameter_hints_prefix = "", - other_hints_prefix = "", - }, - }, - server = vim.tbl_deep_extend("force", server:get_default_options(), opts, { - settings = { - ["rust-analyzer"] = { - completion = { - postfix = { - enable = false, - }, - }, - checkOnSave = { - command = "clippy", - }, - }, - }, - }), - } - require("rust-tools").setup(rustopts) - server:attach_buffers() - else - if enhance_server_opts[server.name] then - -- Enhance the default opts with the server-specific ones - enhance_server_opts[server.name](opts) - end - -- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart) - server:setup(opts) - end - - vim.cmd([[ do User LspAttachBuffers ]]) - end) -end ---------------------------------------------------- - ---------------------------------------------------- -local servers = { - "rust_analyzer", - "tsserver", -- for javascript - "jsonls", -- for json - "texlab", -- for latex - "ltex", - "sqlls", -- for sql - "pylsp", -- for python - "sumneko_lua", -- for lua - "gopls", -- for go - "yamlls", - "bashls", - "dockerls", -} - --- setup the LS -require("plugins.lspconfig") -make_server_ready(On_attach) -- LSP mappings - --- install the LS -for _, name in pairs(servers) do - local server_is_found, server = lsp_installer.get_server(name) - if server_is_found then - if not server:is_installed() then - print("Installing " .. name) - server:install() - end - end -end diff --git a/nvim/.config/nvim/lua/plugins/lspconfig.lua b/nvim/.config/nvim/lua/plugins/lspconfig.lua index 136cf43..4fba148 100644 --- a/nvim/.config/nvim/lua/plugins/lspconfig.lua +++ b/nvim/.config/nvim/lua/plugins/lspconfig.lua @@ -13,25 +13,13 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagn virtual_text = { true, spacing = 6, - severity_limit = "Error", -- Only show virtual text on error + severity_limit = "Error", -- Only show virtual text on error }, }) local function config(_config) return vim.tbl_deep_extend("force", { capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()), - on_attach = function() - Nnoremap("gd", ":lua vim.lsp.buf.definition()<CR>") - Nnoremap("K", ":lua vim.lsp.buf.hover()<CR>") - Nnoremap("<leader>vws", ":lua vim.lsp.buf.workspace_symbol()<CR>") - Nnoremap("<leader>vd", ":lua vim.diagnostic.open_float()<CR>") - Nnoremap("[d", ":lua vim.lsp.diagnostic.goto_next()<CR>") - Nnoremap("]d", ":lua vim.lsp.diagnostic.goto_prev()<CR>") - Nnoremap("<leader>vca", ":lua vim.lsp.buf.code_action()<CR>") - Nnoremap("<leader>vrr", ":lua vim.lsp.buf.references()<CR>") - Nnoremap("<leader>vrn", ":lua vim.lsp.buf.rename()<CR>") - Inoremap("<C-h>", "<cmd>lua vim.lsp.buf.signature_help()<CR>") - end, }, _config or {}) end @@ -51,6 +39,29 @@ lspconfig.gopls.setup(config({ }, })) +lspconfig.sumneko_lua.setup({ + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + format = { + enable = false, + -- Put format options here + -- NOTE: the value should be STRING!! + -- defaultConfig = { + -- indent_style = "space", + -- indent_size = "2", + -- }, + }, + }, + }, + on_attach = function(client) + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + end, +}) + local rustopts = { tools = { autoSetHints = true, @@ -68,7 +79,7 @@ local rustopts = { settings = { ["rust-analyzer"] = { cargo = { - allFeatures = "true", + allFeatures = true, }, checkOnSave = { command = "clippy", diff --git a/nvim/.config/nvim/lua/plugins/null-ls.lua b/nvim/.config/nvim/lua/plugins/null-ls.lua index f1c70e0..aec9e8c 100644 --- a/nvim/.config/nvim/lua/plugins/null-ls.lua +++ b/nvim/.config/nvim/lua/plugins/null-ls.lua @@ -10,7 +10,6 @@ local formatting = null_ls.builtins.formatting null_ls.setup({ sources = { - require("null-ls").builtins.formatting.stylua, -- Code Actions code_actions.gitsigns, code_actions.shellcheck, diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua index 24c8289..6e272ec 100644 --- a/nvim/.config/nvim/lua/plugins/telescope.lua +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -1,55 +1,82 @@ -local status_ok, telescope = pcall(require, "telescope") -if not status_ok then - return -end +local M = {} -telescope.setup({ - defaults = { - file_ignore_patterns = { "node_modules", ".git", "dist" }, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--hidden", - "--iglob", - "!yarn.lock", - "--smart-case", - "-u", - }, - layout_strategy = "flex", - scroll_strategy = "cycle", - }, - extensions = { - project = { - base_dirs = { - { path = "~/src", max_depth = 1 }, +M.setup = function() + local status_ok, telescope = pcall(require, "telescope") + if not status_ok then + return + end + + local actions = require("telescope.actions") + + telescope.setup({ + defaults = { + mappings = { + i = { + ["<esc>"] = actions.close, + ["<C-h>"] = "which_key", + }, }, - hidden_files = true, - }, - fzf = { - fuzzy = true, - override_generic_sorter = true, - override_file_sorter = true, - case_mode = "smart_case", + file_ignore_patterns = { "node_modules", ".git", "dist" }, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--hidden", + "--smart-case", + "--trim", + "-u", + }, + layout_strategy = "flex", + scroll_strategy = "cycle", }, - }, - pickers = { - find_files = { - find_command = { "rg", "--files", "--hidden" }, + extensions = { + project = { + base_dirs = { + { path = "~/src", max_depth = 1 }, + }, + hidden_files = true, + }, + fzf = { + fuzzy = true, + override_generic_sorter = true, + override_file_sorter = true, + case_mode = "smart_case", + }, + frecency = { + default_workspace = "CWD", + workspaces = { + ["src"] = "~/src", + }, + }, }, - lsp_references = { theme = "dropdown" }, - lsp_code_actions = { theme = "dropdown" }, - lsp_definitions = { theme = "dropdown" }, - lsp_implementations = { theme = "dropdown" }, - buffers = { - sort_lastused = true, + pickers = { + find_files = { + find_command = { "rg", "--files", "--hidden" }, + }, + lsp_references = { theme = "dropdown" }, + lsp_code_actions = { theme = "dropdown" }, + lsp_definitions = { theme = "dropdown" }, + lsp_implementations = { theme = "dropdown" }, + buffers = { + sort_lastused = true, + }, }, - }, -}) + }) + + -- Extensions + telescope.load_extension("frecency") + telescope.load_extension("fzf") +end + +M.project_files = function() + local opts = {} -- define here if you want to define something + local ok = pcall(require("telescope.builtin").git_files, opts) + if not ok then + require("telescope.builtin").find_files(opts) + end +end --- Extensions -telescope.load_extension("frecency") -telescope.load_extension("fzf") +return M |