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)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
require("settings")
|
require("settings")
|
||||||
|
require("keybinds")
|
||||||
require("neovide")
|
require("neovide")
|
||||||
require("highlight_yank")
|
require("highlight_yank")
|
||||||
require("lazy").setup({
|
require("lazy").setup({
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||||
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
|
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "58c6bc4ab298dc0d808d325754585f918a031919" },
|
"lazy.nvim": { "branch": "main", "commit": "58c6bc4ab298dc0d808d325754585f918a031919" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "96d72f5eed344964e24e9561fc81522ef327b5bf" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
|
"lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
|
||||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
"mason-extra-cmds": { "branch": "main", "commit": "1bf94d631a9d35061e694ab49dbdea83172a8e51" },
|
"mason-extra-cmds": { "branch": "main", "commit": "1bf94d631a9d35061e694ab49dbdea83172a8e51" },
|
||||||
|
@ -30,7 +31,6 @@
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" },
|
"mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" },
|
||||||
"mini.nvim": { "branch": "main", "commit": "27de3dd4485161470ea55004fc132f2b158d1d24" },
|
"mini.nvim": { "branch": "main", "commit": "27de3dd4485161470ea55004fc132f2b158d1d24" },
|
||||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
|
||||||
"neoformat": { "branch": "master", "commit": "82864d6c7926c4f3b535a2fd7eab919b116fc969" },
|
"neoformat": { "branch": "master", "commit": "82864d6c7926c4f3b535a2fd7eab919b116fc969" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "b32b9a65cef2735b2be855c8b366e2574d7e59b4" },
|
"noice.nvim": { "branch": "main", "commit": "b32b9a65cef2735b2be855c8b366e2574d7e59b4" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
"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
|
-- This makes them only available when LSP is running
|
||||||
function m.map_keys()
|
function m.map_keys()
|
||||||
local builtin = require("telescope.builtin")
|
local builtin = require("telescope.builtin")
|
||||||
require("which-key").register({
|
|
||||||
g = {
|
require("which-key").add({
|
||||||
name = "Go to",
|
{ "<leader>w", group = "Workspace" },
|
||||||
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" } },
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
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
|
end
|
||||||
|
|
||||||
-- Combine built-in LSP and cmp cabaibilities
|
-- Combine built-in LSP and cmp cabaibilities
|
||||||
|
|
|
@ -104,6 +104,10 @@ return {
|
||||||
{ name = "buffer" },
|
{ name = "buffer" },
|
||||||
{ name = "spell" },
|
{ name = "spell" },
|
||||||
{ name = "path" },
|
{ 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()
|
config = function()
|
||||||
require("mini.surround").setup()
|
require("mini.surround").setup()
|
||||||
require("mini.comment").setup()
|
require("mini.comment").setup()
|
||||||
|
|
||||||
|
-- Recommended for which-key
|
||||||
|
require("mini.icons").setup()
|
||||||
end,
|
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
|
--- @type LazyPluginSpec
|
||||||
return {
|
return {
|
||||||
"kyazdani42/nvim-tree.lua",
|
"kyazdani42/nvim-tree.lua",
|
||||||
lazy = false,
|
|
||||||
dependencies = { "kyazdani42/nvim-web-devicons" },
|
dependencies = { "kyazdani42/nvim-web-devicons" },
|
||||||
opts = {
|
opts = {
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
|
|
|
@ -2,19 +2,7 @@
|
||||||
--- @type LazyPluginSpec
|
--- @type LazyPluginSpec
|
||||||
return {
|
return {
|
||||||
"luukvbaal/statuscol.nvim",
|
"luukvbaal/statuscol.nvim",
|
||||||
dependencies = {
|
|
||||||
{
|
|
||||||
"lewis6991/gitsigns.nvim",
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function()
|
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")
|
local builtin = require("statuscol.builtin")
|
||||||
require("statuscol").setup({
|
require("statuscol").setup({
|
||||||
relculright = true,
|
relculright = true,
|
||||||
|
|
|
@ -1,35 +1,20 @@
|
||||||
-- Display possible keybinds
|
-- 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
|
--- @type LazyPluginSpec
|
||||||
return {
|
return {
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
config = function()
|
config = function()
|
||||||
local wk = require("which-key")
|
require("which-key").add({
|
||||||
wk.setup()
|
{ "<leader>", group = "Leader" },
|
||||||
|
{ "g", group = "Go to" },
|
||||||
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" },
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Exit terminal insert mode with esc
|
|
||||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>", {})
|
|
||||||
end,
|
end,
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>?",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ global = false })
|
||||||
|
end,
|
||||||
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue