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: ADD: ambient AI tools

+560 -523
+5 -2
flake.nix
··· 37 37 # If your hooks are intrusive, avoid running on each commit with a default_states like this: 38 38 # default_stages = ["manual" "push"]; 39 39 hooks = { 40 - nixpkgs-fmt.enable = true; 40 + #nixpkgs-fmt.enable = true; 41 + nixfmt-rfc-style.enable = true; 41 42 nil.enable = true; 42 43 luacheck.enable = true; 43 44 }; ··· 46 47 inherit (self.checks.${system}.pre-commit-check) shellHook; 47 48 #packages = with pkgs; [ nil lua-language-server nixpkgs-fmt ]; 48 49 buildInputs = self.checks.${system}.pre-commit-check.enabledPackages; 49 - 50 + packages = [ 51 + pkgs.nodePackages_latest.lua-fmt 52 + ]; 50 53 }; 51 54 }; 52 55 }
+27 -27
nvim/init.lua
··· 32 32 33 33 -- Force OSC-52 34 34 vim.g.clipboard = { 35 - name = 'OSC 52', 36 - copy = { 37 - ['+'] = require('vim.ui.clipboard.osc52').copy('+'), 38 - ['*'] = require('vim.ui.clipboard.osc52').copy('*'), 39 - }, 40 - paste = { 41 - ['+'] = require('vim.ui.clipboard.osc52').paste('+'), 42 - ['*'] = require('vim.ui.clipboard.osc52').paste('*'), 43 - }, 35 + name = 'OSC 52', 36 + copy = { 37 + ['+'] = require('vim.ui.clipboard.osc52').copy('+'), 38 + ['*'] = require('vim.ui.clipboard.osc52').copy('*'), 39 + }, 40 + paste = { 41 + ['+'] = require('vim.ui.clipboard.osc52').paste('+'), 42 + ['*'] = require('vim.ui.clipboard.osc52').paste('*'), 43 + }, 44 44 } 45 45 46 46 -- CTags ··· 51 51 52 52 -- Gerbil Scheme 53 53 local set_gerbil = function() 54 - vim.g["conjure#client#scheme#stdio#command"] = "gxi" 55 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> " 56 - vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = false 54 + vim.g["conjure#client#scheme#stdio#command"] = "gxi" 55 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> " 56 + vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = false 57 57 end 58 58 set_gerbil() 59 59 vim.api.nvim_create_user_command("ConjureGerbil", set_gerbil, {}) 60 60 61 61 -- Chibi-scheme 62 62 local set_chibi = function() 63 - vim.g["conjure#client#scheme#stdio#command"] = "chibi-scheme -R" 64 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "=> $?" 65 - vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = true 63 + vim.g["conjure#client#scheme#stdio#command"] = "chibi-scheme -R" 64 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "=> $?" 65 + vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = true 66 66 end 67 67 vim.api.nvim_create_user_command("ConjureChibi", set_chibi, {}) 68 68 -- Chicken Scheme 69 69 local set_chicken = function() 70 - vim.g["conjure#client#scheme#stdio#command"] = "csi -quiet -:c" 71 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "\n-#;%d-> " 72 - vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = true 70 + vim.g["conjure#client#scheme#stdio#command"] = "csi -quiet -:c" 71 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "\n-#;%d-> " 72 + vim.g["conjure#client#scheme#stdio#value_prefix_pattern"] = true 73 73 end 74 74 vim.api.nvim_create_user_command("ConjureChicken", set_chicken, {}) 75 75 ··· 142 142 143 143 -- Autoformat! 144 144 vim.api.nvim_create_user_command("Format", function(args) 145 - local range = nil 146 - if args.count ~= -1 then 147 - local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] 148 - range = { 149 - start = { args.line1, 0 }, 150 - ["end"] = { args.line2, end_line:len() }, 151 - } 152 - end 153 - require("conform").format({ async = true, lsp_format = "fallback", range = range }) 145 + local range = nil 146 + if args.count ~= -1 then 147 + local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] 148 + range = { 149 + start = { args.line1, 0 }, 150 + ["end"] = { args.line2, end_line:len() }, 151 + } 152 + end 153 + require("conform").format({ async = true, lsp_format = "fallback", range = range }) 154 154 end, { range = true }) 155 155 keymap("n", "<C-n>", "<cmd>Format<CR>", silentnoremap) 156 156
+8
nvim/lua/ambient.lua
··· 1 + function setup() 2 + return require("codecompanion.adapters").extend("openai_compatible", { 3 + env = { 4 + url = "http://34.46.152.76", 5 + chat_url = "/run-auction" 6 + } 7 + }) 8 + end
+106 -106
nvim/lua/lsp.lua
··· 9 9 -- Rust 10 10 -- Python LSP 11 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 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 20 }) 21 21 nvim_lsp.lua_ls.setup { 22 - settings = { 23 - Lua = { 24 - runtime = { 25 - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) 26 - version = "LuaJIT" 27 - }, 28 - diagnostics = { 29 - -- Get the language server to recognize the `vim` global 30 - globals = { "vim" } 31 - }, 32 - workspace = { 33 - -- Make the server aware of Neovim runtime files 34 - library = vim.api.nvim_get_runtime_file("", true) 35 - }, 36 - -- Do not send telemetry data containing a randomized but unique identifier 37 - telemetry = { enable = false } 38 - } 39 - } 22 + settings = { 23 + Lua = { 24 + runtime = { 25 + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) 26 + version = "LuaJIT" 27 + }, 28 + diagnostics = { 29 + -- Get the language server to recognize the `vim` global 30 + globals = { "vim" } 31 + }, 32 + workspace = { 33 + -- Make the server aware of Neovim runtime files 34 + library = vim.api.nvim_get_runtime_file("", true) 35 + }, 36 + -- Do not send telemetry data containing a randomized but unique identifier 37 + telemetry = { enable = false } 38 + } 39 + } 40 40 } 41 41 42 42 nvim_lsp.janet_lsp.setup { 43 - cmd = { 44 - "janet", 45 - "-i", 46 - "/home/noah/repos/janet-lsp/jpm_tree/lib/janet-lsp.jimage", 47 - "--stdio", 48 - } 43 + cmd = { 44 + "janet", 45 + "-i", 46 + "/home/noah/repos/janet-lsp/jpm_tree/lib/janet-lsp.jimage", 47 + "--stdio", 48 + } 49 49 } 50 50 51 51 -- LSPs that just use default config 52 52 local simple_lsps = { 53 - --"htmx", 54 - "nil_ls", "bzl", "buf_ls", "crystalline", "dockerls", 55 - "erlangls", "elixirls", "fortls", "gleam", "gopls", "hls", "jsonls", 56 - "vimls", "asm_lsp", "ccls", "pyright", 57 - "ruff", "clojure_lsp", "guile_ls", 58 - -- Of course the Java-based ones are verbose af 59 - "kotlin_language_server", "java_language_server", "jsonls", "pest_ls", 60 - "ocamllsp", "reason_ls", "racket_langserver", "rust_analyzer", 61 - "scheme_langserver", "sqls", "thriftls", "tinymist", "vhdl_ls", "yamlls", 62 - "zls", "ts_ls", "eslint", "metals", "futhark_lsp", "roc_ls", "sourcekit" 63 - -- disabled because it's broken 64 - -- "scheme_langserver", 53 + --"htmx", 54 + "nil_ls", "bzl", "buf_ls", "crystalline", "dockerls", 55 + "erlangls", "elixirls", "fortls", "gleam", "gopls", "hls", "jsonls", 56 + "vimls", "asm_lsp", "ccls", "pyright", 57 + "ruff", "clojure_lsp", "guile_ls", 58 + -- Of course the Java-based ones are verbose af 59 + "kotlin_language_server", "java_language_server", "jsonls", "pest_ls", 60 + "ocamllsp", "reason_ls", "racket_langserver", "rust_analyzer", 61 + "scheme_langserver", "sqls", "thriftls", "tinymist", "vhdl_ls", "yamlls", 62 + "zls", "ts_ls", "eslint", "metals", "futhark_lsp", "roc_ls", "sourcekit" 63 + -- disabled because it's broken 64 + -- "scheme_langserver", 65 65 } 66 66 -- #simple_lsps is the length of the table when treated as a list... funky! 67 67 for _, v in pairs(simple_lsps) do 68 - nvim_lsp[v].setup { 69 - capabilities = capabilities 70 - } 68 + nvim_lsp[v].setup { 69 + capabilities = capabilities 70 + } 71 71 end 72 72 73 73 nvim_lsp.fennel_ls.setup({ 74 - capabilities = capabilities, 75 - root_dir = nvim_lsp.util.root_pattern(".git", "fnl") 74 + capabilities = capabilities, 75 + root_dir = nvim_lsp.util.root_pattern(".git", "fnl") 76 76 }) 77 77 78 78 -- Whenever an LSP is attached to a buffer 79 79 local on_attach = function(ev) 80 - -- Enable completion triggered by <c-x><x-o> 81 - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' 80 + -- Enable completion triggered by <c-x><x-o> 81 + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' 82 82 83 - local opts = { noremap = true, silent = true, buffer = ev.buf } 84 - local protocol = require("vim.lsp.protocol") 85 - -- Mappings. 86 - -- See `:help vim.lsp.*` for documentation on any of the below functions 87 - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) 88 - vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) 89 - vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) 90 - vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) 91 - vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts) 92 - vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts) 93 - vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts) 94 - vim.keymap.set("n", "<space>wl", function() 95 - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 96 - end, opts) 97 - vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts) 98 - vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts) 99 - vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts) 100 - vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) 101 - vim.keymap.set("n", "<space>e", vim.diagnostic.open_float, opts) 102 - vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) 103 - vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) 104 - vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, opts) 105 - vim.keymap.set("n", "<space>f", 106 - function() vim.lsp.buf.format { async = true } end, opts) 107 - vim.keymap.set("n", "<space>s", vim.lsp.buf.workspace_symbol, opts) 83 + local opts = { noremap = true, silent = true, buffer = ev.buf } 84 + local protocol = require("vim.lsp.protocol") 85 + -- Mappings. 86 + -- See `:help vim.lsp.*` for documentation on any of the below functions 87 + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) 88 + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) 89 + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) 90 + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) 91 + vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts) 92 + vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts) 93 + vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts) 94 + vim.keymap.set("n", "<space>wl", function() 95 + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 96 + end, opts) 97 + vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts) 98 + vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts) 99 + vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts) 100 + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) 101 + vim.keymap.set("n", "<space>e", vim.diagnostic.open_float, opts) 102 + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) 103 + vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) 104 + vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, opts) 105 + vim.keymap.set("n", "<space>f", 106 + function() vim.lsp.buf.format { async = true } end, opts) 107 + vim.keymap.set("n", "<space>s", vim.lsp.buf.workspace_symbol, opts) 108 108 109 - -- require'completion'.on_attach(client, bufnr) 110 - protocol.CompletionItemKind = { 111 - "", -- Text 112 - "⋙", -- Method 113 - "𝑓", -- Function 114 - "", -- Constructor 115 - "", -- Field 116 - "", -- Variable 117 - "", -- Class 118 - "ﰮ", -- Interface 119 - "", -- Module 120 - "", -- Property 121 - "", -- Unit 122 - "", -- Value 123 - "", -- Enum 124 - "", -- Keyword 125 - "﬌", -- Snippet 126 - "", -- Color 127 - "", -- File 128 - "", -- Reference 129 - "", -- Folder 130 - "", -- EnumMember 131 - "", -- Constant 132 - "", -- Struct 133 - "", -- Event 134 - "ﬦ", -- Operator 135 - "" -- TypeParameter 136 - } 109 + -- require'completion'.on_attach(client, bufnr) 110 + protocol.CompletionItemKind = { 111 + "", -- Text 112 + "⋙", -- Method 113 + "𝑓", -- Function 114 + "", -- Constructor 115 + "", -- Field 116 + "", -- Variable 117 + "", -- Class 118 + "ﰮ", -- Interface 119 + "", -- Module 120 + "", -- Property 121 + "", -- Unit 122 + "", -- Value 123 + "", -- Enum 124 + "", -- Keyword 125 + "﬌", -- Snippet 126 + "", -- Color 127 + "", -- File 128 + "", -- Reference 129 + "", -- Folder 130 + "", -- EnumMember 131 + "", -- Constant 132 + "", -- Struct 133 + "", -- Event 134 + "ﬦ", -- Operator 135 + "" -- TypeParameter 136 + } 137 137 end 138 138 vim.api.nvim_create_autocmd('LspAttach', { 139 - group = vim.api.nvim_create_augroup('UserLspConfig', {}), 140 - callback = on_attach 139 + group = vim.api.nvim_create_augroup('UserLspConfig', {}), 140 + callback = on_attach 141 141 })
+414 -388
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 = { "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" } 36 - }, 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 - }, 67 - }, 68 - { 69 - "plan9-for-vimspace/acme-colors" 70 - }, 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" 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 - } 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" } 36 + }, 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 + }, 67 + }, 68 + { 69 + "plan9-for-vimspace/acme-colors" 70 + }, 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" 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 + } 95 95 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 - }, 112 - }, 113 - build = ":TSUpdate", 114 - version = false, 115 - dependencies = { 116 - "nvim-treesitter/nvim-treesitter-textobjects", 117 - "nvim-treesitter/nvim-treesitter-context", 118 - }, 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" 128 - }, 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" }, 157 - }, 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 - "ibhagwan/fzf-lua", 176 - -- A lua + nvim stdlib sort of thing 177 - { "nvim-lua/plenary.nvim", lazy = true, }, 178 - -- Telescope, find anything fast 179 - { 180 - "nvim-telescope/telescope.nvim", 181 - config = true, 182 - dependencies = { 183 - "nvim-lua/plenary.nvim", 184 - "nvim-telescope/telescope-symbols.nvim", 185 - "nvim-telescope/telescope-fzf-native.nvim" 186 - } 187 - }, 188 - { 189 - "folke/trouble.nvim", 190 - dependencies = "nvim-tree/nvim-web-devicons", 191 - config = true, 192 - }, 193 - -- Which key is bound? 194 - -- literally the best plugin ever 195 - { 196 - "folke/which-key.nvim", 197 - init = function() 198 - vim.o.timeout = true 199 - vim.o.timeoutlen = 300 200 - end, 201 - config = true 202 - }, 203 - -- Developing my neovim 204 - { 205 - "folke/lazydev.nvim", 206 - config = true, 207 - ft = "lua", 208 - lazy = true, 209 - opts = { 210 - library = { 211 - path = "luvit-meta/library", words = { "vim%.uv" }, 212 - }, 213 - }, 214 - dependencies = { 215 - "Bilal2453/luvit-meta" 216 - }, 217 - }, 218 - -- Lithsps 219 - { 220 - "windwp/nvim-autopairs", 221 - event = "InsertEnter", 222 - config = function() 223 - local pairs = require("nvim-autopairs") 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 + }, 112 + }, 113 + build = ":TSUpdate", 114 + version = false, 115 + dependencies = { 116 + "nvim-treesitter/nvim-treesitter-textobjects", 117 + "nvim-treesitter/nvim-treesitter-context", 118 + }, 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" 128 + }, 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" }, 157 + }, 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 + "ibhagwan/fzf-lua", 176 + -- A lua + nvim stdlib sort of thing 177 + { "nvim-lua/plenary.nvim", lazy = true, }, 178 + -- Telescope, find anything fast 179 + { 180 + "nvim-telescope/telescope.nvim", 181 + config = true, 182 + dependencies = { 183 + "nvim-lua/plenary.nvim", 184 + "nvim-telescope/telescope-symbols.nvim", 185 + "nvim-telescope/telescope-fzf-native.nvim" 186 + } 187 + }, 188 + { 189 + "folke/trouble.nvim", 190 + dependencies = "nvim-tree/nvim-web-devicons", 191 + config = true, 192 + }, 193 + -- Which key is bound? 194 + -- literally the best plugin ever 195 + { 196 + "folke/which-key.nvim", 197 + init = function() 198 + vim.o.timeout = true 199 + vim.o.timeoutlen = 300 200 + end, 201 + config = true 202 + }, 203 + -- Developing my neovim 204 + { 205 + "folke/lazydev.nvim", 206 + config = true, 207 + ft = "lua", 208 + lazy = true, 209 + opts = { 210 + library = { 211 + path = "luvit-meta/library", words = { "vim%.uv" }, 212 + }, 213 + }, 214 + dependencies = { 215 + "Bilal2453/luvit-meta" 216 + }, 217 + }, 218 + -- Lithsps 219 + { 220 + "windwp/nvim-autopairs", 221 + event = "InsertEnter", 222 + config = function() 223 + local pairs = require("nvim-autopairs") 224 224 225 - pairs.setup({ 226 - check_ts = true, 227 - enable_check_bracket_line = false, 228 - }) 225 + pairs.setup({ 226 + check_ts = true, 227 + enable_check_bracket_line = false, 228 + }) 229 229 230 - pairs.get_rules("`")[1].not_filetypes = { "clojure", "scheme", "scm", "janet" } 231 - pairs.get_rules("'")[1].not_filetypes = { "clojure", "scheme", "scm", "janet", "rust" } 232 - end, 233 - }, 234 - -- This gives me the paredit engine, it's pretty nifty 235 - { 236 - "gpanders/nvim-parinfer", 237 - ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" }, 238 - lazy = true, 239 - config = function() 240 - --vim.g.parinfer_comment_chars = { ";" } 241 - vim.g.parinfer_force_balance = true 242 - end 243 - }, -- )))))) 244 - -- This one gives me vim-sexp like structural editing 245 - { 246 - "julienvincent/nvim-paredit", 247 - config = function() 248 - local paredit = require('nvim-paredit') 249 - paredit.setup({ 250 - indent = { 251 - enabled = true, 252 - }, 253 - --filetypes = {"clojure", "fennel", "janet"}, 254 - keys = { 255 - ["<localleader>w"] = { 256 - function() 257 - -- place cursor and set mode to `insert` 258 - paredit.cursor.place_cursor( 259 - -- wrap element under cursor with `( ` and `)` 260 - paredit.wrap.wrap_element_under_cursor("( ", ")"), 261 - -- cursor placement opts 262 - { placement = "inner_start", mode = "insert" } 263 - ) 264 - end, 265 - "Wrap element insert head", 266 - }, 230 + pairs.get_rules("`")[1].not_filetypes = { "clojure", "scheme", "scm", "janet" } 231 + pairs.get_rules("'")[1].not_filetypes = { "clojure", "scheme", "scm", "janet", "rust" } 232 + end, 233 + }, 234 + -- This gives me the paredit engine, it's pretty nifty 235 + { 236 + "gpanders/nvim-parinfer", 237 + ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" }, 238 + lazy = true, 239 + config = function() 240 + --vim.g.parinfer_comment_chars = { ";" } 241 + vim.g.parinfer_force_balance = true 242 + end 243 + }, -- )))))) 244 + -- This one gives me vim-sexp like structural editing 245 + { 246 + "julienvincent/nvim-paredit", 247 + config = function() 248 + local paredit = require('nvim-paredit') 249 + paredit.setup({ 250 + indent = { 251 + enabled = true, 252 + }, 253 + --filetypes = {"clojure", "fennel", "janet"}, 254 + keys = { 255 + ["<localleader>w"] = { 256 + function() 257 + -- place cursor and set mode to `insert` 258 + paredit.cursor.place_cursor( 259 + -- wrap element under cursor with `( ` and `)` 260 + paredit.wrap.wrap_element_under_cursor("( ", ")"), 261 + -- cursor placement opts 262 + { placement = "inner_start", mode = "insert" } 263 + ) 264 + end, 265 + "Wrap element insert head", 266 + }, 267 267 268 - ["<localleader>W"] = { 269 - function() 270 - paredit.cursor.place_cursor( 271 - paredit.wrap.wrap_element_under_cursor("(", ")"), 272 - { placement = "inner_end", mode = "insert" } 273 - ) 274 - end, 275 - "Wrap element insert tail", 276 - }, 277 - -- same as above but for enclosing form 278 - ["<localleader>i"] = { 279 - function() 280 - paredit.cursor.place_cursor( 281 - paredit.wrap.wrap_enclosing_form_under_cursor( 282 - "( ", ")"), 283 - { placement = "inner_start", mode = "insert" } 284 - ) 285 - end, 286 - "Wrap form insert head", 287 - }, 288 - ["<localleader>I"] = { 289 - function() 290 - paredit.cursor.place_cursor( 291 - paredit.wrap.wrap_enclosing_form_under_cursor( 292 - "(", ")"), 293 - { placement = "inner_end", mode = "insert" } 294 - ) 295 - end, 296 - "Wrap form insert tail", 297 - }, 298 - ["<localleader>["] = { 299 - function() 300 - paredit.cursor.place_cursor( 301 - paredit.wrap.wrap_enclosing_form_under_cursor( 302 - "[", "]"), 303 - { placement = "inner_start", mode = "insert" } 304 - ) 305 - end, 306 - }, 307 - ["<localleader>{"] = { 308 - function() 309 - paredit.cursor.place_cursor( 310 - paredit.wrap.wrap_enclosing_form_under_cursor( 311 - "{", "}"), 312 - { placement = "inner_end", mode = "insert" } 313 - ) 314 - end, 315 - }, 316 - }, 317 - }) 318 - end, 319 - lazy = true, 320 - ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" } 321 - }, 322 - --{ "hiphish/rainbow-delimiters.nvim", priority = 1050, }, 323 - -- Conjure, lisp is magical 324 - { 325 - "Olical/conjure", 326 - dependencies = { "PaterJason/cmp-conjure" }, 327 - config = function() 328 - vim.g["conjure#client#scheme#stdio#command"] = "gxi" 329 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 330 - end, 331 - lazy = true, 332 - ft = { "scheme", "scm", "lisp", "fennel", "clojure", "lua", "janet" }, 333 - }, 334 - { "PaterJason/cmp-conjure", lazy = true }, 335 - { "p1xelHer0/gerbil.nvim", lazy = true, ft = "scheme", config = true }, -- Fennel, Luasthp 336 - { "jaawerth/fennel.vim", lazy = true, ft = "fennel", config = true }, 337 - { "rktjmp/hotpot.nvim", lazy = true, ft = "fennel", config = true }, 338 - { "Olical/nfnl", lazy = true, ft = "fennel", config = true }, -- Rust stuff 339 - { 340 - "simrat39/rust-tools.nvim", 341 - lazy = true, 342 - ft = { "rust" }, 343 - config = function() 344 - local rt = require("rust-tools") 345 - rt.setup({ 346 - server = { 347 - on_attach = function(_, bufnr) 348 - -- Hover actions 349 - vim.keymap.set("n", "<C-space>", 350 - rt.hover_actions.hover_actions, 351 - { buffer = bufnr }) 352 - -- Code action groups 353 - vim.keymap.set("n", "<Leader>a", 354 - rt.code_action_group.code_action_group, 355 - { buffer = bufnr }) 356 - end 357 - } 358 - }) 359 - end, 360 - dependencies = { "nvim-lua/plenary.nvim" } 361 - }, 362 - { "mfussenegger/nvim-dap", lazy = true, ft = { "c", "rust" } }, 363 - { 364 - "saecki/crates.nvim", 365 - tag = "v0.4.0", 366 - dependencies = { "nvim-lua/plenary.nvim" }, 367 - config = function() require("crates").setup() end, 368 - lazy = true, 369 - ft = { "rust" } 370 - }, -- RISC-V Assembly syntax highlighting 371 - { "kylelaker/riscv.vim", ft = "riscv" }, -- Hare Stuff 372 - -- Hare stuff 373 - -- Haredoc 374 - { 375 - url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 376 - lazy = true, 377 - ft = { "hare" }, 378 - branch = "dev" 379 - }, 380 - { url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = { "hare" } }, 381 - -- TCL 382 - { "lewis6991/tree-sitter-tcl", lazy = true, build = "make" }, 383 - -- LF 384 - { 385 - "ptzz/lf.vim", 386 - lazy = true, 387 - cmd = { "Lf" }, 388 - dependencies = { "voldikss/vim-floaterm" } 389 - }, 390 - -- SuperMaven, another AI coding tool 391 - { 392 - "supermaven-inc/supermaven-nvim", 393 - opts = { keymaps = { accept_suggestion = "<C-f>" } }, 394 - --lazy = true, 395 - priority = 10000, 396 - cmd = "SupermavenStart" 397 - }, 398 - { "imsnif/kdl.vim", lazy = true, ft = "kdl" }, 399 - { "catgoose/nvim-colorizer.lua", lazy = true, ft = {"css", "html", "toml", "conf"}} 400 - } 268 + ["<localleader>W"] = { 269 + function() 270 + paredit.cursor.place_cursor( 271 + paredit.wrap.wrap_element_under_cursor("(", ")"), 272 + { placement = "inner_end", mode = "insert" } 273 + ) 274 + end, 275 + "Wrap element insert tail", 276 + }, 277 + -- same as above but for enclosing form 278 + ["<localleader>i"] = { 279 + function() 280 + paredit.cursor.place_cursor( 281 + paredit.wrap.wrap_enclosing_form_under_cursor( 282 + "( ", ")"), 283 + { placement = "inner_start", mode = "insert" } 284 + ) 285 + end, 286 + "Wrap form insert head", 287 + }, 288 + ["<localleader>I"] = { 289 + function() 290 + paredit.cursor.place_cursor( 291 + paredit.wrap.wrap_enclosing_form_under_cursor( 292 + "(", ")"), 293 + { placement = "inner_end", mode = "insert" } 294 + ) 295 + end, 296 + "Wrap form insert tail", 297 + }, 298 + ["<localleader>["] = { 299 + function() 300 + paredit.cursor.place_cursor( 301 + paredit.wrap.wrap_enclosing_form_under_cursor( 302 + "[", "]"), 303 + { placement = "inner_start", mode = "insert" } 304 + ) 305 + end, 306 + }, 307 + ["<localleader>{"] = { 308 + function() 309 + paredit.cursor.place_cursor( 310 + paredit.wrap.wrap_enclosing_form_under_cursor( 311 + "{", "}"), 312 + { placement = "inner_end", mode = "insert" } 313 + ) 314 + end, 315 + }, 316 + }, 317 + }) 318 + end, 319 + lazy = true, 320 + ft = { "hy", "scheme", "scm", "clojure", "fennel", "janet", "lisp", "python", "lua" } 321 + }, 322 + --{ "hiphish/rainbow-delimiters.nvim", priority = 1050, }, 323 + -- Conjure, lisp is magical 324 + { 325 + "Olical/conjure", 326 + dependencies = { "PaterJason/cmp-conjure" }, 327 + config = function() 328 + vim.g["conjure#client#scheme#stdio#command"] = "gxi" 329 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 330 + end, 331 + lazy = true, 332 + ft = { "scheme", "scm", "lisp", "fennel", "clojure", "lua", "janet" }, 333 + }, 334 + { "PaterJason/cmp-conjure", lazy = true }, 335 + { "p1xelHer0/gerbil.nvim", lazy = true, ft = "scheme", config = true }, -- Fennel, Luasthp 336 + { "jaawerth/fennel.vim", lazy = true, ft = "fennel", config = true }, 337 + { "rktjmp/hotpot.nvim", lazy = true, ft = "fennel", config = true }, 338 + { "Olical/nfnl", lazy = true, ft = "fennel", config = true }, -- Rust stuff 339 + { 340 + "simrat39/rust-tools.nvim", 341 + lazy = true, 342 + ft = { "rust" }, 343 + config = function() 344 + local rt = require("rust-tools") 345 + rt.setup({ 346 + server = { 347 + on_attach = function(_, bufnr) 348 + -- Hover actions 349 + vim.keymap.set("n", "<C-space>", 350 + rt.hover_actions.hover_actions, 351 + { buffer = bufnr }) 352 + -- Code action groups 353 + vim.keymap.set("n", "<Leader>a", 354 + rt.code_action_group.code_action_group, 355 + { buffer = bufnr }) 356 + end 357 + } 358 + }) 359 + end, 360 + dependencies = { "nvim-lua/plenary.nvim" } 361 + }, 362 + { "mfussenegger/nvim-dap", lazy = true, ft = { "c", "rust" } }, 363 + { 364 + "saecki/crates.nvim", 365 + tag = "v0.4.0", 366 + dependencies = { "nvim-lua/plenary.nvim" }, 367 + config = function() require("crates").setup() end, 368 + lazy = true, 369 + ft = { "rust" } 370 + }, -- RISC-V Assembly syntax highlighting 371 + { "kylelaker/riscv.vim", ft = "riscv" }, -- Hare Stuff 372 + -- Hare stuff 373 + -- Haredoc 374 + { 375 + url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 376 + lazy = true, 377 + ft = { "hare" }, 378 + branch = "dev" 379 + }, 380 + { url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = { "hare" } }, 381 + -- TCL 382 + { "lewis6991/tree-sitter-tcl", lazy = true, build = "make" }, 383 + -- LF 384 + { 385 + "ptzz/lf.vim", 386 + lazy = true, 387 + cmd = { "Lf" }, 388 + dependencies = { "voldikss/vim-floaterm" } 389 + }, 390 + -- SuperMaven, another AI coding tool 391 + --{ 392 + -- "supermaven-inc/supermaven-nvim", 393 + -- opts = { keymaps = { accept_suggestion = "<C-f>" } }, 394 + -- --lazy = true, 395 + -- priority = 10000, 396 + -- cmd = "SupermavenStart" 397 + --}, 398 + { 399 + "olimorris/codecompanion.nvim", 400 + opts = { 401 + adapters = { 402 + ambient = function() 403 + return require("codecompanion.adapters").extend("openai_compatible", { 404 + env = { 405 + url = "http://34.46.152.76", 406 + chat_url = "/run-auction" 407 + } 408 + }) 409 + end, 410 + ollama = function() 411 + return require("codecompanion.adapters").extend("ollama", { 412 + env = { 413 + url = "http://localhost:11434", 414 + }, 415 + parameters = { 416 + sync = false, 417 + } 418 + }) 419 + end 420 + }, 421 + }, 422 + priority = 10000, 423 + }, 424 + { "imsnif/kdl.vim", lazy = true, ft = "kdl" }, 425 + { "catgoose/nvim-colorizer.lua", lazy = true, ft = { "css", "html", "toml", "conf" } } 426 + } 401 427 })