From 636d893c01ecb123f05e1e54618eca7a7d0e5f80 Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Tue, 14 Dec 2021 18:52:22 -0500 Subject: add alpha --- init.lua | 1 + lua/user/alpha.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ lua/user/plugins.lua | 2 ++ 3 files changed, 45 insertions(+) create mode 100644 lua/user/alpha.lua diff --git a/init.lua b/init.lua index ed16382..260ae33 100644 --- a/init.lua +++ b/init.lua @@ -16,3 +16,4 @@ require "user.toggleterm" require "user.project" require "user.impatient" require "user.indentline" +require "user.alpha" diff --git a/lua/user/alpha.lua b/lua/user/alpha.lua new file mode 100644 index 0000000..249a166 --- /dev/null +++ b/lua/user/alpha.lua @@ -0,0 +1,42 @@ +local status_ok, alpha = pcall(require, "alpha") +if not status_ok then + return +end + +local dashboard = require("alpha.themes.dashboard") +dashboard.section.header.val = { + [[ __ ]], + [[ ___ ___ ___ __ __ /\_\ ___ ___ ]], + [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]], + [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]], + [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]], + [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], +} +dashboard.section.buttons.val = { + dashboard.button("f", " Find file", ":Telescope find_files "), + dashboard.button("e", " New file", ":ene startinsert "), + dashboard.button("p", " Find project", ":Telescope projects "), + dashboard.button("r", " Recently used files", ":Telescope oldfiles "), + dashboard.button("t", " Find text", ":Telescope live_grep "), + dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.lua "), + dashboard.button("q", " Quit Neovim", ":qa"), +} + +local function footer() +-- NOTE: requires the fortune-mod package to work + -- local handle = io.popen("fortune") + -- local fortune = handle:read("*a") + -- handle:close() + -- return fortune + return "chrisatmachine.com" +end + +dashboard.section.footer.val = footer() + +dashboard.section.footer.opts.hl = "Type" +dashboard.section.header.opts.hl = "Include" +dashboard.section.buttons.opts.hl = "Keyword" + +dashboard.opts.opts.noautocmd = true +-- vim.cmd([[autocmd User AlphaReady echo 'ready']]) +alpha.setup(dashboard.opts) diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua index 58166df..183b805 100644 --- a/lua/user/plugins.lua +++ b/lua/user/plugins.lua @@ -55,6 +55,8 @@ return packer.startup(function(use) use "ahmedkhalf/project.nvim" use 'lewis6991/impatient.nvim' use "lukas-reineke/indent-blankline.nvim" + use 'goolord/alpha-nvim' + use "antoinemadec/FixCursorHold.nvim" -- This is needed to fix lsp doc highlight -- Colorschemes -- use "lunarvim/colorschemes" -- A bunch of colorschemes you can try out -- cgit v1.2.3 From 91e22c4076ae58cec23ac5a9b2ea7181dd8f988a Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Tue, 14 Dec 2021 18:58:04 -0500 Subject: add whichkey add whickey fix t fix close --- init.lua | 1 + lua/user/bufferline.lua | 8 +-- lua/user/keymaps.lua | 6 -- lua/user/lualine.lua | 2 +- lua/user/options.lua | 2 +- lua/user/plugins.lua | 7 +- lua/user/whichkey.lua | 187 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 198 insertions(+), 15 deletions(-) create mode 100644 lua/user/whichkey.lua diff --git a/init.lua b/init.lua index 260ae33..7dc5c05 100644 --- a/init.lua +++ b/init.lua @@ -17,3 +17,4 @@ require "user.project" require "user.impatient" require "user.indentline" require "user.alpha" +require "user.whichkey" diff --git a/lua/user/bufferline.lua b/lua/user/bufferline.lua index 81015c5..7d98cf0 100644 --- a/lua/user/bufferline.lua +++ b/lua/user/bufferline.lua @@ -92,12 +92,12 @@ bufferline.setup { }, close_button = { - guifg = { attribute = "fg", highlight = "TabLineSel" }, - guibg = { attribute = "bg", highlight = "TabLineSel" }, + guifg = { attribute = "fg", highlight = "TabLine" }, + guibg = { attribute = "bg", highlight = "TabLine" }, }, close_button_visible = { - guifg = { attribute = "fg", highlight = "TabLineSel" }, - guibg = { attribute = "bg", highlight = "TabLineSel" }, + guifg = { attribute = "fg", highlight = "TabLine" }, + guibg = { attribute = "bg", highlight = "TabLine" }, }, -- close_button_selected = { -- guifg = {attribute='fg',highlight='TabLineSel'}, diff --git a/lua/user/keymaps.lua b/lua/user/keymaps.lua index 5b07011..32b6a04 100644 --- a/lua/user/keymaps.lua +++ b/lua/user/keymaps.lua @@ -67,9 +67,3 @@ keymap("x", "", ":move '<-2gv-gv", opts) -- keymap("t", "", "k", term_opts) -- keymap("t", "", "l", term_opts) --- Comment -keymap("n", "/", "lua require('Comment').toggle()", opts) -keymap("v", "/", ":lua require(\"Comment.api\").gc(vim.fn.visualmode())", opts) - --- Nvimtree -keymap("n", "e", ":NvimTreeToggle", opts) diff --git a/lua/user/lualine.lua b/lua/user/lualine.lua index 50484cb..3318ecd 100644 --- a/lua/user/lualine.lua +++ b/lua/user/lualine.lua @@ -68,7 +68,7 @@ lualine.setup({ theme = "auto", component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, - disabled_filetypes = { "dashboard", "NvimTree", "Outline" }, + disabled_filetypes = { "alpha", "dashboard", "NvimTree", "Outline" }, always_divide_middle = true, }, sections = { diff --git a/lua/user/options.lua b/lua/user/options.lua index 6b38e23..799aa9d 100644 --- a/lua/user/options.lua +++ b/lua/user/options.lua @@ -17,7 +17,7 @@ local options = { splitright = true, -- force all vertical splits to go to the right of current window swapfile = false, -- creates a swapfile -- termguicolors = true, -- set term gui colors (most terminals support this) - timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds) + timeoutlen = 100, -- time to wait for a mapped sequence to complete (in milliseconds) undofile = true, -- enable persistent undo updatetime = 300, -- faster completion (4000ms default) writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua index 183b805..2aa1f93 100644 --- a/lua/user/plugins.lua +++ b/lua/user/plugins.lua @@ -50,13 +50,14 @@ return packer.startup(function(use) use "kyazdani42/nvim-tree.lua" use "akinsho/bufferline.nvim" use "moll/vim-bbye" - use 'nvim-lualine/lualine.nvim' + use "nvim-lualine/lualine.nvim" use "akinsho/toggleterm.nvim" use "ahmedkhalf/project.nvim" - use 'lewis6991/impatient.nvim' + use "lewis6991/impatient.nvim" use "lukas-reineke/indent-blankline.nvim" - use 'goolord/alpha-nvim' + use "goolord/alpha-nvim" use "antoinemadec/FixCursorHold.nvim" -- This is needed to fix lsp doc highlight + use "folke/which-key.nvim" -- Colorschemes -- use "lunarvim/colorschemes" -- A bunch of colorschemes you can try out diff --git a/lua/user/whichkey.lua b/lua/user/whichkey.lua new file mode 100644 index 0000000..994435f --- /dev/null +++ b/lua/user/whichkey.lua @@ -0,0 +1,187 @@ +local status_ok, which_key = pcall(require, "which-key") +if not status_ok then + return +end + +local setup = { + plugins = { + marks = true, -- shows a list of your marks on ' and ` + registers = true, -- shows your registers on " in NORMAL or in INSERT mode + spelling = { + enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions + suggestions = 20, -- how many suggestions should be shown in the list? + }, + -- the presets plugin, adds help for a bunch of default keybindings in Neovim + -- No actual key bindings are created + presets = { + operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion + motions = false, -- adds help for motions + text_objects = false, -- help for text objects triggered after entering an operator + windows = true, -- default bindings on + nav = true, -- misc bindings to work with windows + z = true, -- bindings for folds, spelling and others prefixed with z + g = true, -- bindings for prefixed with g + }, + }, + -- add operators that will trigger motion and text object completion + -- to enable all native operators, set the preset / operators plugin above + -- operators = { gc = "Comments" }, + key_labels = { + -- override the label used to display some keys. It doesn't effect WK in any other way. + -- For example: + -- [""] = "SPC", + -- [""] = "RET", + -- [""] = "TAB", + }, + icons = { + breadcrumb = "»", -- symbol used in the command line area that shows your active key combo + separator = "➜", -- symbol used between a key and it's label + group = "+", -- symbol prepended to a group + }, + popup_mappings = { + scroll_down = "", -- binding to scroll down inside the popup + scroll_up = "", -- binding to scroll up inside the popup + }, + window = { + border = "rounded", -- none, single, double, shadow + position = "bottom", -- bottom, top + margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] + padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] + winblend = 0, + }, + layout = { + height = { min = 4, max = 25 }, -- min and max height of the columns + width = { min = 20, max = 50 }, -- min and max width of the columns + spacing = 3, -- spacing between columns + align = "left", -- align columns left, center or right + }, + ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label + hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate + show_help = true, -- show help message on the command line when the popup is visible + triggers = "auto", -- automatically setup triggers + -- triggers = {""} -- or specify a list manually + triggers_blacklist = { + -- list of mode / prefixes that should never be hooked by WhichKey + -- this is mostly relevant for key maps that start with a native binding + -- most people should not need to change this + i = { "j", "k" }, + v = { "j", "k" }, + }, +} + +local opts = { + mode = "n", -- NORMAL mode + prefix = "", + 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 = { + ["a"] = { "Alpha", "Alpha" }, + ["b"] = { + "lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})", + "Buffers", + }, + ["e"] = { "NvimTreeToggle", "Explorer" }, + ["w"] = { "w!", "Save" }, + ["q"] = { "q!", "Quit" }, + ["c"] = { "Bdelete!", "Close Buffer" }, + ["h"] = { "nohlsearch", "No Highlight" }, + ["f"] = { + "lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})", + "Find files", + }, + ["F"] = { "Telescope live_grep theme=ivy", "Find Text" }, + ["P"] = { "Telescope projects", "Projects" }, + + p = { + name = "Packer", + c = { "PackerCompile", "Compile" }, + i = { "PackerInstall", "Install" }, + s = { "PackerSync", "Sync" }, + S = { "PackerStatus", "Status" }, + u = { "PackerUpdate", "Update" }, + }, + + g = { + name = "Git", + g = { "lua _LAZYGIT_TOGGLE()", "Lazygit" }, + j = { "lua require 'gitsigns'.next_hunk()", "Next Hunk" }, + k = { "lua require 'gitsigns'.prev_hunk()", "Prev Hunk" }, + l = { "lua require 'gitsigns'.blame_line()", "Blame" }, + p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, + r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, + R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, + s = { "lua require 'gitsigns'.stage_hunk()", "Stage Hunk" }, + u = { + "lua require 'gitsigns'.undo_stage_hunk()", + "Undo Stage Hunk", + }, + o = { "Telescope git_status", "Open changed file" }, + b = { "Telescope git_branches", "Checkout branch" }, + c = { "Telescope git_commits", "Checkout commit" }, + d = { + "Gitsigns diffthis HEAD", + "Diff", + }, + }, + + l = { + name = "LSP", + a = { "lua vim.lsp.buf.code_action()", "Code Action" }, + d = { + "Telescope lsp_document_diagnostics", + "Document Diagnostics", + }, + w = { + "Telescope lsp_workspace_diagnostics", + "Workspace Diagnostics", + }, + f = { "lua vim.lsp.buf.formatting()", "Format" }, + i = { "LspInfo", "Info" }, + I = { "LspInstallInfo", "Installer Info" }, + j = { + "lua vim.lsp.diagnostic.goto_next()", + "Next Diagnostic", + }, + k = { + "lua vim.lsp.diagnostic.goto_prev()", + "Prev Diagnostic", + }, + l = { "lua vim.lsp.codelens.run()", "CodeLens Action" }, + q = { "lua vim.lsp.diagnostic.set_loclist()", "Quickfix" }, + r = { "lua vim.lsp.buf.rename()", "Rename" }, + s = { "Telescope lsp_document_symbols", "Document Symbols" }, + S = { + "Telescope lsp_dynamic_workspace_symbols", + "Workspace Symbols", + }, + }, + s = { + name = "Search", + b = { "Telescope git_branches", "Checkout branch" }, + c = { "Telescope colorscheme", "Colorscheme" }, + h = { "Telescope help_tags", "Find Help" }, + M = { "Telescope man_pages", "Man Pages" }, + r = { "Telescope oldfiles", "Open Recent File" }, + R = { "Telescope registers", "Registers" }, + k = { "Telescope keymaps", "Keymaps" }, + C = { "Telescope commands", "Commands" }, + }, + + t = { + name = "Terminal", + n = { "lua _NODE_TOGGLE()", "Node" }, + u = { "lua _NCDU_TOGGLE()", "NCDU" }, + t = { "lua _HTOP_TOGGLE()", "Htop" }, + p = { "lua _PYTHON_TOGGLE()", "Python" }, + f = { "ToggleTerm direction=float", "Float" }, + h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, + v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, + }, +} + +which_key.setup(setup) +which_key.register(mappings, opts) -- cgit v1.2.3 From 4f80d77e6906982eb9286b6cb5b1faf43b6c487c Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Mon, 3 Jan 2022 10:06:33 -0500 Subject: leader / to comment --- lua/user/whichkey.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lua/user/whichkey.lua b/lua/user/whichkey.lua index 994435f..0056e5a 100644 --- a/lua/user/whichkey.lua +++ b/lua/user/whichkey.lua @@ -79,6 +79,7 @@ local opts = { } local mappings = { + ["/"] = { "lua require(\"Comment.api\").toggle_current_linewise()", "Comment" }, ["a"] = { "Alpha", "Alpha" }, ["b"] = { "lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})", @@ -183,5 +184,18 @@ local mappings = { }, } +local vopts = { + mode = "v", -- VISUAL mode + prefix = "", + 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 = { + ["/"] = { "lua require(\"Comment.api\").toggle_linewise_op(vim.fn.visualmode())", "Comment" }, +} + which_key.setup(setup) which_key.register(mappings, opts) +which_key.register(vmappings, vopts) -- cgit v1.2.3 From f84566dc6e9533f5fa7d377fe26c1565aa7fe213 Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Mon, 3 Jan 2022 10:29:55 -0500 Subject: update lsp diag --- lua/user/lsp/handlers.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lua/user/lsp/handlers.lua b/lua/user/lsp/handlers.lua index fb8b7f8..38d9906 100644 --- a/lua/user/lsp/handlers.lua +++ b/lua/user/lsp/handlers.lua @@ -72,13 +72,7 @@ local function lsp_keymaps(bufnr) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "ca", "lua vim.lsp.buf.code_action()", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "f", "lua vim.diagnostic.open_float()", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({ border = "rounded" })', opts) - vim.api.nvim_buf_set_keymap( - bufnr, - "n", - "gl", - 'lua vim.lsp.diagnostic.show_line_diagnostics({ border = "rounded" })', - opts - ) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gl", "lua vim.lsp.diagnostic.open_float()", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({ border = "rounded" })', opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]] -- cgit v1.2.3