aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-05-25 16:13:53 -0500
committerToby Vincent <tobyv13@gmail.com>2022-05-25 16:13:53 -0500
commit0abf56b79432385ac130ecd8a4f2ec39a4fae4f0 (patch)
tree2094876cb75cb7094cfec036773dcdb565240318
parent23979518a152f68469f29f5f5dc4f7919d7c8156 (diff)
feat(nvim): improve neovim configs
-rw-r--r--nvim/.config/nvim/lua/mappings.lua399
-rw-r--r--nvim/.config/nvim/lua/plugins.lua33
-rw-r--r--nvim/.config/nvim/lua/plugins/cmp.lua18
-rw-r--r--nvim/.config/nvim/lua/plugins/lsp-installer.lua129
-rw-r--r--nvim/.config/nvim/lua/plugins/lspconfig.lua39
-rw-r--r--nvim/.config/nvim/lua/plugins/null-ls.lua1
-rw-r--r--nvim/.config/nvim/lua/plugins/telescope.lua125
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