Configuration for my NixOS based systems and Home Manager
0
fork

Configure Feed

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

Autoformat nvim lua files

+216 -388
+23 -92
nvim/init.lua
··· 6 6 require("plugins") 7 7 -- Color Scheme 8 8 vim.cmd.colorscheme "catppuccin" 9 - --vim.cmd([[colorscheme kanagawa]]) 9 + -- vim.cmd([[colorscheme kanagawa]]) 10 10 -- Config for Nord, which I usually use 11 - --vim.g.nord_italic = false 12 - --vim.g.nord_bold = false 13 - vim.opt.background = "light" 14 - --vim.opt.background = "dark" 15 - 11 + -- vim.g.nord_italic = false 12 + -- vim.g.nord_bold = false 13 + -- vim.opt.background = "light" 14 + vim.opt.background = "dark" 16 15 17 16 -- Formatting and vim config 18 17 vim.opt.expandtab = true ··· 41 40 vim.g.sexp_enable_insert_mode_mappings = 1 42 41 43 42 -- LuaLine Config 44 - require("lualine").setup( 45 - { 46 - options = { 47 - icons_enabled = true, 48 - theme = "auto" 49 - } 50 - } 51 - ) 43 + require("lualine").setup({options = {icons_enabled = true, theme = "auto"}}) 52 44 53 45 -- CTags 54 - vim.opt.tags = vim.opt.tags + vim.fn.expand("~/.local/tmp/ctags") + vim.fn.expand("~/repos/gerbil/src/TAGS") 46 + vim.opt.tags = vim.opt.tags + vim.fn.expand("~/.local/tmp/ctags") + 47 + vim.fn.expand("~/repos/gerbil/src/TAGS") 55 48 56 49 -- Conjure 57 50 ··· 63 56 end 64 57 set_gerbil() 65 58 vim.api.nvim_create_user_command("ConjureGerbil", set_gerbil, {}) 66 - 67 - 68 59 69 60 -- Chibi-scheme 70 61 local set_chibi = function() ··· 155 146 vim.g.python3_host_prog = vim.fn.expand("~/.envs/nvim/bin/python3") 156 147 157 148 -- Set up Treesitter 158 - require("nvim-treesitter.configs").setup( 159 - { 160 - highlight = { 161 - enable = true, 162 - disable = {} 163 - }, 164 - indent = { 165 - enable = true, 166 - disable = {} 167 - }, 168 - ensure_installed = { 169 - "c", 170 - "cpp", 171 - "capnp", 172 - "cmake", 173 - "bash", 174 - "dockerfile", 175 - "diff", 176 - "devicetree", 177 - "dot", 178 - "ebnf", 179 - "elixir", 180 - "erlang", 181 - "clojure", 182 - "fortran", 183 - "go", 184 - "gomod", 185 - "gosum", 186 - "graphql", 187 - "git_config", 188 - "git_rebase", 189 - "gitcommit", 190 - "gitignore", 191 - "gleam", 192 - "julia", 193 - "fish", 194 - "toml", 195 - "haskell", 196 - "hare", 197 - "http", 198 - "html", 199 - "ini", 200 - "json", 201 - "jq", 202 - "latex", 203 - "llvm", 204 - "mermaid", 205 - "make", 206 - "meson", 207 - "ninja", 208 - "yaml", 209 - "python", 210 - "proto", 211 - "racket", 212 - "rst", 213 - "scala", 214 - "html", 215 - "tsx", 216 - "rust", 217 - "scheme", 218 - "fennel", 219 - "lua", 220 - "markdown", 221 - "markdown_inline", 222 - "sql", 223 - "thrift", 224 - "typescript", 225 - "verilog", 226 - "vim", 227 - "zig", 228 - "uxntal", 229 - "kdl" 230 - } 149 + require("nvim-treesitter.configs").setup({ 150 + highlight = {enable = true, disable = {}}, 151 + indent = {enable = true, disable = {}}, 152 + ensure_installed = { 153 + "c", "cpp", "capnp", "cmake", "bash", "dockerfile", "diff", 154 + "devicetree", "dot", "ebnf", "elixir", "erlang", "clojure", "fortran", 155 + "go", "gomod", "gosum", "graphql", "git_config", "git_rebase", 156 + "gitcommit", "gitignore", "gleam", "julia", "fish", "toml", "haskell", 157 + "hare", "http", "html", "ini", "json", "jq", "latex", "llvm", "mermaid", 158 + "make", "meson", "ninja", "yaml", "python", "proto", "racket", "rst", 159 + "scala", "html", "tsx", "rust", "scheme", "fennel", "lua", "markdown", 160 + "markdown_inline", "sql", "thrift", "typescript", "verilog", "vim", 161 + "zig", "uxntal", "kdl" 231 162 } 232 - ) 163 + }) 233 164 234 165 -- Set up Which Key? 235 166 require("which-key").setup({}) 236 167 -- ######################## 237 - --# Require other configs # 168 + -- # Require other configs # 238 169 -- ######################## 239 170 -- LSP 240 171 require("lsp")
+33 -71
nvim/lua/lsp.lua
··· 1 1 local nvim_lsp = require("lspconfig") 2 2 local capabilities = require('cmp_nvim_lsp').default_capabilities() 3 - --######################## 4 - --#### Set up LSPs #### 5 - --######################## 3 + -- ######################## 4 + -- #### Set up LSPs #### 5 + -- ######################## 6 6 7 7 local util = require("lspconfig.util") 8 8 9 9 -- Rust 10 10 -- Python LSP 11 - nvim_lsp.pylsp.setup( 12 - { 13 - --cmd = {"/home/noah/.envs/nvim/bin/pylsp"}, 14 - root_dir = function(fname) 15 - local root_files = { 16 - "pants.toml", 17 - "pyproject.toml", 18 - "setup.py", 19 - "setup.cfg", 20 - "Pipfile" 21 - } 22 - return util.find_git_ancestor(fname) or util.root_pattern(unpack(root_files))(fname) 23 - end 24 - } 25 - ) 26 - nvim_lsp.lua_ls.setup{ 11 + nvim_lsp.pylsp.setup({ 12 + -- cmd = {"/home/noah/.envs/nvim/bin/pylsp"}, 13 + root_dir = function(fname) 14 + local root_files = { 15 + "pants.toml", "pyproject.toml", "setup.py", "setup.cfg", "Pipfile" 16 + } 17 + return util.find_git_ancestor(fname) or 18 + util.root_pattern(unpack(root_files))(fname) 19 + end 20 + }) 21 + nvim_lsp.lua_ls.setup { 27 22 settings = { 28 23 Lua = { 29 24 runtime = { ··· 39 34 library = vim.api.nvim_get_runtime_file("", true) 40 35 }, 41 36 -- Do not send telemetry data containing a randomized but unique identifier 42 - telemetry = { 43 - enable = false 44 - } 37 + telemetry = {enable = false} 45 38 } 46 39 } 47 40 } 48 41 49 42 -- LSPs that just use default config 50 43 local simple_lsps = { 51 - "fennel_ls", 52 - "nil_ls", 53 - "htmx", 54 - "bzl", 55 - "bufls", 56 - "crystalline", 57 - "dockerls", 58 - "erlangls", 59 - "elixirls", 60 - "fortls", 61 - "gleam", 62 - "gopls", 63 - "hls", 64 - "jsonls", 65 - "vimls", 66 - "asm_lsp", 67 - "ccls", 68 - "pyright", 69 - -- ruff", idk if this is wrong? 70 - "ruff_lsp", 71 - "clojure_lsp", 72 - "guile_ls", 44 + "fennel_ls", "nil_ls", "htmx", "bzl", "bufls", "crystalline", "dockerls", 45 + "erlangls", "elixirls", "fortls", "gleam", "gopls", "hls", "jsonls", 46 + "vimls", "asm_lsp", "ccls", "pyright", -- ruff", idk if this is wrong? 47 + "ruff_lsp", "clojure_lsp", "guile_ls", 73 48 -- Of course the Java-based ones are verbose af 74 - "kotlin_language_server", 75 - "java_language_server", 76 - "jsonls", 77 - "pest_ls", 78 - "ocamllsp", 79 - "reason_ls", 80 - "racket_langserver", 81 - "rust_analyzer", 82 - "scheme_langserver", 83 - "sqls", 84 - "thriftls", 85 - "typst_lsp", 86 - "vhdl_ls", 87 - "yamlls", 88 - "zls", 89 - "tsserver", 90 - "eslint", 91 - "metals", 49 + "kotlin_language_server", "java_language_server", "jsonls", "pest_ls", 50 + "ocamllsp", "reason_ls", "racket_langserver", "rust_analyzer", 51 + "scheme_langserver", "sqls", "thriftls", "typst_lsp", "vhdl_ls", "yamlls", 52 + "zls", "tsserver", "eslint", "metals" 92 53 -- disabled because it's broken 93 - --"scheme_langserver", 54 + -- "scheme_langserver", 94 55 } 95 56 -- #simple_lsps is the length of the table when treated as a list... funky! 96 - for _,v in pairs(simple_lsps) do 97 - nvim_lsp[v].setup{ capabilities = capabilities } 98 - end 57 + for _, v in pairs(simple_lsps) do nvim_lsp[v].setup { 58 + capabilities = capabilities 59 + } end 99 60 100 61 -- Whenever an LSP is attached to a buffer 101 62 local on_attach = function(ev) 102 - --Enable completion triggered by <c-x><x-o> 63 + -- Enable completion triggered by <c-x><x-o> 103 64 vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' 104 65 105 66 local opts = {noremap = true, silent = true, buffer = ev.buf} ··· 113 74 vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts) 114 75 vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts) 115 76 vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts) 116 - vim.keymap.set("n", "<space>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) 77 + vim.keymap.set("n", "<space>wl", function() 78 + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 79 + end, opts) 117 80 vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts) 118 81 vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts) 119 82 vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts) ··· 122 85 vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) 123 86 vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) 124 87 vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, opts) 125 - vim.keymap.set("n", "<space>f", function() 126 - vim.lsp.buf.format{ async = true } 127 - end, opts) 88 + vim.keymap.set("n", "<space>f", 89 + function() vim.lsp.buf.format {async = true} end, opts) 128 90 vim.keymap.set("n", "<space>s", vim.lsp.buf.workspace_symbol, opts) 129 91 130 92 -- require'completion'.on_attach(client, bufnr)
+160 -225
nvim/lua/plugins.lua
··· 2 2 local ensure_lazy = function() 3 3 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 4 4 if not vim.loop.fs_stat(lazypath) then 5 - vim.fn.system( 6 - { 7 - "git", 8 - "clone", 9 - "--filter=blob:none", 10 - "https://github.com/folke/lazy.nvim.git", 11 - "--branch=stable", -- latest stable release 12 - lazypath 13 - } 14 - ) 5 + vim.fn.system({ 6 + "git", "clone", "--filter=blob:none", 7 + "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release 8 + lazypath 9 + }) 15 10 end 16 11 vim.opt.rtp:prepend(lazypath) 17 12 end 18 13 19 14 local lazy_bootstrap = ensure_lazy() 20 - if lazy_bootstrap then 21 - print("Bootstrapped lazy.nvim") 22 - end 15 + if lazy_bootstrap then print("Bootstrapped lazy.nvim") end 23 16 24 - require("lazy").setup( 17 + require("lazy").setup({ 18 + -- Color themes 19 + "shaunsingh/nord.nvim", "shaunsingh/moonlight.nvim", 20 + "folke/tokyonight.nvim", "cranberry-clockworks/coal.nvim", 21 + "hardselius/warlock", 22 + {"catppuccin/nvim", name = "catppuccin", priority = 1000}, { 23 + "neanias/everforest-nvim", 24 + version = false, 25 + lazy = false, 26 + priority = 500, -- make sure to load this before all the other start plugins 27 + main = "everforest", 28 + opts = {background = "hard"} 29 + }, {"rebelot/kanagawa.nvim", opts = {compile = true}}, 30 + -- show indents and whitespace characters 31 + "lukas-reineke/indent-blankline.nvim", -- Completion 32 + "hrsh7th/nvim-cmp", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", 33 + "hrsh7th/cmp-path", "hrsh7th/cmp-vsnip", "hrsh7th/vim-vsnip", 34 + "petertriho/cmp-git", -- Completion 35 + "hrsh7th/nvim-compe", "hrsh7th/vim-vsnip", -- nvim lsp plugins 36 + "neovim/nvim-lspconfig", { 37 + "nvimdev/lspsaga.nvim", 38 + dependencies = { 39 + "nvim-tree/nvim-web-devicons", "nvim-treesitter/nvim-treesitter" 40 + }, 41 + opts = {lightbulb = {enable = false}}, 42 + event = "LspAttach" 43 + }, -- Syntax Highlighting from the future 44 + { 45 + "nvim-treesitter/nvim-treesitter", 46 + init = function() vim.cmd([[":TSUpdate"]]) end 47 + }, -- Git stuff 48 + -- GitGutter, shows inline difs 49 + "airblade/vim-gitgutter", -- "tpope/vim-fugitive", -- old git command 50 + { 51 + "NeogitOrg/neogit", 52 + dependencies = { 53 + "nvim-lua/plenary.nvim", -- required 54 + "sindrets/diffview.nvim", -- optional - Diff integration 55 + "nvim-telescope/telescope.nvim" 56 + } 57 + }, -- surround with pairs )))))) 58 + -- "tpope/vim-surround", 59 + -- Auto format tool 60 + {"sbdchd/neoformat", lazy = true, cmd = "Neoformat"}, 61 + -- Distraction free writing: GoYo + Limelight 62 + {"junegunn/limelight.vim", lazy = true, ft = "markdown"}, 63 + {"junegunn/goyo.vim", lazy = true, ft = "markdown"}, -- Golang plugins 64 + -- use {"fatih/vim-go", run = ":GoUpdateBinaries", lazy = true, ft = "go"} 65 + { 66 + "ray-x/go.nvim", 67 + ft = "go", 68 + lazy = true, 69 + dependencies = { 70 + "ray-x/guihua.lua", "neovim/nvim-lspconfig", 71 + "nvim-treesitter/nvim-treesitter" 72 + } 73 + }, 74 + { 75 + "nvim-lualine/lualine.nvim", 76 + dependencies = {"nvim-tree/nvim-web-devicons"} 77 + }, "junegunn/fzf.vim", { 78 + dir = "~/.fzf", 79 + build = function() vim.fn["fzf#install"](0) end, 80 + dependencies = {"junegunn/fzf.vim"} 81 + }, -- Polyglot 82 + "sheerun/vim-polyglot", -- Telescope, find anything fast 83 + "nvim-lua/plenary.nvim", 84 + {"nvim-telescope/telescope.nvim", dependencies = {"nvim-lua/plenary.nvim"}}, 85 + "nvim-telescope/telescope-symbols.nvim", 86 + {"folke/trouble.nvim", dependencies = "nvim-tree/nvim-web-devicons"}, 87 + -- Which key is bound? 88 + "folke/which-key.nvim", -- literally the best plugin ever 89 + -- Lithsps 90 + {"guns/vim-sexp", ft = {"hy", "scheme", "clojure"}}, -- )))))) 91 + {"hiphish/rainbow-delimiters.nvim"}, 92 + -- {"gpanders/nvim-parinfer", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}}, 93 + -- { 94 + -- "eraserhd/parinfer-rust", 95 + -- build = "RUSTFLAGS='-C target-feature=+crt-static' cargo build --release", 96 + -- ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 97 + -- }, 98 + -- Conjure, lisp is magical 25 99 { 26 - -- Color themes 27 - "shaunsingh/nord.nvim", 28 - "shaunsingh/moonlight.nvim", 29 - "folke/tokyonight.nvim", 30 - "cranberry-clockworks/coal.nvim", 31 - "hardselius/warlock", 32 - { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, 33 - { 34 - "neanias/everforest-nvim", 35 - version = false, 36 - lazy = false, 37 - priority = 500, -- make sure to load this before all the other start plugins 38 - main = "everforest", 39 - opts = { 40 - background = "hard", 41 - }, 42 - }, 43 - { 44 - "rebelot/kanagawa.nvim", 45 - opts = {compile = true} 46 - }, 47 - -- show indents and whitespace characters 48 - "lukas-reineke/indent-blankline.nvim", 49 - 50 - -- Completion 51 - "hrsh7th/nvim-cmp", 52 - "hrsh7th/cmp-nvim-lsp", 53 - "hrsh7th/cmp-buffer", 54 - "hrsh7th/cmp-path", 55 - "hrsh7th/cmp-vsnip", 56 - "hrsh7th/vim-vsnip", 57 - "petertriho/cmp-git", 58 - 59 - -- Completion 60 - "hrsh7th/nvim-compe", 61 - "hrsh7th/vim-vsnip", 62 - -- nvim lsp plugins 63 - "neovim/nvim-lspconfig", 64 - { 65 - "nvimdev/lspsaga.nvim", 66 - dependencies = { 67 - "nvim-tree/nvim-web-devicons", 68 - "nvim-treesitter/nvim-treesitter" 69 - }, 70 - opts = {lightbulb = {enable = false}}, 71 - event = "LspAttach" 72 - }, 73 - -- Syntax Highlighting from the future 74 - { 75 - "nvim-treesitter/nvim-treesitter", 76 - init = function() 77 - vim.cmd([[":TSUpdate"]]) 78 - end 79 - }, 80 - -- Git stuff 81 - -- GitGutter, shows inline difs 82 - "airblade/vim-gitgutter", 83 - -- "tpope/vim-fugitive", -- old git command 84 - { 85 - "NeogitOrg/neogit", 86 - dependencies = { 87 - "nvim-lua/plenary.nvim", -- required 88 - "sindrets/diffview.nvim", -- optional - Diff integration 89 - "nvim-telescope/telescope.nvim" 90 - }, 91 - }, 92 - -- surround with pairs )))))) 93 - --"tpope/vim-surround", 94 - -- Auto format tool 95 - {"sbdchd/neoformat", lazy = true, cmd = "Neoformat"}, 96 - -- Distraction free writing: GoYo + Limelight 97 - {"junegunn/limelight.vim", lazy = true, ft = "markdown"}, 98 - {"junegunn/goyo.vim", lazy = true, ft = "markdown"}, 99 - -- Golang plugins 100 - --use {"fatih/vim-go", run = ":GoUpdateBinaries", lazy = true, ft = "go"} 101 - { 102 - "ray-x/go.nvim", 103 - ft = "go", 104 - lazy = true, 105 - dependencies = { 106 - "ray-x/guihua.lua", 107 - "neovim/nvim-lspconfig", 108 - "nvim-treesitter/nvim-treesitter" 109 - } 110 - }, 111 - { 112 - "nvim-lualine/lualine.nvim", 113 - dependencies = {"nvim-tree/nvim-web-devicons"} 114 - }, 115 - "junegunn/fzf.vim", 116 - { 117 - dir = "~/.fzf", 118 - build = function() 119 - vim.fn["fzf#install"](0) 120 - end, 121 - dependencies = {"junegunn/fzf.vim"} 122 - }, 123 - -- Polyglot 124 - "sheerun/vim-polyglot", 125 - -- Telescope, find anything fast 126 - "nvim-lua/plenary.nvim", 127 - {"nvim-telescope/telescope.nvim", dependencies = {"nvim-lua/plenary.nvim"}}, 128 - "nvim-telescope/telescope-symbols.nvim", 129 - {"folke/trouble.nvim", dependencies = "nvim-tree/nvim-web-devicons"}, 130 - -- Which key is bound? 131 - "folke/which-key.nvim", -- literally the best plugin ever 132 - -- Lithsps 133 - { 134 - "guns/vim-sexp", 135 - ft = {"hy", "scheme", "clojure"}, 136 - }, -- )))))) 137 - {"hiphish/rainbow-delimiters.nvim"}, 138 - --{"gpanders/nvim-parinfer", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}}, 139 - --{ 140 - -- "eraserhd/parinfer-rust", 141 - -- build = "RUSTFLAGS='-C target-feature=+crt-static' cargo build --release", 142 - -- ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 143 - --}, 144 - -- Conjure, lisp is magical 145 - { 146 - "Olical/conjure", 147 - ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 148 - config = function() 149 - vim.g["conjure#client#scheme#stdio#command"] = "gxi" 150 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 151 - end 152 - }, 153 - {"p1xelHer0/gerbil.nvim", ft = "scheme"}, 154 - -- Fennel, Luasthp 155 - {"jaawerth/fennel.vim", lazy = true, ft = "fennel"}, 156 - {"rktjmp/hotpot.nvim", lazy = true, ft = "fennel"}, 157 - {"Olical/nfnl", ft = "fennel"}, 158 - -- Rust stuff 159 - { 160 - "simrat39/rust-tools.nvim", 161 - ft = {"rust"}, 162 - config = function() 163 - local rt = require("rust-tools") 164 - rt.setup( 165 - { 166 - server = { 167 - on_attach = function(_, bufnr) 168 - -- Hover actions 169 - vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, {buffer = bufnr}) 170 - -- Code action groups 171 - vim.keymap.set( 172 - "n", 173 - "<Leader>a", 174 - rt.code_action_group.code_action_group, 175 - {buffer = bufnr} 176 - ) 177 - end 178 - } 179 - } 180 - ) 181 - end, 182 - dependencies = {"nvim-lua/plenary.nvim"} 183 - }, 184 - {"mfussenegger/nvim-dap", lazy = true, ft = {"c", "rust"}}, 185 - { 186 - "saecki/crates.nvim", 187 - tag = "v0.4.0", 188 - dependencies = {"nvim-lua/plenary.nvim"}, 189 - config = function() 190 - require("crates").setup() 191 - end, 192 - ft = {"rust"} 193 - }, 194 - -- RISC-V Assembly syntax highlighting 195 - {"kylelaker/riscv.vim", ft = "riscv"}, 196 - -- Hare Stuff 197 - 198 - -- Haredoc 199 - {url = "https://git.sr.ht/~torresjrjr/vim-haredoc", ft = {"hare"}, branch = "dev"}, 200 - -- Hare.vim 201 - {url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = {"hare"}}, 202 - -- TCL 203 - {"lewis6991/tree-sitter-tcl", build = "make"}, 204 - -- LF 205 - {"ptzz/lf.vim", cmd = {"Lf"}, dependencies = {"voldikss/vim-floaterm"}}, 206 - -- Copilot 207 - -- use {"github/copilot.vim", lazy = true, cmd = {"Copilot"}} 208 - -- SuperMaven, another AI coding tool 209 - { 210 - "supermaven-inc/supermaven-nvim", 211 - opts = { 212 - keymaps = { 213 - accept_suggestion = "<C-f>" 100 + "Olical/conjure", 101 + ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 102 + config = function() 103 + vim.g["conjure#client#scheme#stdio#command"] = "gxi" 104 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 105 + end 106 + }, {"p1xelHer0/gerbil.nvim", ft = "scheme"}, -- Fennel, Luasthp 107 + {"jaawerth/fennel.vim", lazy = true, ft = "fennel"}, 108 + {"rktjmp/hotpot.nvim", lazy = true, ft = "fennel"}, 109 + {"Olical/nfnl", ft = "fennel"}, -- Rust stuff 110 + { 111 + "simrat39/rust-tools.nvim", 112 + ft = {"rust"}, 113 + config = function() 114 + local rt = require("rust-tools") 115 + rt.setup({ 116 + server = { 117 + on_attach = function(_, bufnr) 118 + -- Hover actions 119 + vim.keymap.set("n", "<C-space>", 120 + rt.hover_actions.hover_actions, 121 + {buffer = bufnr}) 122 + -- Code action groups 123 + vim.keymap.set("n", "<Leader>a", 124 + rt.code_action_group.code_action_group, 125 + {buffer = bufnr}) 126 + end 214 127 } 215 - }, 216 - lazy = true; 217 - cmd = "SupermavenUsePro"; 218 - }, 219 - -- Mason 220 - --{ 221 - -- "williamboman/mason.nvim", 222 - -- init = function() 223 - -- vim.cmd([[":MasonUpdate"]]) 224 - -- end, 225 - -- dependencies = { 226 - -- "williamboman/mason-lspconfig.nvim", 227 - -- "mfussenegger/nvim-dap", 228 - -- "jose-elias-alvarez/null-ls.nvim" 229 - -- }, 230 - -- config = function() 231 - -- require("mason").setup() 232 - -- end 233 - --}, 234 - "imsnif/kdl.vim", 235 - }, 236 - nil 237 - ) 128 + }) 129 + end, 130 + dependencies = {"nvim-lua/plenary.nvim"} 131 + }, {"mfussenegger/nvim-dap", lazy = true, ft = {"c", "rust"}}, { 132 + "saecki/crates.nvim", 133 + tag = "v0.4.0", 134 + dependencies = {"nvim-lua/plenary.nvim"}, 135 + config = function() require("crates").setup() end, 136 + ft = {"rust"} 137 + }, -- RISC-V Assembly syntax highlighting 138 + {"kylelaker/riscv.vim", ft = "riscv"}, -- Hare Stuff 139 + -- Haredoc 140 + { 141 + url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 142 + ft = {"hare"}, 143 + branch = "dev" 144 + }, -- Hare.vim 145 + {url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = {"hare"}}, -- TCL 146 + {"lewis6991/tree-sitter-tcl", build = "make"}, -- LF 147 + {"ptzz/lf.vim", cmd = {"Lf"}, dependencies = {"voldikss/vim-floaterm"}}, 148 + -- Copilot 149 + -- use {"github/copilot.vim", lazy = true, cmd = {"Copilot"}} 150 + -- SuperMaven, another AI coding tool 151 + { 152 + "supermaven-inc/supermaven-nvim", 153 + opts = {keymaps = {accept_suggestion = "<C-f>"}}, 154 + lazy = true, 155 + cmd = "SupermavenUsePro" 156 + }, -- Mason 157 + -- { 158 + -- "williamboman/mason.nvim", 159 + -- init = function() 160 + -- vim.cmd([[":MasonUpdate"]]) 161 + -- end, 162 + -- dependencies = { 163 + -- "williamboman/mason-lspconfig.nvim", 164 + -- "mfussenegger/nvim-dap", 165 + -- "jose-elias-alvarez/null-ls.nvim" 166 + -- }, 167 + -- config = function() 168 + -- require("mason").setup() 169 + -- end 170 + -- }, 171 + "imsnif/kdl.vim" 172 + }, nil)