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.

ADD: ghostty theme, packages, light nvim theme

+451 -417
+3 -2
ghostty/config
··· 1 1 #font-size = 13 2 - font-family = TX-02 Retina 3 - theme = catppuccin-macchiato 2 + font-family = TX-02 Medium 3 + theme = flat-remix-light 4 + #theme = dark:catppuccin-frappe,light:catppuccin-latte 4 5 shell-integration = fish 5 6 link-url = true 6 7
+42
ghostty/themes/flat-remix-light
··· 1 + # standard colors 2 + # black 3 + palette = 0=#404040 4 + # red 5 + palette = 1=#d41919 6 + # green 7 + palette = 2=#12715f 8 + # yellow 9 + palette = 3=#fea44c 10 + # blue 11 + palette = 4=#367bf0 12 + # purple 13 + palette = 5=#8c42ab 14 + # cyan 15 + palette = 6=#4aaee6 16 + # white 17 + palette = 7=#ffffff 18 + 19 + # intense colors 20 + # black (grey) 21 + palette = 8=#737680 22 + # red 23 + palette = 9=#811035 24 + # green 25 + palette = 10=#23bac2 26 + # yellow 27 + palette = 11=#fe7171 28 + # blue 29 + palette = 12=#54bd8e 30 + # purple 31 + palette = 13=#d41919 32 + # cyan 33 + palette = 14=#367bf0 34 + # white 35 + palette = 15=#aaaaaa 36 + 37 + background = #e4e4e7 38 + foreground = #404040 39 + cursor-color = #272a34 40 + cursor-text = #b8174c 41 + selection-background = #737680 42 + selection-foreground = #ffffff
+2 -6
noah-home.nix
··· 53 53 54 54 # Dev tools 55 55 git 56 - #unstable.rustup 57 - rustc 58 - rust-analyzer 59 - cargo 60 - rustPlatform.rustcSrc 61 - ruff 56 + unstable.rustup 57 + unstable.ruff 62 58 # Rust REPL 63 59 evcxr 64 60 unstable.gcc
+1 -14
nvim/init.lua
··· 28 28 vim.opt.lcs = vim.opt.lcs + "space:·" 29 29 vim.opt.list = true 30 30 vim.opt.textwidth = 88 31 - 32 - -- LuaLine Config 33 - 34 - local noirbuddy_lualine = require("noirbuddy.plugins.lualine") 35 - 36 - require("lualine").setup { 37 - options = { 38 - icons_enabled = true, 39 - --theme = "auto" 40 - theme = noirbuddy_lualine.theme 41 - }, 42 - sections = noirbuddy_lualine.sections, 43 - inactive_sections = noirbuddy_lualine.inactive_sections, 44 - } 31 + vim.cmd [[ colorscheme catppuccin-latte ]] 45 32 46 33 -- Force OSC-52 47 34 vim.g.clipboard = {
+403 -395
nvim/lua/plugins.lua
··· 1 1 -- Bootstrap lazy.nvim 2 2 local ensure_lazy = function() 3 - local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 4 - if not vim.loop.fs_stat(lazypath) then 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 - }) 10 - end 11 - vim.opt.rtp:prepend(lazypath) 3 + local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 4 + if not vim.loop.fs_stat(lazypath) then 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 + }) 10 + end 11 + vim.opt.rtp:prepend(lazypath) 12 12 end 13 13 14 14 local lazy_bootstrap = ensure_lazy() 15 15 if lazy_bootstrap then print("Bootstrapped lazy.nvim") end 16 16 17 17 require("lazy").setup({ 18 - install = { colorscheme = { "noirbuddy" } }, 19 - checker = { enabled = false }, 20 - spec = { 21 - -- Color themes 22 - { "shaunsingh/nord.nvim", priority = 1000, lazy = true }, 23 - { "shaunsingh/moonlight.nvim", priority = 1000, lazy = true }, 24 - { "folke/tokyonight.nvim", priority = 1000, lazy = true }, 25 - { "cranberry-clockworks/coal.nvim", priority = 1000, lazy = true }, 26 - { "hardselius/warlock", priority = 1000, lazy = true }, 27 - { "sontungexpt/witch", priority = 1000, lazy = true, config = true }, 28 - { "catppuccin/nvim", name = "catppuccin", priority = 1000, lazy = true }, 29 - { 30 - "neanias/everforest-nvim", 31 - version = false, 32 - lazy = true, 33 - priority = 1000, -- make sure to load this before all the other start plugins 34 - main = "everforest", 35 - opts = { background = "hard" } 36 - }, 37 - { "rebelot/kanagawa.nvim", opts = { compile = true }, priority = 1000, lazy = true }, 38 - { 39 - 'jesseleite/nvim-noirbuddy', 40 - dependencies = { 41 - 'tjdevries/colorbuddy.nvim', 42 - }, 43 - lazy = true, 44 - priority = 1000, 45 - opts = { 46 - -- All of your `setup(opts)` will go here 47 - preset = "oxide", 48 - colors = { 49 - noir_8 = "#3A4649" 50 - } 51 - }, 52 - }, 53 - { 54 - "plan9-for-vimspace/acme-colors" 55 - }, 56 - -- Completion 57 - { 58 - "hrsh7th/nvim-cmp", 59 - dependencies = { 60 - "hrsh7th/cmp-nvim-lsp", 61 - "hrsh7th/cmp-buffer", 62 - "hrsh7th/cmp-path", 63 - "hrsh7th/cmp-vsnip", 64 - "hrsh7th/vim-vsnip", 65 - "petertriho/cmp-git", 66 - "hrsh7th/cmp-cmdline" 67 - }, 68 - config = require('completion') 69 - }, -- nvim lsp plugins 70 - { 71 - "neovim/nvim-lspconfig", 72 - }, 73 - -- LSP Goodness 74 - { 75 - "ray-x/navigator.lua", 76 - dependencies = { 77 - { 'ray-x/guihua.lua', build = 'cd lua/fzy && make' }, 78 - { 'neovim/nvim-lspconfig' }, 79 - } 80 - 81 - }, 82 - { 83 - -- Syntax Highlighting from the future 84 - "nvim-treesitter/nvim-treesitter", 85 - --init = function() vim.cmd([[":TSUpdate"]]) end, 86 - main = "nvim-treesitter.configs", 87 - opts = { 88 - ensure_installed = 'all', 89 - ignore_install = { 'norg' }, 90 - sync_intall = true, 91 - highlight = { 92 - enable = true, 18 + install = { colorscheme = { "catppuccin-latte" } }, 19 + checker = { enabled = false }, 20 + spec = { 21 + -- Color themes 22 + { "shaunsingh/nord.nvim", priority = 1000, lazy = true }, 23 + { "shaunsingh/moonlight.nvim", priority = 1000, lazy = true }, 24 + { "folke/tokyonight.nvim", priority = 1000, lazy = true }, 25 + { "cranberry-clockworks/coal.nvim", priority = 1000, lazy = true }, 26 + { "hardselius/warlock", priority = 1000, lazy = true }, 27 + { "sontungexpt/witch", priority = 1000, lazy = true, config = true }, 28 + { "catppuccin/nvim", name = "catppuccin", priority = 1000, lazy = true }, 29 + { 30 + "neanias/everforest-nvim", 31 + version = false, 32 + lazy = true, 33 + priority = 1000, -- make sure to load this before all the other start plugins 34 + main = "everforest", 35 + opts = { background = "hard" } 93 36 }, 94 - indent = { 95 - enable = false, 37 + { "rebelot/kanagawa.nvim", opts = { compile = true }, priority = 1000, lazy = true }, 38 + { 39 + 'jesseleite/nvim-noirbuddy', 40 + dependencies = { 41 + 'tjdevries/colorbuddy.nvim', 42 + 'nvim-lualine/lualine.nvim' 43 + }, 44 + lazy = true, 45 + priority = 1000, 46 + config = function(_, opts) 47 + -- configure lualine 48 + require('noirbuddy').setup(opts) 49 + local noirbuddy_lualine = require("noirbuddy.plugins.lualine") 50 + require("lualine").setup { 51 + options = { 52 + icons_enabled = true, 53 + --theme = "auto" 54 + theme = noirbuddy_lualine.theme 55 + }, 56 + sections = noirbuddy_lualine.sections, 57 + inactive_sections = noirbuddy_lualine.inactive_sections, 58 + } 59 + end, 60 + opts = { 61 + -- All of your `setup(opts)` will go here 62 + preset = "oxide", 63 + colors = { 64 + noir_8 = "#3A4649" 65 + } 66 + }, 96 67 }, 97 - }, 98 - build = ":TSUpdate", 99 - version = false, 100 - dependencies = { 101 - "nvim-treesitter/nvim-treesitter-textobjects", 102 - "nvim-treesitter/nvim-treesitter-context", 103 - }, 104 - }, -- Git stuff 105 - -- GitGutter, shows inline difs 106 - "airblade/vim-gitgutter", 107 - { 108 - "NeogitOrg/neogit", 109 - dependencies = { 110 - "nvim-lua/plenary.nvim", -- required 111 - "sindrets/diffview.nvim", -- optional - Diff integration 112 - "nvim-telescope/telescope.nvim" 113 - }, 114 - config = true 115 - }, 116 - -- Auto format tool 117 - { 118 - "stevearc/conform.nvim", 119 - lazy = true, 120 - opts = { 121 - python = { "isort", "black" }, 122 - lua = { "lua-format" }, 123 - clojure = { "cljfmt" }, 124 - rust = { "rustfmt" }, 125 - haskell = { "ormolu", "stylish-haskell" }, 126 - go = { "goimports", "gofmt" }, 127 - java = { "google-java-format" }, 128 - javascript = { "prettier" }, 129 - html = { "prettier" }, 130 - yaml = { "prettier" }, 131 - sh = { "shfmt" }, 132 - c = { "clang-format" }, 133 - } 134 - }, 135 - { 136 - "hedyhli/outline.nvim", 137 - lazy = true, 138 - cmd = { "Outline", "OutlineOpen" }, 139 - config = true, 140 - keys = { 141 - { "<leader>o", "<cmd>Outline<cr>", desc = "Toggle outline" }, 142 - }, 143 - }, 144 - { 145 - "ray-x/go.nvim", 146 - ft = "go", 147 - lazy = true, 148 - dependencies = { 149 - "ray-x/guihua.lua", "neovim/nvim-lspconfig", 150 - "nvim-treesitter/nvim-treesitter" 151 - } 152 - }, 153 - { 154 - "nvim-lualine/lualine.nvim", 155 - config = function(_spec, _opt) 156 - local noirbuddy_lualine = require("noirbuddy.plugins.lualine") 157 - require("lualine").setup { 158 - options = { 159 - icons_enabled = true, 160 - -- when not using noirbuddy, uncomment this 161 - --theme = "auto" 162 - theme = noirbuddy_lualine.theme 163 - }, 164 - sections = noirbuddy_lualine.sections, 165 - inactive_sections = noirbuddy_lualine.inactive_sections, 166 - } 167 - end, 168 - dependencies = { "nvim-tree/nvim-web-devicons", "jesseleite/nvim-noirbuddy" } 169 - }, 170 - -- Fuzzy finding stuff 171 - "junegunn/fzf.vim", 172 - -- A lua + nvim stdlib sort of thing 173 - { "nvim-lua/plenary.nvim", lazy = true, }, 174 - -- Telescope, find anything fast 175 - { 176 - "nvim-telescope/telescope.nvim", 177 - config = true, 178 - dependencies = { 179 - "nvim-lua/plenary.nvim", 180 - "nvim-telescope/telescope-symbols.nvim", 181 - "nvim-telescope/telescope-fzf-native.nvim" 182 - } 183 - }, 184 - { 185 - "folke/trouble.nvim", 186 - dependencies = "nvim-tree/nvim-web-devicons", 187 - config = true, 188 - }, 189 - -- Which key is bound? 190 - -- literally the best plugin ever 191 - { 192 - "folke/which-key.nvim", 193 - init = function() 194 - vim.o.timeout = true 195 - vim.o.timeoutlen = 300 196 - end, 197 - config = true 198 - }, 199 - -- Developing my neovim 200 - { 201 - "folke/lazydev.nvim", 202 - config = true, 203 - ft = "lua", 204 - lazy = true, 205 - opts = { 206 - library = { 207 - path = "luvit-meta/library", words = { "vim%.uv" }, 68 + { 69 + "plan9-for-vimspace/acme-colors" 208 70 }, 209 - }, 210 - dependencies = { 211 - "Bilal2453/luvit-meta" 212 - }, 213 - }, 214 - -- Lithsps 215 - { 216 - "windwp/nvim-autopairs", 217 - event = "InsertEnter", 218 - config = function() 219 - local pairs = require("nvim-autopairs") 220 - 221 - pairs.setup({ 222 - check_ts = true, 223 - enable_check_bracket_line = false, 224 - }) 225 - 226 - pairs.get_rules("`")[1].not_filetypes = { "clojure", "scheme", "scm", "janet" } 227 - pairs.get_rules("'")[1].not_filetypes = { "clojure", "scheme", "scm", "janet", "rust" } 228 - end, 229 - }, 230 - -- This gives me the paredit engine, it's pretty nifty 231 - { 232 - "gpanders/nvim-parinfer", 233 - ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" }, 234 - lazy = true, 235 - config = function() 236 - vim.g.parinfer_comment_chars = { ";", "#" } 237 - vim.g.parinfer_force_balance = true 238 - end 239 - }, -- )))))) 240 - -- This one gives me vim-sexp like structural editing 241 - { 242 - "julienvincent/nvim-paredit", 243 - config = function() 244 - local paredit = require('nvim-paredit') 245 - paredit.setup({ 246 - indent = { 247 - enabled = true, 248 - }, 249 - --filetypes = {"clojure", "fennel", "janet"}, 250 - keys = { 251 - ["<localleader>w"] = { 252 - function() 253 - -- place cursor and set mode to `insert` 254 - paredit.cursor.place_cursor( 255 - -- wrap element under cursor with `( ` and `)` 256 - paredit.wrap.wrap_element_under_cursor("( ", ")"), 257 - -- cursor placement opts 258 - { placement = "inner_start", mode = "insert" } 259 - ) 260 - end, 261 - "Wrap element insert head", 71 + -- Completion 72 + { 73 + "hrsh7th/nvim-cmp", 74 + dependencies = { 75 + "hrsh7th/cmp-nvim-lsp", 76 + "hrsh7th/cmp-buffer", 77 + "hrsh7th/cmp-path", 78 + "hrsh7th/cmp-vsnip", 79 + "hrsh7th/vim-vsnip", 80 + "petertriho/cmp-git", 81 + "hrsh7th/cmp-cmdline" 262 82 }, 83 + config = require('completion') 84 + }, -- nvim lsp plugins 85 + { 86 + "neovim/nvim-lspconfig", 87 + }, 88 + -- LSP Goodness 89 + { 90 + "ray-x/navigator.lua", 91 + dependencies = { 92 + { 'ray-x/guihua.lua', build = 'cd lua/fzy && make' }, 93 + { 'neovim/nvim-lspconfig' }, 94 + } 263 95 264 - ["<localleader>W"] = { 265 - function() 266 - paredit.cursor.place_cursor( 267 - paredit.wrap.wrap_element_under_cursor("(", ")"), 268 - { placement = "inner_end", mode = "insert" } 269 - ) 270 - end, 271 - "Wrap element insert tail", 96 + }, 97 + { 98 + -- Syntax Highlighting from the future 99 + "nvim-treesitter/nvim-treesitter", 100 + --init = function() vim.cmd([[":TSUpdate"]]) end, 101 + main = "nvim-treesitter.configs", 102 + opts = { 103 + ensure_installed = 'all', 104 + ignore_install = { 'norg' }, 105 + sync_intall = true, 106 + highlight = { 107 + enable = true, 108 + }, 109 + indent = { 110 + enable = false, 111 + }, 272 112 }, 273 - -- same as above but for enclosing form 274 - ["<localleader>i"] = { 275 - function() 276 - paredit.cursor.place_cursor( 277 - paredit.wrap.wrap_enclosing_form_under_cursor("( ", ")"), 278 - { placement = "inner_start", mode = "insert" } 279 - ) 280 - end, 281 - "Wrap form insert head", 113 + build = ":TSUpdate", 114 + version = false, 115 + dependencies = { 116 + "nvim-treesitter/nvim-treesitter-textobjects", 117 + "nvim-treesitter/nvim-treesitter-context", 282 118 }, 283 - ["<localleader>I"] = { 284 - function() 285 - paredit.cursor.place_cursor( 286 - paredit.wrap.wrap_enclosing_form_under_cursor("(", ")"), 287 - { placement = "inner_end", mode = "insert" } 288 - ) 289 - end, 290 - "Wrap form insert tail", 119 + }, -- Git stuff 120 + -- GitGutter, shows inline difs 121 + "airblade/vim-gitgutter", 122 + { 123 + "NeogitOrg/neogit", 124 + dependencies = { 125 + "nvim-lua/plenary.nvim", -- required 126 + "sindrets/diffview.nvim", -- optional - Diff integration 127 + "nvim-telescope/telescope.nvim" 291 128 }, 292 - ["<localleader>["] = { 293 - function() 294 - paredit.cursor.place_cursor( 295 - paredit.wrap.wrap_enclosing_form_under_cursor("[", "]"), 296 - { placement = "inner_start", mode = "insert" } 297 - ) 298 - end, 129 + config = true 130 + }, 131 + -- Auto format tool 132 + { 133 + "stevearc/conform.nvim", 134 + lazy = true, 135 + opts = { 136 + python = { "isort", "black" }, 137 + lua = { "lua-format" }, 138 + clojure = { "cljfmt" }, 139 + rust = { "rustfmt" }, 140 + haskell = { "ormolu", "stylish-haskell" }, 141 + go = { "goimports", "gofmt" }, 142 + java = { "google-java-format" }, 143 + javascript = { "prettier" }, 144 + html = { "prettier" }, 145 + yaml = { "prettier" }, 146 + sh = { "shfmt" }, 147 + c = { "clang-format" }, 148 + } 149 + }, 150 + { 151 + "hedyhli/outline.nvim", 152 + lazy = true, 153 + cmd = { "Outline", "OutlineOpen" }, 154 + config = true, 155 + keys = { 156 + { "<leader>o", "<cmd>Outline<cr>", desc = "Toggle outline" }, 299 157 }, 300 - ["<localleader>{"] = { 301 - function() 302 - paredit.cursor.place_cursor( 303 - paredit.wrap.wrap_enclosing_form_under_cursor("{", "}"), 304 - { placement = "inner_end", mode = "insert" } 305 - ) 306 - end, 158 + }, 159 + { 160 + "ray-x/go.nvim", 161 + ft = "go", 162 + lazy = true, 163 + dependencies = { 164 + "ray-x/guihua.lua", "neovim/nvim-lspconfig", 165 + "nvim-treesitter/nvim-treesitter" 166 + } 167 + }, 168 + { 169 + "nvim-lualine/lualine.nvim", 170 + config = true, 171 + dependencies = { "nvim-tree/nvim-web-devicons" } 172 + }, 173 + -- Fuzzy finding stuff 174 + "junegunn/fzf.vim", 175 + -- A lua + nvim stdlib sort of thing 176 + { "nvim-lua/plenary.nvim", lazy = true, }, 177 + -- Telescope, find anything fast 178 + { 179 + "nvim-telescope/telescope.nvim", 180 + config = true, 181 + dependencies = { 182 + "nvim-lua/plenary.nvim", 183 + "nvim-telescope/telescope-symbols.nvim", 184 + "nvim-telescope/telescope-fzf-native.nvim" 185 + } 186 + }, 187 + { 188 + "folke/trouble.nvim", 189 + dependencies = "nvim-tree/nvim-web-devicons", 190 + config = true, 191 + }, 192 + -- Which key is bound? 193 + -- literally the best plugin ever 194 + { 195 + "folke/which-key.nvim", 196 + init = function() 197 + vim.o.timeout = true 198 + vim.o.timeoutlen = 300 199 + end, 200 + config = true 201 + }, 202 + -- Developing my neovim 203 + { 204 + "folke/lazydev.nvim", 205 + config = true, 206 + ft = "lua", 207 + lazy = true, 208 + opts = { 209 + library = { 210 + path = "luvit-meta/library", words = { "vim%.uv" }, 211 + }, 307 212 }, 308 - }, 309 - }) 310 - end, 311 - lazy = true, 312 - ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" } 313 - }, 314 - { 315 - "chiefnoah/nvim-paredit-janet", 316 - dependencies = { "julienvincent/nvim-paredit" }, 317 - lazy = true, 318 - ft = { "janet" }, 319 - config = function() 320 - require("nvim-paredit-janet").setup() 321 - end, 322 - }, 323 - { 324 - "julienvincent/nvim-paredit-fennel", 325 - dependencies = { "julienvincent/nvim-paredit" }, 326 - lazy = true, 327 - ft = { "fennel" }, 328 - config = true, 329 - }, 330 - { 331 - "ekaitz-zarraga/nvim-paredit-scheme", 332 - lazy = true, 333 - ft = { "scheme" }, 334 - config = function() 335 - require("nvim-paredit-scheme").setup(require("nvim-paredit")) 336 - end, 337 - }, 338 - { "hiphish/rainbow-delimiters.nvim", priority = 1050, }, 339 - -- Conjure, lisp is magical 340 - { 341 - "Olical/conjure", 342 - dependencies = { "PaterJason/cmp-conjure" }, 343 - config = function() 344 - vim.g["conjure#client#scheme#stdio#command"] = "gxi" 345 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 346 - end, 347 - lazy = true, 348 - ft = { "scheme", "scm", "lisp", "fennel", "clojure", "lua", "janet" }, 349 - }, 350 - { "PaterJason/cmp-conjure", lazy = true }, 351 - { "p1xelHer0/gerbil.nvim", lazy = true, ft = "scheme", config = true }, -- Fennel, Luasthp 352 - { "jaawerth/fennel.vim", lazy = true, ft = "fennel", config = true }, 353 - { "rktjmp/hotpot.nvim", lazy = true, ft = "fennel", config = true }, 354 - { "Olical/nfnl", lazy = true, ft = "fennel", config = true }, -- Rust stuff 355 - { 356 - "simrat39/rust-tools.nvim", 357 - lazy = true, 358 - ft = { "rust" }, 359 - config = function() 360 - local rt = require("rust-tools") 361 - rt.setup({ 362 - server = { 363 - on_attach = function(_, bufnr) 364 - -- Hover actions 365 - vim.keymap.set("n", "<C-space>", 366 - rt.hover_actions.hover_actions, 367 - { buffer = bufnr }) 368 - -- Code action groups 369 - vim.keymap.set("n", "<Leader>a", 370 - rt.code_action_group.code_action_group, 371 - { buffer = bufnr }) 213 + dependencies = { 214 + "Bilal2453/luvit-meta" 215 + }, 216 + }, 217 + -- Lithsps 218 + { 219 + "windwp/nvim-autopairs", 220 + event = "InsertEnter", 221 + config = function() 222 + local pairs = require("nvim-autopairs") 223 + 224 + pairs.setup({ 225 + check_ts = true, 226 + enable_check_bracket_line = false, 227 + }) 228 + 229 + pairs.get_rules("`")[1].not_filetypes = { "clojure", "scheme", "scm", "janet" } 230 + pairs.get_rules("'")[1].not_filetypes = { "clojure", "scheme", "scm", "janet", "rust" } 231 + end, 232 + }, 233 + -- This gives me the paredit engine, it's pretty nifty 234 + { 235 + "gpanders/nvim-parinfer", 236 + ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" }, 237 + lazy = true, 238 + config = function() 239 + vim.g.parinfer_comment_chars = { ";", "#" } 240 + vim.g.parinfer_force_balance = true 372 241 end 373 - } 374 - }) 375 - end, 376 - dependencies = { "nvim-lua/plenary.nvim" } 377 - }, 378 - { "mfussenegger/nvim-dap", lazy = true, ft = { "c", "rust" } }, 379 - { 380 - "saecki/crates.nvim", 381 - tag = "v0.4.0", 382 - dependencies = { "nvim-lua/plenary.nvim" }, 383 - config = function() require("crates").setup() end, 384 - lazy = true, 385 - ft = { "rust" } 386 - }, -- RISC-V Assembly syntax highlighting 387 - { "kylelaker/riscv.vim", ft = "riscv" }, -- Hare Stuff 388 - -- Hare stuff 389 - -- Haredoc 390 - { 391 - url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 392 - lazy = true, 393 - ft = { "hare" }, 394 - branch = "dev" 395 - }, 396 - { url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = { "hare" } }, 397 - -- TCL 398 - { "lewis6991/tree-sitter-tcl", lazy = true, build = "make" }, 399 - -- LF 400 - { 401 - "ptzz/lf.vim", 402 - lazy = true, 403 - cmd = { "Lf" }, 404 - dependencies = { "voldikss/vim-floaterm" } 405 - }, 406 - -- SuperMaven, another AI coding tool 407 - { 408 - "supermaven-inc/supermaven-nvim", 409 - opts = { keymaps = { accept_suggestion = "<C-f>" } }, 410 - lazy = true, 411 - cmd = "SupermavenStart" 412 - }, 413 - { "imsnif/kdl.vim", lazy = true, ft = "kdl" }, 414 - } 242 + }, -- )))))) 243 + -- This one gives me vim-sexp like structural editing 244 + { 245 + "julienvincent/nvim-paredit", 246 + config = function() 247 + local paredit = require('nvim-paredit') 248 + paredit.setup({ 249 + indent = { 250 + enabled = true, 251 + }, 252 + --filetypes = {"clojure", "fennel", "janet"}, 253 + keys = { 254 + ["<localleader>w"] = { 255 + function() 256 + -- place cursor and set mode to `insert` 257 + paredit.cursor.place_cursor( 258 + -- wrap element under cursor with `( ` and `)` 259 + paredit.wrap.wrap_element_under_cursor("( ", ")"), 260 + -- cursor placement opts 261 + { placement = "inner_start", mode = "insert" } 262 + ) 263 + end, 264 + "Wrap element insert head", 265 + }, 266 + 267 + ["<localleader>W"] = { 268 + function() 269 + paredit.cursor.place_cursor( 270 + paredit.wrap.wrap_element_under_cursor("(", ")"), 271 + { placement = "inner_end", mode = "insert" } 272 + ) 273 + end, 274 + "Wrap element insert tail", 275 + }, 276 + -- same as above but for enclosing form 277 + ["<localleader>i"] = { 278 + function() 279 + paredit.cursor.place_cursor( 280 + paredit.wrap.wrap_enclosing_form_under_cursor( 281 + "( ", ")"), 282 + { placement = "inner_start", mode = "insert" } 283 + ) 284 + end, 285 + "Wrap form insert head", 286 + }, 287 + ["<localleader>I"] = { 288 + function() 289 + paredit.cursor.place_cursor( 290 + paredit.wrap.wrap_enclosing_form_under_cursor( 291 + "(", ")"), 292 + { placement = "inner_end", mode = "insert" } 293 + ) 294 + end, 295 + "Wrap form insert tail", 296 + }, 297 + ["<localleader>["] = { 298 + function() 299 + paredit.cursor.place_cursor( 300 + paredit.wrap.wrap_enclosing_form_under_cursor( 301 + "[", "]"), 302 + { placement = "inner_start", mode = "insert" } 303 + ) 304 + end, 305 + }, 306 + ["<localleader>{"] = { 307 + function() 308 + paredit.cursor.place_cursor( 309 + paredit.wrap.wrap_enclosing_form_under_cursor( 310 + "{", "}"), 311 + { placement = "inner_end", mode = "insert" } 312 + ) 313 + end, 314 + }, 315 + }, 316 + }) 317 + end, 318 + lazy = true, 319 + ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" } 320 + }, 321 + { 322 + "chiefnoah/nvim-paredit-janet", 323 + dependencies = { "julienvincent/nvim-paredit" }, 324 + lazy = true, 325 + ft = { "janet" }, 326 + config = function() 327 + require("nvim-paredit-janet").setup() 328 + end, 329 + }, 330 + { 331 + "julienvincent/nvim-paredit-fennel", 332 + dependencies = { "julienvincent/nvim-paredit" }, 333 + lazy = true, 334 + ft = { "fennel" }, 335 + config = true, 336 + }, 337 + { 338 + "ekaitz-zarraga/nvim-paredit-scheme", 339 + lazy = true, 340 + ft = { "scheme" }, 341 + config = function() 342 + require("nvim-paredit-scheme").setup(require("nvim-paredit")) 343 + end, 344 + }, 345 + { "hiphish/rainbow-delimiters.nvim", priority = 1050, }, 346 + -- Conjure, lisp is magical 347 + { 348 + "Olical/conjure", 349 + dependencies = { "PaterJason/cmp-conjure" }, 350 + config = function() 351 + vim.g["conjure#client#scheme#stdio#command"] = "gxi" 352 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 353 + end, 354 + lazy = true, 355 + ft = { "scheme", "scm", "lisp", "fennel", "clojure", "lua", "janet" }, 356 + }, 357 + { "PaterJason/cmp-conjure", lazy = true }, 358 + { "p1xelHer0/gerbil.nvim", lazy = true, ft = "scheme", config = true }, -- Fennel, Luasthp 359 + { "jaawerth/fennel.vim", lazy = true, ft = "fennel", config = true }, 360 + { "rktjmp/hotpot.nvim", lazy = true, ft = "fennel", config = true }, 361 + { "Olical/nfnl", lazy = true, ft = "fennel", config = true }, -- Rust stuff 362 + { 363 + "simrat39/rust-tools.nvim", 364 + lazy = true, 365 + ft = { "rust" }, 366 + config = function() 367 + local rt = require("rust-tools") 368 + rt.setup({ 369 + server = { 370 + on_attach = function(_, bufnr) 371 + -- Hover actions 372 + vim.keymap.set("n", "<C-space>", 373 + rt.hover_actions.hover_actions, 374 + { buffer = bufnr }) 375 + -- Code action groups 376 + vim.keymap.set("n", "<Leader>a", 377 + rt.code_action_group.code_action_group, 378 + { buffer = bufnr }) 379 + end 380 + } 381 + }) 382 + end, 383 + dependencies = { "nvim-lua/plenary.nvim" } 384 + }, 385 + { "mfussenegger/nvim-dap", lazy = true, ft = { "c", "rust" } }, 386 + { 387 + "saecki/crates.nvim", 388 + tag = "v0.4.0", 389 + dependencies = { "nvim-lua/plenary.nvim" }, 390 + config = function() require("crates").setup() end, 391 + lazy = true, 392 + ft = { "rust" } 393 + }, -- RISC-V Assembly syntax highlighting 394 + { "kylelaker/riscv.vim", ft = "riscv" }, -- Hare Stuff 395 + -- Hare stuff 396 + -- Haredoc 397 + { 398 + url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 399 + lazy = true, 400 + ft = { "hare" }, 401 + branch = "dev" 402 + }, 403 + { url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = { "hare" } }, 404 + -- TCL 405 + { "lewis6991/tree-sitter-tcl", lazy = true, build = "make" }, 406 + -- LF 407 + { 408 + "ptzz/lf.vim", 409 + lazy = true, 410 + cmd = { "Lf" }, 411 + dependencies = { "voldikss/vim-floaterm" } 412 + }, 413 + -- SuperMaven, another AI coding tool 414 + { 415 + "supermaven-inc/supermaven-nvim", 416 + opts = { keymaps = { accept_suggestion = "<C-f>" } }, 417 + --lazy = true, 418 + priority = 10000, 419 + cmd = "SupermavenStart" 420 + }, 421 + { "imsnif/kdl.vim", lazy = true, ft = "kdl" }, 422 + } 415 423 })