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}