main
1-- Extra plugins and customizations
2return {
3 -- Disable Mason - use Nix-managed LSPs instead
4 {
5 "williamboman/mason.nvim",
6 enabled = false,
7 },
8 {
9 "williamboman/mason-lspconfig.nvim",
10 enabled = false,
11 },
12
13 -- Colorscheme
14 {
15 "folke/tokyonight.nvim",
16 lazy = false,
17 priority = 1000,
18 opts = {
19 style = "night",
20 },
21 },
22
23 -- vim-rsi: Readline style insertion
24 { "tpope/vim-rsi" },
25
26 -- Better whitespace handling
27 {
28 "ntpeters/vim-better-whitespace",
29 cmd = "StripWhitespace",
30 keys = {
31 { "<leader>S", "<cmd>StripWhitespace<cr>", desc = "Strip Whitespace" },
32 },
33 },
34
35 -- Mini.align for alignment
36 {
37 "nvim-mini/mini.align",
38 config = true,
39 },
40
41 -- Toggle terminal
42 {
43 "akinsho/toggleterm.nvim",
44 version = "*",
45 opts = {
46 size = 20,
47 open_mapping = [[<c-`>]],
48 direction = "float",
49 close_on_exit = true,
50 },
51 },
52
53 -- Markdown rendering
54 {
55 "MeanderingProgrammer/render-markdown.nvim",
56 dependencies = { "nvim-treesitter/nvim-treesitter" },
57 ft = { "markdown" },
58 config = true,
59 },
60
61 -- Debug print statements
62 {
63 "andrewferrier/debugprint.nvim",
64 config = true,
65 keys = {
66 { "g?p", mode = "n", desc = "Debug print below" },
67 { "g?P", mode = "n", desc = "Debug print above" },
68 { "g?v", mode = "n", desc = "Debug print variable below" },
69 { "g?V", mode = "n", desc = "Debug print variable above" },
70 },
71 },
72
73 -- Switch between values (yes/no, true/false, etc.)
74 {
75 "AndrewRadev/switch.vim",
76 config = function()
77 vim.g.switch_mapping = ""
78 vim.g["switch_custom_definitions"] = {
79 vim.fn["switch#NormalizedCase"]({ "yes", "no" }),
80 vim.fn["switch#NormalizedCase"]({ "on", "off" }),
81 vim.fn["switch#NormalizedCase"]({ "true", "false" }),
82 vim.fn["switch#NormalizedCase"]({ "enable", "disable" }),
83 vim.fn["switch#NormalizedCase"]({ "enabled", "disabled" }),
84 { "==", "!=" },
85 }
86 end,
87 keys = {
88 { "<leader>sx", "<cmd>Switch<cr>", desc = "Switch value" },
89 },
90 },
91
92 -- Highlight function arguments
93 {
94 "m-demare/hlargs.nvim",
95 config = true,
96 },
97
98 -- Diffview for git diffs
99 {
100 "sindrets/diffview.nvim",
101 cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewFileHistory" },
102 keys = {
103 { "<leader>gd", "<cmd>DiffviewOpen<cr>", desc = "Diffview Open" },
104 { "<leader>gq", "<cmd>DiffviewClose<cr>", desc = "Diffview Close" },
105 { "<leader>gh", "<cmd>DiffviewFileHistory %<cr>", desc = "File History" },
106 { "<leader>gH", "<cmd>DiffviewFileHistory<cr>", desc = "Branch History" },
107 },
108 },
109}