0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Gotten slightly fed up with some things that were just not right in nvim. Fixed them.

+274 -312
+4
.luarc.json
··· 1 + { 2 + "diagnostics.globals": ["LazyVim", "vim"], 3 + "diagnostics.disable": ["undefined-global", "undefined-doc-name"] 4 + }
+1 -14
configs/nvim/lazyvim.json
··· 5 5 "lazyvim.plugins.extras.editor.harpoon2", 6 6 "lazyvim.plugins.extras.editor.outline", 7 7 "lazyvim.plugins.extras.editor.refactoring", 8 - "lazyvim.plugins.extras.formatting.biome", 9 - "lazyvim.plugins.extras.formatting.prettier", 10 - "lazyvim.plugins.extras.lang.clangd", 11 8 "lazyvim.plugins.extras.lang.git", 12 - "lazyvim.plugins.extras.lang.gleam", 13 - "lazyvim.plugins.extras.lang.go", 14 - "lazyvim.plugins.extras.lang.json", 15 - "lazyvim.plugins.extras.lang.kotlin", 16 - "lazyvim.plugins.extras.lang.markdown", 17 - "lazyvim.plugins.extras.lang.php", 18 - "lazyvim.plugins.extras.lang.sql", 19 - "lazyvim.plugins.extras.lang.tailwind", 20 - "lazyvim.plugins.extras.lang.toml", 21 - "lazyvim.plugins.extras.lang.yaml", 22 9 "lazyvim.plugins.extras.test.core", 23 10 "lazyvim.plugins.extras.util.project", 24 - "lazyvim.plugins.extras.vscode" 11 + "lazyvim.plugins.extras.ai.copilot" 25 12 ], 26 13 "install_version": 7, 27 14 "version": 8
+29 -9
configs/nvim/lua/config/keymaps.lua
··· 16 16 -- vim.api.nvim_set_keymap("i", "<Left>", "<ESC>h", {}) 17 17 -- vim.api.nvim_set_keymap("i", "<Right>", "<ESC>l", {}) 18 18 19 - -- I can't get rid of my ,-leaderkey. But I do wanna use space in the Helix-like space menu way... so yes! 20 19 ---@diagnostic disable-next-line: assign-type-mismatch 21 20 map("n", "<Space>f", function() 22 - Snacks.picker.files({ cwd = true }) 21 + Snacks.picker.files({ cwd = true }) 23 22 end, { desc = "Open file picker (cwd)" }) 23 + 24 + 24 25 map("n", "<Space>g", function() 25 - Snacks.picker.grep() 26 + Snacks.picker.grep() 26 27 end, { desc = "Grep" }) 28 + 29 + 27 30 map("n", "<Space>b", function() 28 - Snacks.picker.buffers() 31 + Snacks.picker.buffers() 29 32 end, { desc = "Open buffer picker" }) 33 + 34 + 30 35 map("n", "<Space>s", function() 31 - Snacks.picker.lsp_symbols() 36 + Snacks.picker.lsp_symbols() 32 37 end, { desc = "Open symbol picker" }) 38 + 39 + 33 40 map("n", "<Space>S", function() 34 - Snacks.picker.lsp_symbols({ cwd = true }) 41 + Snacks.picker.lsp_symbols({ cwd = true }) 35 42 end, { desc = "Open symbol picker (cwd)" }) 43 + 44 + 36 45 map("n", "<Space>?", function() 37 - Snacks.picker.commands() 46 + Snacks.picker.commands() 38 47 end, { desc = "Open command picker" }) 48 + 49 + 39 50 map("n", "<Space>r", function() 40 - Snacks.picker.resume() 51 + Snacks.picker.resume() 41 52 end, { desc = "Resume last search" }) 53 + 54 + map("n", "<Space>o", function() 55 + Snacks.picker.oldfiles() 56 + end, { desc = "Oldfiles" }) 57 + 58 + map("n", "<Space>e", function() 59 + Snacks.explorer({ layout = { layout = { position = "right" } } }) 60 + end, { desc = "Explorer" }) 61 + 42 62 map("n", "<Space><Space>", function() 43 - Snacks.picker.resume() 63 + Snacks.picker.resume() 44 64 end, { desc = "Resume last search" }) 45 65 map("n", "<Space>c", "<cmd>normal gcc<CR>", { desc = "Comment line" }) 46 66 map("n", "<Space>\\", "<cmd>vsplit<CR>", { desc = "Vertical split" })
-6
configs/nvim/lua/config/options.lua
··· 9 9 vim.opt.mouse = "a" 10 10 11 11 vim.opt.guicursor = "n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50" 12 - 13 - vim.filetype.add({ 14 - extension = { 15 - jsonc = "json", 16 - }, 17 - })
+154 -233
configs/nvim/lua/plugins/lsp.lua
··· 1 1 return { 2 - { 3 - "stevearc/conform.nvim", 4 - opts = function() 5 - local plugin = require("lazy.core.config").plugins["conform.nvim"] 6 - ---@type conform.setupOpts 7 - local opts = { 8 - default_format_opts = { 9 - timeout_ms = 3000, 10 - async = false, 11 - quiet = false, 12 - lsp_format = "fallback", 13 - }, 14 - formatters_by_ft = { 15 - lua = { "stylua" }, 16 - fish = { "fish_indent" }, 17 - sh = { "shfmt" }, 18 - nix = { "nixfmt" }, 19 - gleam = { "gleam" }, 20 - }, 21 - -- The options you set here will be merged with the builtin formatters. 22 - -- You can also define any custom formatters here. 23 - ---@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride> 24 - formatters = { 25 - injected = { options = { ignore_errors = true } }, 26 - -- # Example of using dprint only when a dprint.json file is present 27 - -- dprint = { 28 - -- condition = function(ctx) 29 - -- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1] 30 - -- end, 31 - -- }, 32 - -- 33 - -- # Example of using shfmt with extra args 34 - -- shfmt = { 35 - -- prepend_args = { "-i", "2", "-ci" }, 36 - -- }, 37 - }, 38 - } 39 - return opts 40 - end, 41 - }, 42 - { 43 - "saecki/crates.nvim", 44 - tag = "stable", 45 - config = function() 46 - require("crates").setup() 47 - end, 48 - }, 49 - { 50 - "nvimdev/lspsaga.nvim", 51 - config = function() 52 - require("lspsaga").setup({}) 53 - end, 54 - dependencies = { 55 - "nvim-treesitter/nvim-treesitter", 56 - "nvim-tree/nvim-web-devicons", 57 - }, 58 - }, 59 - { 60 - "nvim-treesitter/nvim-treesitter", 61 - opts = { 62 - ensure_installed = { 63 - "gleam", 64 - "rust", 65 - "erlang", 66 - "toml", 67 - "sql", 68 - "json", 69 - "lua", 70 - "markdown", 71 - "markdown_inline", 72 - "nil", 73 - "nixfmt", 74 - }, 75 - }, 76 - { 77 - "neovim/nvim-lspconfig", 78 - dependencies = { 79 - { "mason-org/mason.nvim", lazy = true }, 80 - "mason-org/mason-lspconfig.nvim", 81 - "WhoIsSethDaniel/mason-tool-installer.nvim", 82 - { "j-hui/fidget.nvim", opts = {} }, 83 - "simrat39/rust-tools.nvim", 84 - { "nvim-telescope/telescope.nvim", tag = "0.1.8" }, 85 - "Saghen/blink.cmp", 86 - }, 87 - config = function() 88 - local lspconfig = require("lspconfig") 89 - local capabilities = vim.lsp.protocol.make_client_capabilities() 90 - -- capabilities = vim.tbl_deep_extend('force', {}, capabilities, require('cmp_nvim_lsp').default_capabilities()) -- Deze regel is niet meer nodig 2 + -- 1. FORMATTING 3 + { 4 + "stevearc/conform.nvim", 5 + opts = { 6 + default_format_opts = { 7 + timeout_ms = 3000, 8 + async = false, 9 + quiet = false, 10 + lsp_format = "fallback", 11 + }, 12 + formatters_by_ft = { 13 + lua = { "stylua" }, 14 + fish = { "fish_indent" }, 15 + sh = { "shfmt" }, 16 + nix = { "nixfmt" }, 17 + gleam = { "gleam" }, 18 + }, 19 + formatters = { 20 + injected = { options = { ignore_errors = true } }, 21 + }, 22 + }, 23 + }, 24 + 25 + -- 2. RUST CRATES 26 + { 27 + "saecki/crates.nvim", 28 + tag = "stable", 29 + event = { "BufRead Cargo.toml" }, 30 + opts = {}, 31 + }, 32 + 33 + -- 3. LSPSaga 34 + { 35 + "nvimdev/lspsaga.nvim", 36 + config = function() 37 + require("lspsaga").setup({}) 38 + end, 39 + dependencies = { 40 + "nvim-treesitter/nvim-treesitter", 41 + "nvim-tree/nvim-web-devicons", 42 + }, 43 + }, 44 + 45 + -- 4. TREESITTER 46 + { 47 + "nvim-treesitter/nvim-treesitter", 48 + opts = function(_, opts) 49 + if type(opts.ensure_installed) == "table" then 50 + vim.list_extend(opts.ensure_installed, { 51 + "gleam", "rust", "erlang", "typescript", "nix", 52 + "toml", "sql", "json", "lua", "markdown", 53 + "markdown_inline", "css" 54 + }) 55 + end 56 + end, 57 + }, 58 + 59 + -- 5. MASON (Tool Installer) 60 + -- install the tools that aren't LSPs (formatters/linters) 61 + { 62 + "mason-org/mason.nvim", 63 + opts = function(_, opts) 64 + opts.ensure_installed = opts.ensure_installed or {} 65 + vim.list_extend(opts.ensure_installed, { 66 + "shfmt", 67 + }) 68 + end, 69 + }, 70 + 71 + -- 6. LSP CONFIG 72 + { 73 + "neovim/nvim-lspconfig", 74 + opts = { 75 + servers = { 76 + -- Nix 77 + nil_ls = { 78 + -- Installed in neovim.nix 79 + 80 + mason = false, 81 + command = "nil", 82 + formatting = { command = { "nixfmt" } }, 83 + }, 84 + 85 + -- Web styling 86 + -- Tailwind classes 87 + tailwindcss = {}, 88 + -- CSS 89 + cssls = {}, 90 + 91 + -- Markdown 92 + markdown_oxide = { 93 + -- Installed in neovim.nix 94 + 95 + mason = false 96 + }, 97 + 98 + -- Lua 99 + lua_ls = { 100 + -- Installed in neovim.nix 101 + 102 + mason = false, 103 + settings = { 104 + Lua = { 105 + completion = { callSnippet = "Replace" }, 106 + }, 107 + }, 108 + }, 109 + 110 + -- Rust 111 + rust_analyzer = { 112 + settings = { 113 + ["rust-analyzer"] = { 114 + cargo = { allFeatures = true }, 115 + }, 116 + }, 117 + }, 118 + 119 + -- Gleam 120 + gleam = {}, 91 121 92 - local servers = { 93 - ["nil"] = { 94 - command = "nil", 95 - formatting = { 96 - command = { "nixfmt" }, 97 - }, 98 - }, 99 - lua_ls = { 100 - settings = { 101 - Lua = { 102 - completion = { 103 - callSnipped = "Replace", 104 - }, 105 - }, 106 - }, 107 - }, 108 - rust_analyzer = { 109 - settings = { 110 - ["rust_analyzer"] = { 111 - cargo = { 112 - allFeatures = true, 113 - }, 114 - }, 115 - }, 116 - }, 117 - prettier = {}, 118 - nixfmt = {}, 119 - taplo = {}, 120 - biome = {}, 121 - ktlint = {}, 122 - sqlfluff = {}, 123 - ["markdown-toc"] = {}, 124 - ["markdownlint-cli2"] = {}, 125 - } 122 + -- TOML 123 + taplo = { 124 + -- Installed in neovim.nix 126 125 127 - require("mason").setup() 126 + mason = false 127 + }, 128 128 129 - local ensure_installed = vim.tbl_keys(servers or {}) 130 - vim.list_extend(ensure_installed, { "stylua" }) 131 - require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) 129 + -- Zig 130 + zls = {}, 132 131 133 - require("mason-lspconfig").setup({ 134 - ensure_installed = {}, 135 - automatic_installation = {}, 136 - handlers = { 137 - function(server_name) 138 - local server = servers[server_name] or {} 139 - server.capabilities = 140 - vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) 141 - require("lspconfig")[server_name].setup(server) 142 - end, 143 - }, 144 - }) 132 + -- Web linter-formatter 133 + biome = { 134 + -- Installed in neovim.nix 145 135 146 - lspconfig.gleam.setup({ 147 - capabilities = capabilities, 148 - }) 149 - lspconfig.rust_analyzer.setup({ 150 - capabilities = capabilities, 151 - }) 136 + mason = false 137 + }, 152 138 153 - local is_windows = vim.fn.has("win64") == 1 or vim.fn.has("win32") == 1 or vim.fn.has("win16") == 1 154 - local omnisharp_path = "" 155 - if is_windows then 156 - omnisharp_path = vim.fs.normalize("~/omnisharp/OmniSharp.exe") 157 - else 158 - omnisharp_path = vim.fs.normalize("~/omnisharp/OmniSharp") 159 - end 139 + -- Web linter-formatter 140 + prettier = { 141 + -- Installed in neovim.nix 160 142 161 - lspconfig.omnisharp.setup({ 162 - cmd = { omnisharp_path, "--languageserver" }, 163 - filetypes = { "cs", "razor" }, 164 - root_dir = lspconfig.util.root_pattern("*.sln", "Directory.Build.props", ".git"), 165 - capabilities = capabilities, 166 - settings = { 167 - FormattingOptions = { 168 - EnableEditorConfigSupport = true, 169 - OrganizeImports = true, 170 - }, 171 - MsBuild = { 172 - LoadProjectsOnDemand = nil, 173 - }, 174 - RoslynExtensionsOptions = { 175 - EnableImportCompletion = true, 176 - AnalyzeOpenDocumentsOnly = nil, 177 - }, 178 - Sdk = { 179 - IncludePrereleases = true, 180 - }, 181 - }, 182 - }) 143 + mason = false 144 + }, 183 145 184 - vim.api.nvim_create_autocmd("LspAttach", { 185 - group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), 186 - callback = function(event) 187 - local map = function(keys, func, desc, mode) 188 - mode = mode or "n" 189 - vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) 190 - end 146 + -- Lua 147 + stylua = { 148 + -- Installed in neovim.nix 191 149 192 - map("gd", vim.lsp.buf.definition, "[G]oto [D]efinition") 193 - map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") 194 - map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") 195 - map("<Space>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") 196 - map("<Space>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") 197 - map( 198 - "<Space>ws", 199 - require("telescope.builtin").lsp_dynamic_workspace_symbols, 200 - "[W]orkspace [S]ymbols" 201 - ) 202 - map("<Space>rn", vim.lsp.buf.rename, "[R]e[n]ame") 203 - map("<Space>a", vim.lsp.buf.code_action, "[C]ode [A]ction") 204 - map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclartion") 150 + mason = false, 151 + }, 205 152 206 - local client = vim.lsp.get_client_by_id(event.data.client_id) 207 - if 208 - client 209 - and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) 210 - then 211 - local highlight_augroup = 212 - vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = true }) 213 - vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { 214 - buffer = event.buf, 215 - group = highlight_augroup, 216 - callback = vim.lsp.buf.document_highlight, 217 - }) 153 + -- Inclusivity linter 154 + woke = { 155 + -- Installed in neovim.nix 218 156 219 - vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { 220 - buffer = event.buf, 221 - group = highlight_augroup, 222 - callback = vim.lsp.buf.clear_references, 223 - }) 157 + mason = false, 158 + }, 224 159 225 - vim.api.nvim_create_autocmd({ "LspDetach" }, { 226 - group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }), 227 - callback = function(event2) 228 - vim.lsp.buf.clear_references() 229 - vim.api.nvim_clear_autocmds({ 230 - group = "kickstart-lsp-highlight", 231 - buffer = event2.buf, 232 - }) 233 - end, 234 - }) 235 - end 236 - if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then 237 - vim.lsp.inlay_hint.enable(true, { bufnr = event.buf }) 160 + -- AST-grep 161 + ['ast-grep'] = { 162 + -- Installed in neovim.nix 238 163 239 - map("<Space>th", function() 240 - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf })) 241 - end, "[T]oggle Inlay [H]ints") 242 - end 243 - end, 244 - }) 245 - end, 246 - }, 247 - }, 164 + mason = false, 165 + }, 166 + }, 167 + }, 168 + }, 248 169 }
+48 -38
configs/nvim/lua/plugins/snacks.lua
··· 1 1 return { 2 - { 3 - "folke/snacks.nvim", 4 - opts = { 5 - explorer = { 6 - enabled = false, 7 - }, 8 - dashboard = { 9 - preset = { 10 - pick = function(cmd, opts) 11 - return LazyVim.pick(cmd, opts)() 12 - end, 13 - header = [[ 2 + { 3 + "folke/snacks.nvim", 4 + opts = { 5 + explorer = { 6 + enabled = false, 7 + }, 8 + dashboard = { 9 + preset = { 10 + pick = function(cmd, opts) 11 + return LazyVim.pick(cmd, opts)() 12 + end, 13 + header = [[ 14 + =================================================================== 15 + ------------------------- Mar's Nvim! ------------------------- 16 + =================================================================== 17 + 18 + 19 + 14 20 15 - ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 16 - ░░░░░░░░░░░░░ ░░░░░░░ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░ ░ ░ ░░░░░░░ ░░░░░░░░░░░░ 17 - ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒ ▒ ▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ 18 - ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒ ▒ ▒ ▒ ▒ ▒▒▒▒▒▒▒▒▒▒▒▒ 19 - ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 20 - ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓ ▓ ▓▓▓▓▓ ▓ ▓▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 21 - ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 22 - █████████████ ███████ ███ █ █ ████████ ██████████████ ██ ███████ ███████ █ ███████ ████████████ 23 - █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 24 21 ]], 25 - -- stylua: ignore 26 - ---@type snacks.dashboard.Item[] 27 - keys = { 28 - { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, 29 - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, 30 - { icon = " ", key = "/", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, 31 - { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, 32 - { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" }, 33 - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, 34 - { icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" }, 35 - { icon = "", key = "l", desc = "Plugins", action = ":Lazy" }, 36 - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, 37 - }, 38 - }, 39 - }, 40 - }, 41 - }, 22 + -- Commented out my LazyVim-style header, bit grotesque, innit? 23 + -- header = [[ 24 + -- 25 + -- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 26 + -- ░░░░░░░░░░░░░ ░░░░░░░ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░ ░ ░ ░░░░░░░ ░░░░░░░░░░░░ 27 + -- ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒ ▒ ▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ 28 + -- ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒ ▒ ▒ ▒ ▒ ▒▒▒▒▒▒▒▒▒▒▒▒ 29 + -- ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 30 + -- ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓ ▓ ▓▓▓▓▓ ▓ ▓▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 31 + -- ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓ 32 + -- █████████████ ███████ ███ █ █ ████████ ██████████████ ██ ███████ ███████ █ ███████ ████████████ 33 + -- █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 34 + -- ]], 35 + 36 + -- stylua: ignore 37 + ---@type snacks.dashboard.Item[] 38 + keys = { 39 + { icon = "", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, 40 + { icon = "", key = "/", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, 41 + { icon = "", key = "e", desc = "Explorer", action = ":lua Snacks.explorer({ layout = { layout = { position = \"right\" } } })" }, 42 + { icon = "", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, 43 + { icon = "", key = "s", desc = "Restore Session", section = "session" }, 44 + { icon = "", key = "j", desc = "LazyJJ", action = ":Lazyjj" }, 45 + { icon = "", key = "g", desc = "LazyGit", action = ":LazyGit" }, 46 + { icon = "", key = "q", desc = "Quit", action = ":qa" }, 47 + }, 48 + }, 49 + }, 50 + }, 51 + }, 42 52 }
+38 -12
home/modules/development/neovim.nix
··· 10 10 vimAlias = true; 11 11 12 12 extraPackages = with pkgs; [ 13 + # Lua tools for the editor running on Lua 13 14 lua-language-server 14 15 stylua 15 - gofumpt 16 - gotools 16 + 17 + # Taplo, TOML ls,linter and formatter 17 18 taplo 19 + 20 + # Unzip is depended on for unzipping certain dependencies. 21 + # I have decided not to be too opinionated about this today. 22 + unzip 23 + 24 + # AST-Grep 25 + ast-grep 26 + 27 + # Node is required as runtime for some LSP's, among them css-ls and tailwindcss-ls 28 + nodejs 29 + 30 + # SQL linter-formatter 31 + sqlfluff 32 + 33 + # Markdown LSP and toc creator 34 + markdown-oxide 18 35 markdown-toc 19 - markdownlint-cli2 20 - markdownlint-cli 21 - prettier 36 + 37 + # Inclusivity linter 38 + woke 39 + 40 + # More generic web-oriented linter-formatters: Biome, Prettier 22 41 biome 23 - nixfmt 42 + prettier 43 + 44 + # And duh 24 45 nil 25 - ripgrep 46 + nixfmt 47 + 48 + # FD 26 49 fd 27 - git 28 - gcc 50 + 51 + # TS 29 52 tree-sitter 30 - lazygit 31 - lazyjj 32 - nodejs 53 + 54 + # GCC 55 + gcc 56 + 57 + # RG 58 + ripgrep 33 59 ]; 34 60 35 61 initLua = ''