[Perf] Improve startup performance by over 2x

This commit is contained in:
2025-11-10 19:46:05 +01:00
parent 3b9e90ea5a
commit 2e3601f2cb
17 changed files with 133 additions and 180 deletions

View File

@@ -42,9 +42,6 @@ keymap.set("n", "<leader>lc", ":VimtexCompile<CR>", opts("Compile latex document
keymap.set("n", "<leader>lv", ":VimtexView<CR>", opts("View compiled latex pdf")) -- View compiled PDF
keymap.set("n", "<leader>lq", ":VimtexStop<CR>", opts("Stop Compiling document")) -- Stop compilation
-- Markdown-Preview
keymap.set("n", "<leader><leader>m", ":MarkdownPreview<CR>", opts("Preview Markdown document in browser")) -- Stop compilation
-- window navigation
keymap.set("n", "<A-h>", "<C-w>h", opts())
keymap.set("n", "<A-j>", "<C-w>j", opts())

View File

@@ -2,6 +2,7 @@ vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.opt.backspace = "2"
vim.opt.termguicolors = true
-- title
vim.opt.title = true

View File

@@ -1,8 +1,6 @@
return {
"aznhe21/actions-preview.nvim",
config = function()
-- Configure actions-preview.nvim
require("actions-preview").setup({
opts = {
-- Floating window configuration (optional)
max_width = 80, -- Max width of the preview window
max_height = 12, -- Max height of the preview window
@@ -10,10 +8,8 @@ return {
min_height = 4, -- Minimum height for the preview window
-- Keymaps (optional)
keymaps = {
-- Trigger code action preview with a keybinding (example using <leader>a)
{ "n", "<leader>ca", vim.lsp.buf.code_action },
},
})
end,
keys = {
{ "<leader>ca", vim.lsp.buf.code_action, desc = "View code actions" },
},
}

View File

@@ -6,6 +6,7 @@ return {
dependencies = {
"nvimtools/none-ls-extras.nvim",
},
event = { "BufReadPre", "BufNewFile" },
config = function()
local null_ls = require("null-ls")

View File

@@ -1,5 +1,6 @@
return {
"lervag/vimtex",
event = "BufNew",
config = function()
-- vimtex settings
-- vim.g.vimtex_view_method = 'zathura' -- PDF viewer (example: zathura, or use 'skim' for macOS)

View File

@@ -3,6 +3,7 @@ return {
"akinsho/bufferline.nvim",
version = "*",
dependencies = "nvim-tree/nvim-web-devicons",
event = "BufRead",
config = function()
local bufferline = require("bufferline")
bufferline.setup({

View File

@@ -1,6 +1,7 @@
return {
-- open file at previous position
"ethanholz/nvim-lastplace",
event = { "BufReadPre", "BufNewFile" },
config = function()
require("nvim-lastplace").setup({})
end,

View File

@@ -5,6 +5,9 @@ return {
"MunifTanjim/nui.nvim",
},
opts = { lsp = { auto_attach = true } },
keys = {
{ "<leader><leader>n", ":Navbuddy<CR>", desc = "open navbuddy menu" }
},
config = function()
local actions = require("nvim-navbuddy.actions")
require("nvim-navbuddy").setup({
@@ -140,7 +143,5 @@ return {
},
custom_hl_group = nil, -- "Visual" or any other hl group to use instead of inverted colors
})
vim.keymap.set("n", "<leader><leader>n", ":Navbuddy<CR>", { silent = true, desc = "open navbuddy menu" })
end,
}

View File

@@ -11,12 +11,53 @@ return {
},
},
keys = {
{ "<leader>ff", require("telescope.builtin").find_files, desc = "Telescope find files" },
{ "<leader>flg", require("telescope.builtin").live_grep, desc = "Telescope live grep" },
{ "<leader>fg", function ()
require( 'telescope' ).extensions.live_grep_args.live_grep_args()
end, desc = "Telescope live grep args" },
{ "<leader>fb", require("telescope.builtin").buffers, desc = "Telescope buffers" },
{ "<leader>fh", require("telescope.builtin").help_tags, desc = "Telescope nvim functions" },
{ "<leader>ft", ":TodoTelescope<CR>", desc = "Telescope TODOs" },
-- Git
{ "<leader>fld", require("telescope.builtin").git_status, desc = "Telescope git diff" },
{ "<leader>flc", require("telescope.builtin").git_commits, desc = "Telescope git commits" },
{ "<leader>flf", require("telescope.builtin").git_files, desc = "Telescope git files" },
-- Recent Commands
{ "<leader>foc", ":Telescope command_history<CR>", desc = "Telescope recent commands" },
-- Recent Searches
{ "<leader>fos", ":Telescope search_history<CR>", desc = "Telescope recent searches" },
-- Old Files
{ "<leader>fr", require("telescope.builtin").oldfiles, desc = "Telescope recent files" },
-- Quickfix Items
{ "<leader>fq", ":Telescope quickfix<CR>", desc = "Telescope quickfix items" },
-- Spell Suggestions
{ "<leader>fs", ":Telescope spell_suggest<CR>", desc = "Telescope spellsuggestions" },
-- Diagnostics
{ "<leader>fd", ":Telescope diagnostics<CR>", desc = "Telescope Diagnostics" },
-- Notifications
{ "<leader>fn", ":Telescope notify<CR>", desc = "Telescope Notifications" },
-- Implementations
{ "<leader>fi", ":Telescope lsp_implementations<CR>", desc = "Telescope lsp implementations" },
},
config = function()
local builtin = require("telescope.builtin")
local actions = require("telescope.actions")
local opts = { silent = true }
local telescope = require("telescope")
local lga_actions = require("telescope-live-grep-args.actions")
@@ -42,72 +83,5 @@ return {
})
telescope.load_extension("live_grep_args")
opts.desc = "telescope find files"
vim.keymap.set("n", "<leader>ff", builtin.find_files, opts)
opts.desc = "telescope live grep"
vim.keymap.set("n", "<leader>flg", builtin.live_grep, opts)
opts.desc = "telescope live grep args"
local function start_live_grep_args()
telescope.extensions.live_grep_args.live_grep_args()
end
vim.keymap.set("n", "<leader>fg", start_live_grep_args, opts)
opts.desc = "telescope buffers"
vim.keymap.set("n", "<leader>fb", builtin.buffers, opts)
opts.desc = "Show nvim functions"
vim.keymap.set("n", "<leader>fh", builtin.help_tags, opts)
opts.desc = "Telescope TODOs"
vim.keymap.set("n", "<leader>ft", ":TodoTelescope<CR>", opts)
-- Git
opts.desc = "Show git diff"
vim.keymap.set("n", "<leader>fld", builtin.git_status, opts)
opts.desc = "Show git commits"
vim.keymap.set("n", "<leader>flc", builtin.git_commits, opts)
opts.desc = "Show git files"
vim.keymap.set("n", "<leader>flf", builtin.git_files, opts)
-- Recent Commands
opts.desc = "Show recent commands"
vim.keymap.set("n", "<leader>foc", ":Telescope command_history<CR>", opts)
-- Recent Searches
opts.desc = "Show recent searches"
vim.keymap.set("n", "<leader>fos", ":Telescope search_history<CR>", opts)
-- Old Files
opts.desc = "Show recent files"
vim.keymap.set("n", "<leader>fr", builtin.oldfiles, opts)
-- Quickfix Items
opts.desc = "Show quickfix items"
vim.keymap.set("n", "<leader>fq", ":Telescope quickfix<CR>", opts)
-- Spell Suggestions
opts.desc = "Show spell suggestions"
vim.keymap.set("n", "<leader>fs", ":Telescope spell_suggest<CR>", opts)
-- Diagnostics
opts.desc = "Show diagnostics"
vim.keymap.set("n", "<leader>fd", ":Telescope diagnostics<CR>", opts)
-- Notifications
opts.desc = "Show notifications"
vim.keymap.set("n", "<leader>fn", ":Telescope notify<CR>", opts)
-- Implementations
opts.desc = "Show implementations"
vim.keymap.set("n", "<leader>fi", ":Telescope lsp_implementations<CR>", opts)
-- quickfix
opts.desc = "Show quickfix list"
vim.keymap.set("n", "<leader>fq", ":Telescope quickfix<CR>", opts)
end,
}

View File

@@ -9,10 +9,36 @@ return {
"orjangj/neotest-ctest",
"rouge8/neotest-rust",
},
keys = {},
keys = {
-- Run nearest test
{ "<leader><leader>tr", '<cmd>lua require("neotest").run.run()<cr>', desc = "Run nearest test" },
-- Run all tests in the current file
{
"<leader><leader>tf",
'<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>',
desc = "Run all tests in current file",
},
-- Stop running tests
{ "<leader><leader>ts", '<cmd>lua require("neotest").run.stop()<cr>', desc = "Stop tests" },
{ "<leader><leader>ta", '<cmd>lua require("neotest").run.attach()<cr>', desc = "Attach to nearest test" },
{ "<leader><leader>tn", "<cmd>Neotest jump next<cr>", desc = "Jump to next test" },
{ "<leader><leader>tp", "<cmd>Neotest jump prev<cr>", desc = "Jump to previous test" },
-- Show test summary
{ "<leader><leader>tv", "<cmd>Neotest summary<cr>", desc = "Show neotest test summary" },
-- Toggle the Neotest panel
{ "<leader><leader>to", "<cmd>Neotest output<cr>", desc = "Show neotest output" },
{ "<leader><leader>tn", "<cmd>Neotest output-panel<cr>", desc = "Show neotest output as panel" },
},
config = function()
local neotest = require("neotest")
local keymap = vim.keymap.set
-- General setup for neotest
neotest.setup({
@@ -31,38 +57,5 @@ return {
})
-- Keybinding Setup
local opts = { noremap = true, silent = true }
-- Run nearest test
opts.desc = "Run nearest test"
keymap("n", "<leader><leader>tr", '<cmd>lua require("neotest").run.run()<cr>', opts)
-- Run all tests in the current file
opts.desc = "Run all tests in current file"
keymap("n", "<leader><leader>tf", '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', opts)
-- Stop running tests
opts.desc = "Stop tests"
keymap("n", "<leader><leader>ts", '<cmd>lua require("neotest").run.stop()<cr>', opts)
opts.desc = "Attach to nearest test"
keymap("n", "<leader><leader>ta", '<cmd>lua require("neotest").run.attach()<cr>', opts)
opts.desc = "Jump to next test"
keymap("n", "<leader><leader>tn", "<cmd>Neotest jump next<cr>", opts)
opts.desc = "Jump to previous test"
keymap("n", "<leader><leader>tp", "<cmd>Neotest jump prev<cr>", opts)
-- Show test summary
opts.desc = "Show neotest test summary"
keymap("n", "<leader><leader>tv", "<cmd>Neotest summary<cr>", opts)
-- Toggle the Neotest panel
opts.desc = "Show neotest output"
keymap("n", "<leader><leader>to", "<cmd>Neotest output<cr>", opts)
opts.desc = "Show neotest output as panel"
keymap("n", "<leader><leader>tn", "<cmd>Neotest output-panel<cr>", opts)
end,
}

View File

@@ -1,21 +1,16 @@
return {
"uga-rosa/ccc.nvim",
config = function()
local ccc = require("ccc")
vim.opt.termguicolors = true
ccc.setup({
opts = {
highlighter = {
auto_enable = false,
lsp = true,
},
})
local keymap = vim.keymap
keymap.set(
"n",
},
keys = {
{
"<leader>cp",
"<cmd>CccPick<CR>",
{ noremap = true, silent = true, desc = "Toggle colour picker" }
)
end,
desc = "Toggle colour picker",
},
},
}

View File

@@ -3,6 +3,9 @@ return {
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
ft = { "markdown" },
keys = {
{ "<leader><leader>m", ":MarkdownPreview<CR>", desc = "Preview Markdown document in browser" },
},
build = function(plugin)
if vim.fn.executable("npx") then
vim.cmd("!cd " .. plugin.dir .. " && cd app && npx --yes yarn install")

View File

@@ -1,22 +1,17 @@
return {
"fedepujol/move.nvim",
config = function()
local opts = require("utils").opts
require("move").setup({})
local keymap = vim.keymap
-- Move lines up and down
keymap.set("n", "<A-S-k>", ":MoveLine(-1)<CR>", opts("Move line up"))
keymap.set("n", "<A-S-j>", ":MoveLine(1)<CR>", opts("Move line down"))
keymap.set("n", "<leader>mk", ":MoveLine(-1)<CR>", opts("Move line up"))
keymap.set("n", "<leader>mj", ":MoveLine(1)<CR>", opts("Move line down"))
keys = {
{ "<A-S-k>", ":MoveLine(-1)<CR>", desc = "Move line up" },
{ "<A-S-j>", ":MoveLine(1)<CR>", desc = "Move line down" },
{ "<leader>mk", ":MoveLine(-1)<CR>", desc = "Move line up" },
{ "<leader>mj", ":MoveLine(1)<CR>", desc = "Move line down" },
-- Move blocks in visual mode
keymap.set("v", "<A-k>", ":MoveBlock(-1)<CR>", opts("Move line up"))
keymap.set("v", "<A-j>", ":MoveBlock(1)<CR>", opts("Move line down"))
{ "<A-k>", ":MoveBlock(-1)<CR>", desc = "Move line up" },
{ "<A-j>", ":MoveBlock(1)<CR>", desc = "Move line down" },
-- Move lines in insert mode
keymap.set("i", "<A-k>", "<C-o>:MoveLine(-1)<CR>", opts("Move line up"))
keymap.set("i", "<A-j>", "<C-o>:MoveLine(1)<CR>", opts("Move line down"))
end,
{ "<A-k>", "<C-o>:MoveLine(-1)<CR>", desc = "Move line up" },
{ "<A-j>", "<C-o>:MoveLine(1)<CR>", desc = "Move line down" },
},
}

View File

@@ -1,6 +1,5 @@
return {
"smoka7/multicursors.nvim",
event = "VeryLazy",
dependencies = {
"nvimtools/hydra.nvim",
},

View File

@@ -1,19 +1,15 @@
return {
"danymat/neogen",
config = function()
local opts = { noremap = true, silent = true, desc = "Generate docs" }
vim.keymap.set("n", "<leader>gd", ":lua require('neogen').generate()<CR>", opts)
opts.desc = "Generate function docs"
vim.keymap.set("n", "<leader>gg", ":lua require('neogen').generate( { type = 'func' } )<CR>", opts)
opts.desc = "Generate type docs"
vim.keymap.set("n", "<leader>gt", ":lua require('neogen').generate( { type = 'type' } )<CR>", opts)
opts.desc = "Generate class docs"
vim.keymap.set("n", "<leader>gc", ":lua require('neogen').generate( { type = 'class' } )<CR>", opts)
require("neogen").setup({
opts = {
snippet_engine = "luasnip",
})
end,
},
keys = {
{ "<leader>gd", ":lua require('neogen').generate()<CR>", desc = "Autogenerate docs" },
{ "<leader>gg", ":lua require('neogen').generate( { type = 'func' } )<CR>", desc = "Generate function docs" },
{ "<leader>gt", ":lua require('neogen').generate( { type = 'type' } )<CR>", desc = "Generate type docs" },
{ "<leader>gc", ":lua require('neogen').generate( { type = 'class' } )<CR>", desc = "Generate class docs" },
},
}

View File

@@ -1,7 +1,7 @@
return {
"kylechui/nvim-surround",
version = "*",
event = "VeryLazy",
event = "InsertEnter",
config = function()
require("nvim-surround").setup()
end,

View File

@@ -1,14 +1,13 @@
return {
-- view buffer w/o distractions
"folke/zen-mode.nvim",
config = function()
require("zen-mode").setup({
opts = {
window = {
width = 1,
height = 1,
},
})
vim.keymap.set("n", "<leader>z", ":ZenMode<CR>", { silent = true, desc = "open current buffer in zen mode" })
end,
},
keys = {
{ "<leader>z", ":ZenMode<CR>", desc = "open current buffer in zen mode" },
},
}