mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-14 06:12:34 +00:00
feat: Reworking nvim configuration
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"saghen/blink.cmp",
|
"saghen/blink.cmp",
|
||||||
enabeld = false,
|
enabled = false,
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"rafamadriz/friendly-snippets",
|
"rafamadriz/friendly-snippets",
|
||||||
--"L3MON4D3/LuaSnip",
|
--"L3MON4D3/LuaSnip",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
'numToStr/Comment.nvim',
|
'numToStr/Comment.nvim',
|
||||||
|
event = { 'BufReadPre', 'BufNewFile' },
|
||||||
opts = {
|
opts = {
|
||||||
-- add any options here
|
-- add any options here
|
||||||
},
|
},
|
||||||
event = { 'BufReadPre', 'BufNewFile' },
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,20 @@
|
|||||||
return {
|
return {
|
||||||
"j-hui/fidget.nvim",
|
"j-hui/fidget.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
config = function()
|
opts = {
|
||||||
local fidget = require("fidget")
|
notification = {
|
||||||
fidget.setup({
|
window = {
|
||||||
notification = {
|
normal_hl = "String", -- Base highlight group in the notification window
|
||||||
window = {
|
winblend = 0, -- Background color opacity in the notification window
|
||||||
normal_hl = "String", -- Base highlight group in the notification window
|
border = "rounded", -- Border around the notification window
|
||||||
winblend = 0, -- Background color opacity in the notification window
|
zindex = 45, -- Stacking priority of the notification window
|
||||||
border = "rounded", -- Border around the notification window
|
max_width = 0, -- Maximum width of the notification window
|
||||||
zindex = 45, -- Stacking priority of the notification window
|
max_height = 0, -- Maximum height of the notification window
|
||||||
max_width = 0, -- Maximum width of the notification window
|
x_padding = 1, -- Padding from right edge of window boundary
|
||||||
max_height = 0, -- Maximum height of the notification window
|
y_padding = 1, -- Padding from bottom edge of window boundary
|
||||||
x_padding = 1, -- Padding from right edge of window boundary
|
align = "bottom", -- How to align the notification window
|
||||||
y_padding = 1, -- Padding from bottom edge of window boundary
|
relative = "editor", -- What the notification window position is relative to
|
||||||
align = "bottom", -- How to align the notification window
|
|
||||||
relative = "editor", -- What the notification window position is relative to
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
end,
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,19 @@
|
|||||||
return {
|
return {
|
||||||
"mhartington/formatter.nvim",
|
"mhartington/formatter.nvim",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
config = function()
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>f",
|
||||||
|
":Format",
|
||||||
|
desc = "[F]ormat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>F",
|
||||||
|
":FormatWrite",
|
||||||
|
desc = "[F]ormat write",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
local util = require("formatter.util")
|
local util = require("formatter.util")
|
||||||
require("formatter").setup({
|
require("formatter").setup({
|
||||||
filetype = {
|
filetype = {
|
||||||
@@ -50,13 +62,6 @@ return {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Keymaps
|
|
||||||
local wk = require("which-key")
|
|
||||||
wk.add({
|
|
||||||
{ "<space>f", ":Format", desc = "[F]ormat" },
|
|
||||||
{ "<space>F", ":FormateWrite", desc = "[F]ormat write" },
|
|
||||||
}, { mode = "n", silent = true })
|
|
||||||
|
|
||||||
local augroup = vim.api.nvim_create_augroup
|
local augroup = vim.api.nvim_create_augroup
|
||||||
local autocmd = vim.api.nvim_create_autocmd
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
|
||||||
|
|||||||
@@ -1,86 +1,86 @@
|
|||||||
return {
|
return {
|
||||||
"ThePrimeagen/harpoon",
|
"ThePrimeagen/harpoon",
|
||||||
branch = "harpoon2",
|
branch = "harpoon2",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local harpoon = require("harpoon")
|
local harpoon = require("harpoon")
|
||||||
harpoon:setup({
|
harpoon:setup({
|
||||||
settings = {
|
settings = {
|
||||||
save_on_toggle = true,
|
save_on_toggle = true,
|
||||||
sync_on_ui_close = true,
|
sync_on_ui_close = true,
|
||||||
key = function()
|
key = function()
|
||||||
return vim.loop.cwd()
|
return vim.loop.cwd()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
local conf = require("telescope.config").values
|
local conf = require("telescope.config").values
|
||||||
local function toggle_telescope(harpoon_files)
|
local function toggle_telescope(harpoon_files)
|
||||||
local file_paths = {}
|
local file_paths = {}
|
||||||
for _, item in ipairs(harpoon_files.items) do
|
for _, item in ipairs(harpoon_files.items) do
|
||||||
table.insert(file_paths, item.value)
|
table.insert(file_paths, item.value)
|
||||||
end
|
end
|
||||||
|
|
||||||
require("telescope.pickers")
|
require("telescope.pickers")
|
||||||
.new({}, {
|
.new({}, {
|
||||||
prompt_title = "Harpoon",
|
prompt_title = "Harpoon",
|
||||||
finder = require("telescope.finders").new_table({
|
finder = require("telescope.finders").new_table({
|
||||||
results = file_paths,
|
results = file_paths,
|
||||||
}),
|
}),
|
||||||
previewer = conf.file_previewer({}),
|
previewer = conf.file_previewer({}),
|
||||||
sorter = conf.generic_sorter({}),
|
sorter = conf.generic_sorter({}),
|
||||||
})
|
})
|
||||||
:find()
|
:find()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Keymaps
|
-- Keymaps
|
||||||
vim.keymap.set("n", "<C-e>", function()
|
vim.keymap.set("n", "<C-e>", function()
|
||||||
toggle_telescope(harpoon:list())
|
toggle_telescope(harpoon:list())
|
||||||
end, { desc = "Open Harpoon window" })
|
end, { desc = "Open Harpoon window" })
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>a", function()
|
vim.keymap.set("n", "<leader>a", function()
|
||||||
harpoon:list():add()
|
harpoon:list():add()
|
||||||
end, { desc = "[A]dd to harpoon list." })
|
end, { desc = "[A]dd to harpoon list." })
|
||||||
vim.keymap.set("n", "<C-e>", function()
|
vim.keymap.set("n", "<C-e>", function()
|
||||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||||
end, { desc = "Toggle quick menu." })
|
end, { desc = "Toggle quick menu." })
|
||||||
|
|
||||||
-- Buffer key maps. Currently keeping all buffer movements
|
-- Buffer key maps. Currently keeping all buffer movements
|
||||||
-- isolated to top left row of keys on keyboard and all begin
|
-- isolated to top left row of keys on keyboard and all begin
|
||||||
-- with the <Control> key.
|
-- with the <Control> key.
|
||||||
|
|
||||||
-- Select buffer numbers.
|
-- Select buffer numbers.
|
||||||
vim.keymap.set("n", "<A-y>", function()
|
vim.keymap.set("n", "<A-y>", function()
|
||||||
harpoon:list():select(1)
|
harpoon:list():select(1)
|
||||||
end, { desc = "Select first harpoon buffer." })
|
end, { desc = "Select first harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-u>", function()
|
vim.keymap.set("n", "<A-u>", function()
|
||||||
harpoon:list():select(2)
|
harpoon:list():select(2)
|
||||||
end, { desc = "Select second harpoon buffer." })
|
end, { desc = "Select second harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-i>", function()
|
vim.keymap.set("n", "<A-i>", function()
|
||||||
harpoon:list():select(3)
|
harpoon:list():select(3)
|
||||||
end, { desc = "Select third harpoon buffer." })
|
end, { desc = "Select third harpoon buffer." })
|
||||||
vim.keymap.set("n", "<A-o>", function()
|
vim.keymap.set("n", "<A-o>", function()
|
||||||
harpoon:list():select(4)
|
harpoon:list():select(4)
|
||||||
end, { desc = "Select fourth harpoon buffer." })
|
end, { desc = "Select fourth harpoon buffer." })
|
||||||
|
|
||||||
-- Toggle previous and next buffers.
|
-- Toggle previous and next buffers.
|
||||||
vim.keymap.set("n", "<C-[>", function()
|
vim.keymap.set("n", "<C-[>", function()
|
||||||
harpoon:list():prev()
|
harpoon:list():prev()
|
||||||
end, { desc = "[P]revious harpoon buffer." })
|
end, { desc = "[P]revious harpoon buffer." })
|
||||||
vim.keymap.set("n", "<C-]>", function()
|
vim.keymap.set("n", "<C-]>", function()
|
||||||
harpoon:list():next()
|
harpoon:list():next()
|
||||||
end, { desc = "[N]ext harpoon buffer." })
|
end, { desc = "[N]ext harpoon buffer." })
|
||||||
|
|
||||||
-- Extensions
|
-- Extensions
|
||||||
harpoon:extend({
|
harpoon:extend({
|
||||||
UI_CREATE = function(cx)
|
UI_CREATE = function(cx)
|
||||||
vim.keymap.set("n", "<C-v>", function()
|
vim.keymap.set("n", "<C-v>", function()
|
||||||
harpoon.ui:select_menu_item({ vsplit = true })
|
harpoon.ui:select_menu_item({ vsplit = true })
|
||||||
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,105 +1,118 @@
|
|||||||
-- The language servers to setup.
|
|
||||||
local lsp_servers = {
|
|
||||||
"bashls",
|
|
||||||
"clangd",
|
|
||||||
"dockerls",
|
|
||||||
"gopls",
|
|
||||||
"jsonls",
|
|
||||||
"lua_ls",
|
|
||||||
"marksman",
|
|
||||||
"sourcekit",
|
|
||||||
"yamlls",
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"neovim/nvim-lspconfig",
|
{
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
"neovim/nvim-lspconfig",
|
||||||
dependencies = {
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
-- "hrsh7th/cmp-nvim-lsp",
|
dependencies = {
|
||||||
"saghen/blink.cmp",
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
{ "antosha417/nvim-lsp-file-operations", config = true },
|
--"saghen/blink.cmp",
|
||||||
"williamboman/mason.nvim",
|
{ "antosha417/nvim-lsp-file-operations", config = true },
|
||||||
"williamboman/mason-lspconfig.nvim",
|
"williamboman/mason.nvim",
|
||||||
{
|
"williamboman/mason-lspconfig.nvim",
|
||||||
"folke/lazydev.nvim",
|
{
|
||||||
ft = "lua",
|
"folke/lazydev.nvim",
|
||||||
opts = {
|
ft = "lua",
|
||||||
library = {
|
opts = {
|
||||||
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
library = {
|
||||||
|
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
config = function()
|
||||||
config = function()
|
require("mason").setup()
|
||||||
require("mason").setup()
|
require("mason-lspconfig").setup({
|
||||||
require("mason-lspconfig").setup({
|
ensure_installed = {
|
||||||
opts = {
|
"bashls",
|
||||||
ensure_installed = lsp_servers,
|
"clangd",
|
||||||
},
|
"dockerls",
|
||||||
})
|
"gopls",
|
||||||
local lspconfig = require("lspconfig")
|
"jinja_lsp",
|
||||||
--local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
"jqls",
|
||||||
--local capabilities = cmp_nvim_lsp.default_capabilities()
|
"jsonls",
|
||||||
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
"ltex",
|
||||||
local opts = { noremap = true, silent = true }
|
"lua_ls",
|
||||||
local on_attach = function(_, bufnr)
|
"marksman",
|
||||||
opts.buffer = bufnr
|
"yamlls",
|
||||||
|
},
|
||||||
opts.desc = "Show line diagnostics"
|
automatic_installation = true,
|
||||||
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
|
||||||
|
|
||||||
opts.desc = "Show diagnostics in Telescope"
|
|
||||||
vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
|
||||||
|
|
||||||
opts.desc = "Show documentation for what is under cursor"
|
|
||||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
|
||||||
|
|
||||||
opts.desc = "[G]oto [D]efinition"
|
|
||||||
vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
|
||||||
|
|
||||||
opts.desc = "[G]oto [D]eclaration"
|
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
|
||||||
|
|
||||||
opts.desc = "[G]oto [R]eferences"
|
|
||||||
vim.keymap.set("n", "gr", "<CMD>Telescope lsp_references<CR>", opts)
|
|
||||||
|
|
||||||
opts.desc = "LSP [C]ode [A]ction"
|
|
||||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
|
||||||
|
|
||||||
--opts.desc = "[R]e-[N]ame"
|
|
||||||
--vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
|
||||||
|
|
||||||
opts.desc = "[R]eload or start LSP"
|
|
||||||
vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
|
||||||
|
|
||||||
opts.desc = "Goto previous diagnostic"
|
|
||||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
|
||||||
|
|
||||||
opts.desc = "Goto next diagnostic"
|
|
||||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, lsp in ipairs(lsp_servers) do
|
|
||||||
lspconfig[lsp].setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = on_attach,
|
|
||||||
on_init = function(client)
|
|
||||||
-- HACK: to fix some issues with LSP
|
|
||||||
-- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
|
||||||
client.offset_encoding = "utf-8"
|
|
||||||
end,
|
|
||||||
cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
|
||||||
})
|
})
|
||||||
end
|
local lspconfig = require("lspconfig")
|
||||||
|
local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||||
|
local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||||
|
--local capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
local on_attach = function(_, bufnr)
|
||||||
|
opts.buffer = bufnr
|
||||||
|
|
||||||
-- nice icons
|
opts.desc = "Show line diagnostics"
|
||||||
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
||||||
for type, icon in pairs(signs) do
|
|
||||||
local hl = "DiagnosticSign" .. type
|
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
opts.desc = "Show diagnostics in Telescope"
|
||||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
||||||
end,
|
|
||||||
|
opts.desc = "Show documentation for what is under cursor"
|
||||||
|
vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
||||||
|
|
||||||
|
opts.desc = "[G]oto [D]efinition"
|
||||||
|
vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
||||||
|
|
||||||
|
opts.desc = "[G]oto [D]eclaration"
|
||||||
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||||
|
|
||||||
|
opts.desc = "[G]oto [R]eferences"
|
||||||
|
vim.keymap.set("n", "gr", "<CMD>Telescope lsp_references<CR>", opts)
|
||||||
|
|
||||||
|
opts.desc = "LSP [C]ode [A]ction"
|
||||||
|
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||||
|
|
||||||
|
--opts.desc = "[R]e-[N]ame"
|
||||||
|
--vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||||
|
|
||||||
|
opts.desc = "[R]eload or start LSP"
|
||||||
|
vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
||||||
|
|
||||||
|
opts.desc = "Goto previous diagnostic"
|
||||||
|
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||||
|
|
||||||
|
opts.desc = "Goto next diagnostic"
|
||||||
|
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The language servers to setup.
|
||||||
|
local lsp_servers = {
|
||||||
|
"bashls",
|
||||||
|
"clangd",
|
||||||
|
"dockerls",
|
||||||
|
"gopls",
|
||||||
|
"jsonls",
|
||||||
|
"lua_ls",
|
||||||
|
"marksman",
|
||||||
|
"sourcekit",
|
||||||
|
"yamlls",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, lsp in ipairs(lsp_servers) do
|
||||||
|
lspconfig[lsp].setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
on_attach = on_attach,
|
||||||
|
on_init = function(client)
|
||||||
|
-- HACK: to fix some issues with LSP
|
||||||
|
-- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
||||||
|
client.offset_encoding = "utf-8"
|
||||||
|
end,
|
||||||
|
cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- nice icons
|
||||||
|
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||||
|
for type, icon in pairs(signs) do
|
||||||
|
local hl = "DiagnosticSign" .. type
|
||||||
|
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
||||||
|
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +1,19 @@
|
|||||||
|
local function xcodebuild_device()
|
||||||
|
if vim.g.xcodebuild_platform == "macOS" then
|
||||||
|
return " macOS"
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.g.xcodebuild_os then
|
||||||
|
return " " .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
|
||||||
|
end
|
||||||
|
|
||||||
|
return " " .. vim.g.xcodebuild_device_name
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"nvim-lualine/lualine.nvim",
|
"nvim-lualine/lualine.nvim",
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
config = function()
|
opts = {
|
||||||
local lualine = require("lualine")
|
|
||||||
|
|
||||||
local function xcodebuild_device()
|
|
||||||
if vim.g.xcodebuild_platform == "macOS" then
|
|
||||||
return " macOS"
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.g.xcodebuild_os then
|
|
||||||
return " " .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
|
|
||||||
end
|
|
||||||
|
|
||||||
return " " .. vim.g.xcodebuild_device_name
|
|
||||||
end
|
|
||||||
|
|
||||||
lualine.setup({
|
|
||||||
options = {
|
options = {
|
||||||
globalstatus = true,
|
globalstatus = true,
|
||||||
theme = "auto",
|
theme = "auto",
|
||||||
@@ -67,151 +64,6 @@ return {
|
|||||||
lualine_z = {},
|
lualine_z = {},
|
||||||
},
|
},
|
||||||
extensions = { "nvim-dap-ui", "quickfix", "trouble", "nvim-tree", "lazy", "mason" },
|
extensions = { "nvim-dap-ui", "quickfix", "trouble", "nvim-tree", "lazy", "mason" },
|
||||||
})
|
|
||||||
end,
|
},
|
||||||
}
|
}
|
||||||
-- return {
|
|
||||||
-- "nvim-lualine/lualine.nvim",
|
|
||||||
-- config = function()
|
|
||||||
-- local colors = {
|
|
||||||
-- red = '#ca1243',
|
|
||||||
-- grey = '#a0a1a7',
|
|
||||||
-- black = '#383a42',
|
|
||||||
-- white = '#f3f3f3',
|
|
||||||
-- light_green = '#83a598',
|
|
||||||
-- orange = '#fe8019',
|
|
||||||
-- green = '#8ec07c',
|
|
||||||
-- }
|
|
||||||
--
|
|
||||||
-- local empty = require('lualine.component'):extend()
|
|
||||||
-- function empty:draw(default_highlight)
|
|
||||||
-- self.status = ''
|
|
||||||
-- self.applied_separator = ''
|
|
||||||
-- self:apply_highlights(default_highlight)
|
|
||||||
-- self:apply_section_separators()
|
|
||||||
-- return self.status
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- -- Put proper separators and gaps between components in sections
|
|
||||||
-- local function process_sections(sections)
|
|
||||||
-- for name, section in pairs(sections) do
|
|
||||||
-- local left = name:sub(9, 10) < 'x'
|
|
||||||
-- for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
|
|
||||||
-- table.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } })
|
|
||||||
-- end
|
|
||||||
-- for id, comp in ipairs(section) do
|
|
||||||
-- if type(comp) ~= 'table' then
|
|
||||||
-- comp = { comp }
|
|
||||||
-- section[id] = comp
|
|
||||||
-- end
|
|
||||||
-- comp.separator = left and { right = '' } or { left = '' }
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- return sections
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- local function search_result()
|
|
||||||
-- if vim.v.hlsearch == 0 then
|
|
||||||
-- return ''
|
|
||||||
-- end
|
|
||||||
-- local last_search = vim.fn.getreg '/'
|
|
||||||
-- if not last_search or last_search == '' then
|
|
||||||
-- return ''
|
|
||||||
-- end
|
|
||||||
-- local searchcount = vim.fn.searchcount { maxcount = 9999 }
|
|
||||||
-- return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- local function modified()
|
|
||||||
-- if vim.bo.modified then
|
|
||||||
-- return '+'
|
|
||||||
-- elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
|
||||||
-- return '-'
|
|
||||||
-- end
|
|
||||||
-- return ''
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- local function xcodebuild_device()
|
|
||||||
-- if vim.g.xcodebuild_platform == "macOS" then
|
|
||||||
-- return " macOS"
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- local deviceIcon = ""
|
|
||||||
-- if vim.g.xcodebuild_platform:match("watch") then
|
|
||||||
-- deviceIcon = ""
|
|
||||||
-- elseif vim.g.xcodebuild_platform:match("tv") then
|
|
||||||
-- deviceIcon = " "
|
|
||||||
-- elseif vim.g.xcodebuild_platform:match("vision") then
|
|
||||||
-- deviceIcon = " "
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- if vim.g.xcodebuild_os then
|
|
||||||
-- return deviceIcon .. " " .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- return deviceIcon .. " " .. vim.g.xcodebuild_device_name
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- require('lualine').setup {
|
|
||||||
-- options = {
|
|
||||||
-- theme = 'auto',
|
|
||||||
-- component_separators = '',
|
|
||||||
-- section_separators = { left = '', right = '' },
|
|
||||||
-- },
|
|
||||||
-- sections = process_sections {
|
|
||||||
-- lualine_a = { 'mode' },
|
|
||||||
-- lualine_b = {
|
|
||||||
-- 'branch',
|
|
||||||
-- 'diff',
|
|
||||||
-- {
|
|
||||||
-- 'diagnostics',
|
|
||||||
-- source = { 'nvim' },
|
|
||||||
-- sections = { 'error' },
|
|
||||||
-- diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
|
||||||
-- },
|
|
||||||
-- {
|
|
||||||
-- 'diagnostics',
|
|
||||||
-- source = { 'nvim' },
|
|
||||||
-- sections = { 'warn' },
|
|
||||||
-- diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
|
||||||
-- },
|
|
||||||
-- { 'filename', file_status = false, path = 1 },
|
|
||||||
-- { modified, color = { bg = colors.red } },
|
|
||||||
-- {
|
|
||||||
-- '%w',
|
|
||||||
-- cond = function()
|
|
||||||
-- return vim.wo.previewwindow
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
-- {
|
|
||||||
-- '%r',
|
|
||||||
-- cond = function()
|
|
||||||
-- return vim.bo.readonly
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
-- {
|
|
||||||
-- '%q',
|
|
||||||
-- cond = function()
|
|
||||||
-- return vim.bo.buftype == 'quickfix'
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- lualine_c = {},
|
|
||||||
-- lualine_x = {
|
|
||||||
-- { "' ' .. vim.g.xcodebuild_last_status", color = { fg = "Gray" } },
|
|
||||||
-- { "' ' .. vim.g.xcodebuild_test_plan", color = { fg = "#a6e3a1", bg = "#161622" } },
|
|
||||||
-- { xcodebuild_device, color = { fg = "#f9e2af", bg = "#161622" } },
|
|
||||||
-- },
|
|
||||||
-- lualine_y = { search_result, 'filetype' },
|
|
||||||
-- lualine_z = { '%l:%c', '%p%%/%L' },
|
|
||||||
-- },
|
|
||||||
-- inactive_sections = {
|
|
||||||
-- lualine_c = { '%f %y %m' },
|
|
||||||
-- lualine_x = {},
|
|
||||||
-- },
|
|
||||||
-- tabline = {},
|
|
||||||
-- extensions = {"nvim-tree"}
|
|
||||||
-- }
|
|
||||||
-- end
|
|
||||||
-- }
|
|
||||||
|
|||||||
@@ -2,44 +2,45 @@ return {
|
|||||||
"L3MON4D3/LuaSnip",
|
"L3MON4D3/LuaSnip",
|
||||||
version = "v2.*",
|
version = "v2.*",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
config = function()
|
opts = {
|
||||||
local ls = require("luasnip")
|
history = true,
|
||||||
local types = require("luasnip.util.types")
|
enable_autosnippets = false,
|
||||||
ls.setup({
|
updatevents = "TextChanged,TextChangedI",
|
||||||
history = true,
|
extra_opts = {
|
||||||
enable_autosnippets = false,
|
[require("luasnip.utl.types").choiceNode] = {
|
||||||
updatevents = "TextChanged,TextChangedI",
|
active = {
|
||||||
extra_opts = {
|
virt_text = { { "choiceNode", "Comment" } },
|
||||||
[types.choiceNode] = {
|
|
||||||
active = {
|
|
||||||
virt_text = { { "choiceNode", "Comment" } },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<C-k>",
|
||||||
|
mode = { "i", "s" },
|
||||||
|
function()
|
||||||
|
local ls = require("luasnip")
|
||||||
|
if ls.expand_or_jumpable() then
|
||||||
|
ls.expand_or_jump()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-j>",
|
||||||
|
mode = { "i", "s" },
|
||||||
|
function()
|
||||||
|
local ls = require("luasnip")
|
||||||
|
if ls.jumpable(-1) then
|
||||||
|
ls.jump(-1)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local ls = require("luasnip")
|
||||||
|
ls.setup(opts)
|
||||||
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
require("luasnip.loaders.from_lua").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" })
|
require("luasnip.loaders.from_lua").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" })
|
||||||
|
|
||||||
-- Keymaps
|
|
||||||
local opts = { silent = true }
|
|
||||||
|
|
||||||
-- Use <Ctrl>k to expand snippets.
|
|
||||||
-- This will expand the current item or jump to the next item within the snippet.
|
|
||||||
vim.keymap.set({ "i", "s" }, "<C-k>", function()
|
|
||||||
if ls.expand_or_jumpable() then
|
|
||||||
ls.expand_or_jump()
|
|
||||||
end
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- Use <Ctrl>j to jump backwards in a snippet.
|
|
||||||
-- This always moves to the previous item within a snippet.
|
|
||||||
vim.keymap.set({ "i", "s" }, "<C-j>", function()
|
|
||||||
if ls.jumpable(-1) then
|
|
||||||
ls.jump(-1)
|
|
||||||
end
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- Reload snippets.
|
|
||||||
vim.keymap.set("n", "<leader><leader>s", "<CMD>source ~/.config/m-housh/lua/user/plugin/luasnip.lua<CR>")
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,47 +1,46 @@
|
|||||||
return {
|
return {
|
||||||
"folke/noice.nvim",
|
"folke/noice.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
-- config.lsp.signature.enabled = false
|
dependencies = {
|
||||||
opts = {
|
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||||
lsp = {
|
"MunifTanjim/nui.nvim",
|
||||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
-- OPTIONAL:
|
||||||
override = {
|
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
-- If not available, we use `mini` as the fallback
|
||||||
["vim.lsp.util.stylize_markdown"] = true,
|
"rcarriga/nvim-notify",
|
||||||
["cmp.entry.get_documentation"] = true,
|
},
|
||||||
},
|
opts = {
|
||||||
-- you can enable a preset for easier configuration
|
lsp = {
|
||||||
presets = {
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
bottom_search = true, -- use a classic bottom cmdline for search
|
override = {
|
||||||
command_palette = true, -- position the cmdline and popupmenu together
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
long_message_to_split = true, -- long messages will be sent to a split
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
["cmp.entry.get_documentation"] = true,
|
||||||
lsp_doc_border = false, -- add a border to hover docs and signature help
|
},
|
||||||
},
|
-- you can enable a preset for easier configuration
|
||||||
signature = { enabled = false },
|
presets = {
|
||||||
},
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
routes = {
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
{ -- enables messages for showing macro recording.
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
view = "notify",
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
filter = { event = "msg_showmode" },
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
},
|
},
|
||||||
{ -- Hide the written messages.
|
signature = { enabled = false },
|
||||||
view = 'notify',
|
},
|
||||||
filter = {
|
routes = {
|
||||||
event = "msg_show",
|
{ -- enables messages for showing macro recording.
|
||||||
kind = "",
|
view = "notify",
|
||||||
find = "written"
|
filter = { event = "msg_showmode" },
|
||||||
},
|
},
|
||||||
opts = { skip = true }
|
{ -- Hide the written messages.
|
||||||
}
|
view = "notify",
|
||||||
},
|
filter = {
|
||||||
},
|
event = "msg_show",
|
||||||
dependencies = {
|
kind = "",
|
||||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
find = "written",
|
||||||
"MunifTanjim/nui.nvim",
|
},
|
||||||
-- OPTIONAL:
|
opts = { skip = true },
|
||||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
},
|
||||||
-- If not available, we use `mini` as the fallback
|
},
|
||||||
"rcarriga/nvim-notify",
|
},
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,34 +35,4 @@ return {
|
|||||||
desc = "Open directory in float.",
|
desc = "Open directory in float.",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
-- config = function()
|
|
||||||
-- require("oil").setup({
|
|
||||||
-- columns = { "icon" },
|
|
||||||
-- keymaps = {
|
|
||||||
-- ["<C-h>"] = false,
|
|
||||||
-- ["<M-h>"] = "actions.select_split",
|
|
||||||
-- ["<C-v>"] = {
|
|
||||||
-- "actions.select",
|
|
||||||
-- opts = { vertical = true },
|
|
||||||
-- desc = "Open the entry in a vertical split",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- view_options = {
|
|
||||||
-- is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
|
||||||
-- -- Don't show .DS_Store in output.
|
|
||||||
-- local is_ds_store = name ~= ".DS_Store"
|
|
||||||
-- return not is_ds_store
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- -- Show the parent directory in current window.
|
|
||||||
-- vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory." })
|
|
||||||
--
|
|
||||||
-- -- Open parent directory in floating window.
|
|
||||||
-- vim.keymap.set("n", "<space>-", require("oil").toggle_float)
|
|
||||||
--
|
|
||||||
-- -- Old habits die hard, map what used to toggle neo-tree to just open a float.
|
|
||||||
-- vim.keymap.set("n", "<C-n>", require("oil").toggle_float)
|
|
||||||
-- end,
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,26 +4,42 @@ return {
|
|||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
"folke/trouble.nvim",
|
"folke/trouble.nvim",
|
||||||
},
|
},
|
||||||
opts = {},
|
opts = {
|
||||||
config = function()
|
keywords = {
|
||||||
local todos = require("todo-comments")
|
-- Adds the important keyword, I primarily use this in markdown
|
||||||
|
-- documents to be able to jump and color appropriately.
|
||||||
todos.setup({
|
FIX = { alt = { "IMPORTANT" } },
|
||||||
keywords = {
|
},
|
||||||
-- Adds the important keyword, I primarily use this in markdown
|
},
|
||||||
-- documents to be able to jump and color appropriately.
|
keys = {
|
||||||
FIX = { alt = { "IMPORTANT" } },
|
{
|
||||||
},
|
"<leader>tq",
|
||||||
})
|
"<CMD>Trouble todo toggle<CR>",
|
||||||
|
desc = "Todo quick fix list.",
|
||||||
vim.keymap.set("n", "<leader>tq", "<CMD>Trouble todo toggle<CR>", { desc = "[T]odo [Q]uick fix list." })
|
},
|
||||||
vim.keymap.set("n", "<leader><leader>t", "<CMD>TodoTelescope<CR>", { desc = "[T]odo telescope list." })
|
{
|
||||||
vim.keymap.set("n", "<leader>tl", "<CMD>TodoLocList<CR>", { desc = "[T]odo [L]ocation list." })
|
"<leader><leader>t",
|
||||||
vim.keymap.set("n", "]t", function()
|
"<CMD>TodoTelescope<CR>",
|
||||||
todos.jump_next()
|
desc = "Todo telescope list.",
|
||||||
end, { desc = "Next [T]odo" })
|
},
|
||||||
vim.keymap.set("n", "[t", function()
|
{
|
||||||
todos.jump_prev()
|
"<leader>tl",
|
||||||
end, { desc = "Previous [T]odo" })
|
"<CMD>TodoLocList<CR>",
|
||||||
end,
|
desc = "Todo location list.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"]t",
|
||||||
|
function()
|
||||||
|
require("todo-comments").jump_next()
|
||||||
|
end,
|
||||||
|
desc = "Next todo.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"[t",
|
||||||
|
function()
|
||||||
|
require("todo-comments").jump_prev()
|
||||||
|
end,
|
||||||
|
desc = "Previous todo.",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,73 +6,71 @@ return {
|
|||||||
},
|
},
|
||||||
build = ":TSUpdate",
|
build = ":TSUpdate",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
config = function()
|
opts = {
|
||||||
require("nvim-treesitter.configs").setup({
|
ensure_installed = {
|
||||||
ensure_installed = {
|
"bash",
|
||||||
"bash",
|
"cmake",
|
||||||
"cmake",
|
"dockerfile",
|
||||||
"dockerfile",
|
"go",
|
||||||
"go",
|
"hcl",
|
||||||
"hcl",
|
"html",
|
||||||
"html",
|
"java",
|
||||||
"java",
|
"javascript",
|
||||||
"javascript",
|
"json",
|
||||||
"json",
|
"latex",
|
||||||
"latex",
|
"ledger",
|
||||||
"ledger",
|
"llvm",
|
||||||
"llvm",
|
"lua",
|
||||||
"lua",
|
"make",
|
||||||
"make",
|
"markdown",
|
||||||
"markdown",
|
"python",
|
||||||
"python",
|
"swift",
|
||||||
"swift",
|
"toml",
|
||||||
"toml",
|
"xml",
|
||||||
"xml",
|
"yaml",
|
||||||
"yaml",
|
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||||
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
|
ignore_install = {}, -- List of parsers to ignore installing
|
||||||
ignore_install = {}, -- List of parsers to ignore installing
|
highlight = {
|
||||||
highlight = {
|
enable = true, -- false will disable the whole extension
|
||||||
enable = true, -- false will disable the whole extension
|
disable = {}, -- list of language that will be disabled
|
||||||
disable = {}, -- list of language that will be disabled
|
},
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<CR>",
|
||||||
|
scope_incremental = "<CR>",
|
||||||
|
node_incremental = "<TAB>",
|
||||||
|
node_decremental = "<S-TAB>",
|
||||||
},
|
},
|
||||||
incremental_selection = {
|
},
|
||||||
|
indent = { enable = true },
|
||||||
|
autopairs = { { enable = true } },
|
||||||
|
textobjects = {
|
||||||
|
select = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
-- Automatically jump forward to textobj, similar to targets.vim
|
||||||
|
lookahead = true,
|
||||||
keymaps = {
|
keymaps = {
|
||||||
init_selection = "<CR>",
|
-- You can use the capture groups defined in textobjects.scm
|
||||||
scope_incremental = "<CR>",
|
["af"] = "@function.outer",
|
||||||
node_incremental = "<TAB>",
|
["if"] = "@function.inner",
|
||||||
node_decremental = "<S-TAB>",
|
["ac"] = "@class.outer",
|
||||||
|
["ic"] = "@class.inner",
|
||||||
|
["al"] = "@loop.outer",
|
||||||
|
["il"] = "@loop.inner",
|
||||||
|
["ib"] = "@block.inner",
|
||||||
|
["ab"] = "@block.outer",
|
||||||
|
["ir"] = "@parameter.inner",
|
||||||
|
["ar"] = "@parameter.outer",
|
||||||
|
["a="] = "@assignment.outer",
|
||||||
|
["i="] = "@assignment.inner",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
indent = { enable = true },
|
},
|
||||||
autopairs = { { enable = true } },
|
rainbow = {
|
||||||
textobjects = {
|
enable = true,
|
||||||
select = {
|
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
|
||||||
enable = true,
|
max_file_lines = 2000, -- Do not enable for files with more than specified lines
|
||||||
-- Automatically jump forward to textobj, similar to targets.vim
|
},
|
||||||
lookahead = true,
|
},
|
||||||
keymaps = {
|
|
||||||
-- You can use the capture groups defined in textobjects.scm
|
|
||||||
["af"] = "@function.outer",
|
|
||||||
["if"] = "@function.inner",
|
|
||||||
["ac"] = "@class.outer",
|
|
||||||
["ic"] = "@class.inner",
|
|
||||||
["al"] = "@loop.outer",
|
|
||||||
["il"] = "@loop.inner",
|
|
||||||
["ib"] = "@block.inner",
|
|
||||||
["ab"] = "@block.outer",
|
|
||||||
["ir"] = "@parameter.inner",
|
|
||||||
["ar"] = "@parameter.outer",
|
|
||||||
["a="] = "@assignment.outer",
|
|
||||||
["i="] = "@assignment.inner",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
rainbow = {
|
|
||||||
enable = true,
|
|
||||||
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
|
|
||||||
max_file_lines = 2000, -- Do not enable for files with more than specified lines
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
return {
|
return {
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
init = function()
|
opts = {
|
||||||
vim.o.timeout = true
|
preset = "helix",
|
||||||
vim.o.timeoutlen = 300
|
},
|
||||||
end,
|
keys = {
|
||||||
}
|
{
|
||||||
|
"<leader>?",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ global = false })
|
||||||
|
end,
|
||||||
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user