Neovim: update which-key configuration to v3
This commit is contained in:
parent
6fadc26aee
commit
661f71d1a8
12 changed files with 95 additions and 87 deletions
|
@ -13,6 +13,7 @@ end
|
|||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("settings")
|
||||
require("keybinds")
|
||||
require("neovide")
|
||||
require("highlight_yank")
|
||||
require("lazy").setup({
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "58c6bc4ab298dc0d808d325754585f918a031919" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "96d72f5eed344964e24e9561fc81522ef327b5bf" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-extra-cmds": { "branch": "main", "commit": "1bf94d631a9d35061e694ab49dbdea83172a8e51" },
|
||||
|
@ -30,7 +31,6 @@
|
|||
"mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
|
||||
"mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" },
|
||||
"mini.nvim": { "branch": "main", "commit": "27de3dd4485161470ea55004fc132f2b158d1d24" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||
"neoformat": { "branch": "master", "commit": "82864d6c7926c4f3b535a2fd7eab919b116fc969" },
|
||||
"noice.nvim": { "branch": "main", "commit": "b32b9a65cef2735b2be855c8b366e2574d7e59b4" },
|
||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
|
|
14
home/.config/nvim/lua/keybinds.lua
Normal file
14
home/.config/nvim/lua/keybinds.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
vim.keymap.set("n", "<leader>b", function()
|
||||
local current_theme = vim.fn.eval("&background")
|
||||
if current_theme == "dark" then
|
||||
vim.cmd("set background=light")
|
||||
else
|
||||
vim.cmd("set background=dark")
|
||||
end
|
||||
end, { desc = "Toggle background between dark and light" })
|
||||
|
||||
vim.keymap.set("n", "<leader>h", "<cmd>nohlsearch<cr>", { desc = "Turn off search highlight" })
|
||||
vim.keymap.set("n", "<leader>co", '<cmd>silent! execute "%bd|e#|bd#"<cr>', { desc = "Close other buffers" })
|
||||
vim.keymap.set("n", "<Tab>", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
||||
vim.keymap.set("n", "<S-Tab>", "<cmd>bprevious<cr>", { desc = "Previous buffer" })
|
||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", { desc = "Exit terminal insert mode with esc" })
|
|
@ -9,39 +9,30 @@ local diagnostic = vim.diagnostic
|
|||
-- This makes them only available when LSP is running
|
||||
function m.map_keys()
|
||||
local builtin = require("telescope.builtin")
|
||||
require("which-key").register({
|
||||
g = {
|
||||
name = "Go to",
|
||||
d = { builtin.lsp_definitions, "Definition" },
|
||||
D = { lsp.buf.declaration, "Declaration" },
|
||||
t = { lsp.buf.type_definition, "Type definition" },
|
||||
i = { builtin.lsp_implementations, "Implementation" },
|
||||
r = { builtin.lsp_references, "References" },
|
||||
s = { builtin.lsp_document_symbols, "Symbols" },
|
||||
},
|
||||
["<leader>"] = {
|
||||
name = "Leader",
|
||||
w = {
|
||||
name = "Workspace",
|
||||
a = { lsp.buf.add_workspace_folder, "Add folder" },
|
||||
r = { lsp.buf.remove_workspace_folder, "Remove folder" },
|
||||
l = {
|
||||
function()
|
||||
print(vim.inspect(lsp.buf.list_workspace_folders()))
|
||||
end,
|
||||
"List folders",
|
||||
},
|
||||
},
|
||||
k = { lsp.buf.signature_help, "Signature help" },
|
||||
rn = { lsp.buf.rename, "Rename symbol" },
|
||||
ca = { lsp.buf.code_action, "Code action" },
|
||||
e = { diagnostic.open_float, "Open diagnostics" },
|
||||
F = { lsp.buf.format, "Format with LSP" },
|
||||
},
|
||||
K = { lsp.buf.hover, "Hover" },
|
||||
["["] = { d = { diagnostic.goto_prev, "Previous diagnostic" } },
|
||||
["]"] = { d = { diagnostic.goto_next, "Next diagnostic" } },
|
||||
|
||||
require("which-key").add({
|
||||
{ "<leader>w", group = "Workspace" },
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>F", lsp.buf.format, { desc = "Format with LSP" })
|
||||
vim.keymap.set("n", "<leader>ca", lsp.buf.code_action, { desc = "Code action" })
|
||||
vim.keymap.set("n", "<leader>e", diagnostic.open_float, { desc = "Open diagnostics" })
|
||||
vim.keymap.set("n", "<leader>k", lsp.buf.signature_help, { desc = "Signature help" })
|
||||
vim.keymap.set("n", "<leader>rn", lsp.buf.rename, { desc = "Rename symbol" })
|
||||
vim.keymap.set("n", "<leader>wa", lsp.buf.add_workspace_folder, { desc = "Add folder" })
|
||||
vim.keymap.set("n", "<leader>wl", function()
|
||||
print(vim.inspect(lsp.buf.list_workspace_folders()))
|
||||
end, { desc = "List folders" })
|
||||
vim.keymap.set("n", "<leader>wr", lsp.buf.remove_workspace_folder, { desc = "Remove folder" })
|
||||
vim.keymap.set("n", "K", lsp.buf.hover, { desc = "Hover" })
|
||||
vim.keymap.set("n", "[d", diagnostic.goto_prev, { desc = "Previous diagnostic" })
|
||||
vim.keymap.set("n", "]d", diagnostic.goto_next, { desc = "Next diagnostic" })
|
||||
vim.keymap.set("n", "gD", lsp.buf.declaration, { desc = "Declaration" })
|
||||
vim.keymap.set("n", "gd", builtin.lsp_definitions, { desc = "Definition" })
|
||||
vim.keymap.set("n", "gi", builtin.lsp_implementations, { desc = "Implementation" })
|
||||
vim.keymap.set("n", "gr", builtin.lsp_references, { desc = "References" })
|
||||
vim.keymap.set("n", "gs", builtin.lsp_document_symbols, { desc = "Symbols" })
|
||||
vim.keymap.set("n", "gt", lsp.buf.type_definition, { desc = "Type definition" })
|
||||
end
|
||||
|
||||
-- Combine built-in LSP and cmp cabaibilities
|
||||
|
|
|
@ -104,6 +104,10 @@ return {
|
|||
{ name = "buffer" },
|
||||
{ name = "spell" },
|
||||
{ name = "path" },
|
||||
{
|
||||
name = "lazydev",
|
||||
group_index = 0, -- set group index to 0 to skip loading LuaLS completions
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
|
22
home/.config/nvim/lua/plugins/gitsigns.lua
Normal file
22
home/.config/nvim/lua/plugins/gitsigns.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- @type LazyPluginSpec
|
||||
return {
|
||||
"lewis6991/gitsigns.nvim",
|
||||
config = true,
|
||||
lazy = false,
|
||||
keys = {
|
||||
{
|
||||
"[h",
|
||||
function()
|
||||
require("gitsigns").prev_hunk()
|
||||
end,
|
||||
desc = "Previous hunk",
|
||||
},
|
||||
{
|
||||
"]h",
|
||||
function()
|
||||
require("gitsigns").next_hunk()
|
||||
end,
|
||||
desc = "Next hunk",
|
||||
},
|
||||
},
|
||||
}
|
15
home/.config/nvim/lua/plugins/lazydev.lua
Normal file
15
home/.config/nvim/lua/plugins/lazydev.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
-- Neovim setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.
|
||||
--- @type LazyPluginSpec
|
||||
return {
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
ft = "lua", -- only load on lua files
|
||||
opts = {
|
||||
library = {
|
||||
-- See the configuration section for more details
|
||||
-- Load luvit types when the `vim.uv` word is found
|
||||
{ path = "luvit-meta/library", words = { "vim%.uv" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
|
@ -5,5 +5,8 @@ return {
|
|||
config = function()
|
||||
require("mini.surround").setup()
|
||||
require("mini.comment").setup()
|
||||
|
||||
-- Recommended for which-key
|
||||
require("mini.icons").setup()
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
-- Neovim setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.
|
||||
return {
|
||||
"folke/neodev.nvim",
|
||||
--- @type LuaDevOptions
|
||||
opts = {
|
||||
override = function(root_dir, library)
|
||||
local dotfiles_path = tostring(vim.fn.expand("~/git/dotfiles"))
|
||||
if string.find(root_dir, dotfiles_path, 1, true) then
|
||||
library.enabled = true
|
||||
library.plugins = { "nvim-dap-ui" }
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
--- @type LazyPluginSpec
|
||||
return {
|
||||
"kyazdani42/nvim-tree.lua",
|
||||
lazy = false,
|
||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||
opts = {
|
||||
diagnostics = {
|
||||
|
|
|
@ -2,19 +2,7 @@
|
|||
--- @type LazyPluginSpec
|
||||
return {
|
||||
"luukvbaal/statuscol.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
config = true,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local gitsigns = require("gitsigns")
|
||||
require("which-key").register({
|
||||
["["] = { h = { gitsigns.prev_hunk, "Previous hunk" } },
|
||||
["]"] = { h = { gitsigns.next_hunk, "Next hunk" } },
|
||||
})
|
||||
|
||||
local builtin = require("statuscol.builtin")
|
||||
require("statuscol").setup({
|
||||
relculright = true,
|
||||
|
|
|
@ -1,35 +1,20 @@
|
|||
-- Display possible keybinds
|
||||
-- Here I have also defined some generic keybinds
|
||||
-- Plugin specific keybinds are set up in plugin configuration file
|
||||
|
||||
local function toggle_theme()
|
||||
local current_theme = vim.fn.eval("&background")
|
||||
if current_theme == "dark" then
|
||||
vim.cmd("set background=light")
|
||||
else
|
||||
vim.cmd("set background=dark")
|
||||
end
|
||||
end
|
||||
|
||||
--- @type LazyPluginSpec
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
config = function()
|
||||
local wk = require("which-key")
|
||||
wk.setup()
|
||||
|
||||
wk.register({
|
||||
h = { "<cmd>nohlsearch<cr>", "Turn off search highlight" },
|
||||
b = { toggle_theme, "Toggle background between dark and light" },
|
||||
co = { '<cmd>silent! execute "%bd|e#|bd#"<cr>', "Close other buffers" },
|
||||
}, { prefix = "<leader>" })
|
||||
|
||||
wk.register({
|
||||
["<Tab>"] = { "<cmd>bnext<cr>", "Next buffer" },
|
||||
["<S-Tab>"] = { "<cmd>bprevious<cr>", "Previous buffer" },
|
||||
require("which-key").add({
|
||||
{ "<leader>", group = "Leader" },
|
||||
{ "g", group = "Go to" },
|
||||
})
|
||||
|
||||
-- Exit terminal insert mode with esc
|
||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>?",
|
||||
function()
|
||||
require("which-key").show({ global = false })
|
||||
end,
|
||||
desc = "Buffer Local Keymaps (which-key)",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue