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.

Pull changes for neovim, serve files

+462 -262
+90 -25
nvim/init.lua
··· 5 5 -- Load Plugins 6 6 require("plugins") 7 7 -- Color Scheme 8 - vim.cmd.colorscheme = "everforest" 8 + vim.cmd([[colorscheme kanagawa]]) 9 9 -- Config for Nord, which I usually use 10 - -- vim.g.nord_italic = false 11 - -- vim.g.nord_bold = false 12 - -- vim.opt.background = "light" 10 + --vim.g.nord_italic = false 11 + --vim.g.nord_bold = false 12 + --vim.opt.background = "light" 13 13 vim.opt.background = "dark" 14 + 14 15 15 16 -- Formatting and vim config 16 17 vim.opt.expandtab = true ··· 39 40 vim.g.sexp_enable_insert_mode_mappings = 1 40 41 41 42 -- LuaLine Config 42 - require("lualine").setup({options = {icons_enabled = true, theme = "auto"}}) 43 + require("lualine").setup( 44 + { 45 + options = { 46 + icons_enabled = true, 47 + theme = "auto" 48 + } 49 + } 50 + ) 43 51 44 52 -- CTags 45 - vim.opt.tags = vim.opt.tags + vim.fn.expand("~/.local/tmp/ctags") + 46 - vim.fn.expand("~/repos/gerbil/src/TAGS") 53 + vim.opt.tags = vim.opt.tags + vim.fn.expand("~/.local/tmp/ctags") + vim.fn.expand("~/repos/gerbil/src/TAGS") 47 54 48 55 -- Conjure 49 56 ··· 55 62 end 56 63 set_gerbil() 57 64 vim.api.nvim_create_user_command("ConjureGerbil", set_gerbil, {}) 65 + 66 + 58 67 59 68 -- Chibi-scheme 60 69 local set_chibi = function() ··· 138 147 -- LSP Documentation viewer 139 148 keymap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", silentnoremap) 140 149 141 - -- Autoformat! 142 - keymap("n", "<C-n>", "<cmd>Neoformat<cr>", silentnoremap) 143 - 144 150 -- Python Specific 145 151 vim.g.python3_host_prog = vim.fn.expand("~/.envs/nvim/bin/python3") 146 152 147 153 -- Set up Treesitter 148 - require("nvim-treesitter.configs").setup({ 149 - highlight = {enable = true, disable = {}}, 150 - indent = {enable = true, disable = {}}, 151 - ensure_installed = { 152 - "c", "cpp", "capnp", "cmake", "bash", "dockerfile", "diff", 153 - "devicetree", "dot", "ebnf", "elixir", "erlang", "clojure", "fortran", 154 - "go", "gomod", "gosum", "graphql", "git_config", "git_rebase", 155 - "gitcommit", "gitignore", "gleam", "julia", "fish", "toml", "haskell", 156 - "hare", "http", "html", "ini", "json", "jq", "latex", "llvm", "mermaid", 157 - "make", "meson", "ninja", "yaml", "python", "proto", "racket", "rst", 158 - "scala", "html", "tsx", "rust", "scheme", "fennel", "lua", "markdown", 159 - "markdown_inline", "sql", "thrift", "typescript", "verilog", "vim", 160 - "zig", "uxntal", "kdl" 154 + require("nvim-treesitter.configs").setup( 155 + { 156 + highlight = { 157 + enable = true, 158 + disable = {} 159 + }, 160 + indent = { 161 + enable = false, 162 + disable = {} 163 + }, 164 + ensure_installed = { 165 + "c", 166 + "cpp", 167 + "capnp", 168 + "cmake", 169 + "bash", 170 + "dockerfile", 171 + "diff", 172 + "devicetree", 173 + "dot", 174 + "ebnf", 175 + "elixir", 176 + "erlang", 177 + "clojure", 178 + "fortran", 179 + "go", 180 + "gomod", 181 + "gosum", 182 + "graphql", 183 + "git_config", 184 + "git_rebase", 185 + "gitcommit", 186 + "gitignore", 187 + "gleam", 188 + "julia", 189 + "fish", 190 + "toml", 191 + "haskell", 192 + "hare", 193 + "http", 194 + "html", 195 + "ini", 196 + "json", 197 + "jq", 198 + "latex", 199 + "llvm", 200 + "mermaid", 201 + "make", 202 + "meson", 203 + "ninja", 204 + "yaml", 205 + "python", 206 + "proto", 207 + "racket", 208 + "rst", 209 + "scala", 210 + "html", 211 + "tsx", 212 + "rust", 213 + "scheme", 214 + "fennel", 215 + "lua", 216 + "markdown", 217 + "markdown_inline", 218 + "sql", 219 + "thrift", 220 + "typescript", 221 + "verilog", 222 + "vim", 223 + "zig", 224 + "uxntal" 225 + } 161 226 } 162 - }) 227 + ) 163 228 164 229 -- Set up Which Key? 165 230 require("which-key").setup({}) 166 231 -- ######################## 167 - -- # Require other configs # 232 + --# Require other configs # 168 233 -- ######################## 169 234 -- LSP 170 235 require("lsp")
+71 -36
nvim/lua/completion.lua
··· 1 - -- Copied from https://github.com/hrsh7th/nvim-cmp/?tab=readme-ov-file#recommended-configuration 2 - local cmp = require('cmp') 3 - cmp.setup({ 4 - snippet = { 5 - -- REQUIRED - you must specify a snippet engine 6 - expand = function(args) 7 - vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. 8 - end 9 - }, 10 - window = { 11 - completion = cmp.config.window.bordered(), 12 - documentation = cmp.config.window.bordered() 13 - }, 14 - mapping = cmp.mapping.preset.insert({ 15 - ['<C-b>'] = cmp.mapping.scroll_docs(-4), 16 - ['<C-f>'] = cmp.mapping.scroll_docs(4), 17 - ['<C-Space>'] = cmp.mapping.complete(), 18 - ['<C-e>'] = cmp.mapping.abort(), 19 - ['<CR>'] = cmp.mapping.confirm({select = true}) -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. 20 - }), 21 - sources = cmp.config.sources({ 22 - {name = 'nvim_lsp'}, {name = 'vsnip'} -- For vsnip users. 23 - }, {{name = 'buffer'}}) 24 - }) 25 - require("cmp_git").setup() 26 - -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). 27 - cmp.setup.cmdline({'/', '?'}, { 28 - mapping = cmp.mapping.preset.cmdline(), 29 - sources = {{name = 'buffer'}} 30 - }) 1 + require("compe").setup( 2 + { 3 + enabled = true, 4 + autocomplete = true, 5 + debug = false, 6 + min_length = 1, 7 + preselect = "enable", 8 + throttle_time = 80, 9 + source_timeout = 200, 10 + resolve_timeout = 800, 11 + incomplete_delay = 400, 12 + max_abbr_width = 100, 13 + max_kind_width = 100, 14 + max_menu_width = 100, 15 + documentation = { 16 + border = {"", "", "", " ", "", "", "", " "}, -- the border option is the same as `|help nvim_open_win|` 17 + winhighlight = "NormalFloat:CompeDocumentation,FloatBorder:CompeDocumentationBorder", 18 + max_width = 120, 19 + min_width = 60, 20 + max_height = math.floor(vim.o.lines * 0.3), 21 + min_height = 1 22 + }, 23 + source = { 24 + path = true, 25 + buffer = true, 26 + calc = true, 27 + nvim_lsp = true, 28 + nvim_lua = true, 29 + vsnip = true, 30 + ultisnips = true, 31 + luasnip = true 32 + } 33 + } 34 + ) 35 + local t = function(str) 36 + return vim.api.nvim_replace_termcodes(str, true, true, true) 37 + end 38 + 39 + local check_back_space = function() 40 + local col = vim.fn.col(".") - 1 41 + return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") ~= nil 42 + end 43 + 44 + -- Use (s-)tab to: 45 + --- move to prev/next item in completion menuone 46 + --- jump to prev/next snippet's placeholder 47 + _G.tab_complete = function() 48 + if vim.fn.pumvisible() == 1 then 49 + return t "<C-n>" 50 + elseif vim.fn["vsnip#available"](1) == 1 then 51 + return t "<Plug>(vsnip-expand-or-jump)" 52 + elseif check_back_space() then 53 + return t "<Tab>" 54 + else 55 + return vim.fn["compe#complete"]() 56 + end 57 + end 58 + _G.s_tab_complete = function() 59 + if vim.fn.pumvisible() == 1 then 60 + return t "<C-p>" 61 + elseif vim.fn["vsnip#jumpable"](-1) == 1 then 62 + return t "<Plug>(vsnip-jump-prev)" 63 + else 64 + -- If <S-Tab> is not working in your terminal, change it to <C-h> 65 + return t "<S-Tab>" 66 + end 67 + end 31 68 32 - -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). 33 - cmp.setup.cmdline(':', { 34 - mapping = cmp.mapping.preset.cmdline(), 35 - sources = cmp.config.sources({{name = 'path'}}, {{name = 'cmdline'}}), 36 - matching = {disallow_symbol_nonprefix_matching = false} 37 - }) 69 + vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true}) 70 + vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true}) 71 + vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) 72 + vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
+87 -35
nvim/lua/lsp.lua
··· 1 1 local nvim_lsp = require("lspconfig") 2 - local capabilities = require('cmp_nvim_lsp').default_capabilities() 3 - -- ######################## 4 - -- #### Set up LSPs #### 5 - -- ######################## 2 + --######################## 3 + --#### Set up LSPs #### 4 + --######################## 5 + -- 6 + -- TypeScript 7 + nvim_lsp.tsserver.setup { 8 + flags = { 9 + debounce_text_changes = 150 10 + } 11 + } 6 12 7 13 local util = require("lspconfig.util") 8 14 9 15 -- Rust 10 16 -- Python LSP 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 { 17 + nvim_lsp.pylsp.setup( 18 + { 19 + cmd = {"/home/noah/.envs/nvim/bin/pylsp"}, 20 + root_dir = function(fname) 21 + local root_files = { 22 + "pants.toml", 23 + "pyproject.toml", 24 + "setup.py", 25 + "setup.cfg", 26 + "Pipfile" 27 + } 28 + return util.find_git_ancestor(fname) or util.root_pattern(unpack(root_files))(fname) 29 + end 30 + } 31 + ) 32 + --nvim_lsp.scheme_langserver.setup{} 33 + 34 + -- Golang 35 + -- Lots of things 36 + --nvim_lsp.diagnosticls.setup( 37 + -- { 38 + -- flags = { 39 + -- debounce_text_changes = 150 40 + -- } 41 + -- } 42 + --) 43 + nvim_lsp.lua_ls.setup{ 22 44 settings = { 23 45 Lua = { 24 46 runtime = { ··· 34 56 library = vim.api.nvim_get_runtime_file("", true) 35 57 }, 36 58 -- Do not send telemetry data containing a randomized but unique identifier 37 - telemetry = {enable = false} 59 + telemetry = { 60 + enable = false 61 + } 38 62 } 39 63 } 40 64 } 41 65 42 66 -- LSPs that just use default config 43 67 local simple_lsps = { 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", 68 + "fennel_ls", 69 + "nil_ls", 70 + "htmx", 71 + "bzl", 72 + "bufls", 73 + "crystalline", 74 + "dockerls", 75 + "erlangls", 76 + "elixirls", 77 + "fortls", 78 + "gleam", 79 + "gopls", 80 + "hls", 81 + "jsonls", 82 + "vimls", 83 + "asm_lsp", 84 + "ccls", 85 + "pyright", 86 + -- ruff", idk if this is wrong? 87 + "ruff_lsp", 88 + "clojure_lsp", 89 + "guile_ls", 48 90 -- Of course the Java-based ones are verbose af 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" 53 - -- disabled because it's broken 54 - -- "scheme_langserver", 91 + "kotlin_language_server", 92 + "java_language_server", 93 + "jsonls", 94 + "pest_ls", 95 + "ocamllsp", 96 + "reason_ls", 97 + "racket_langserver", 98 + "rust_analyzer", 99 + "scheme_langserver", 100 + "sqls", 101 + "thriftls", 102 + "typst_lsp", 103 + "vhdl_ls", 104 + "yamlls", 105 + "zls", 106 + "tsserver", 107 + "eslint", 55 108 } 56 109 -- #simple_lsps is the length of the table when treated as a list... funky! 57 - for _, v in pairs(simple_lsps) do nvim_lsp[v].setup { 58 - capabilities = capabilities 59 - } end 110 + for _,v in pairs(simple_lsps) do 111 + nvim_lsp[v].setup{} 112 + end 60 113 61 114 -- Whenever an LSP is attached to a buffer 62 115 local on_attach = function(ev) 63 - -- Enable completion triggered by <c-x><x-o> 116 + --Enable completion triggered by <c-x><x-o> 64 117 vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' 65 118 66 119 local opts = {noremap = true, silent = true, buffer = ev.buf} ··· 74 127 vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts) 75 128 vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts) 76 129 vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts) 77 - vim.keymap.set("n", "<space>wl", function() 78 - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 79 - end, opts) 130 + vim.keymap.set("n", "<space>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) 80 131 vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts) 81 132 vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts) 82 133 vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts) ··· 85 136 vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) 86 137 vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) 87 138 vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, opts) 88 - vim.keymap.set("n", "<space>f", 89 - function() vim.lsp.buf.format {async = true} end, opts) 139 + vim.keymap.set("n", "<space>f", function() 140 + vim.lsp.buf.format{ async = true } 141 + end, opts) 90 142 vim.keymap.set("n", "<space>s", vim.lsp.buf.workspace_symbol, opts) 91 143 92 144 -- require'completion'.on_attach(client, bufnr)
+192 -165
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 - "git", "clone", "--filter=blob:none", 7 - "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release 8 - lazypath 9 - }) 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 + ) 10 15 end 11 16 vim.opt.rtp:prepend(lazypath) 12 17 end 13 18 14 19 local lazy_bootstrap = ensure_lazy() 15 - if lazy_bootstrap then print("Bootstrapped lazy.nvim") end 20 + if lazy_bootstrap then 21 + print("Bootstrapped lazy.nvim") 22 + end 16 23 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 - -- Completion 24 + require("lazy").setup( 33 25 { 34 - "hrsh7th/nvim-cmp", 35 - dependencies = { 36 - "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", 37 - "hrsh7th/cmp-vsnip", "hrsh7th/vim-vsnip", "petertriho/cmp-git", 38 - "hrsh7th/cmp-cmdline" 39 - } 40 - }, -- nvim lsp plugins 41 - "neovim/nvim-lspconfig", { 42 - "nvimdev/lspsaga.nvim", 43 - dependencies = { 44 - "nvim-tree/nvim-web-devicons", "nvim-treesitter/nvim-treesitter" 26 + -- Color themes 27 + "shaunsingh/nord.nvim", 28 + "shaunsingh/moonlight.nvim", 29 + "folke/tokyonight.nvim", 30 + "cranberry-clockworks/coal.nvim", 31 + "hardselius/warlock", 32 + { 33 + "neanias/everforest-nvim", 34 + version = false, 35 + lazy = false, 36 + priority = 1000, -- make sure to load this before all the other start plugins 37 + main = "everforest", 38 + opts = { 39 + background = "hard", 40 + }, 41 + }, 42 + { 43 + "rebelot/kanagawa.nvim", 44 + opts = {compile = true} 45 + }, 46 + -- show indents and whitespace characters 47 + "lukas-reineke/indent-blankline.nvim", 48 + -- Completion 49 + "hrsh7th/nvim-compe", 50 + "hrsh7th/vim-vsnip", 51 + -- nvim lsp plugins 52 + "neovim/nvim-lspconfig", 53 + { 54 + "nvimdev/lspsaga.nvim", 55 + dependencies = { 56 + "nvim-tree/nvim-web-devicons", 57 + "nvim-treesitter/nvim-treesitter" 58 + }, 59 + opts = {lightbulb = {enable = false}}, 60 + event = "LspAttach" 61 + }, 62 + -- Syntax Highlighting from the future 63 + { 64 + "nvim-treesitter/nvim-treesitter", 65 + init = function() 66 + vim.cmd([[":TSUpdate"]]) 67 + end 68 + }, 69 + -- GitGutter, shows inline difs 70 + "airblade/vim-gitgutter", 71 + -- Git wrapper plugin 72 + "tpope/vim-fugitive", 73 + -- surround with pairs )))))) 74 + --"tpope/vim-surround", 75 + -- Auto format tool 76 + {"sbdchd/neoformat", lazy = true, cmd = "Neoformat"}, 77 + -- Distraction free writing: GoYo + Limelight 78 + {"junegunn/limelight.vim", lazy = true, ft = "markdown"}, 79 + {"junegunn/goyo.vim", lazy = true, ft = "markdown"}, 80 + -- Golang plugins 81 + --use {"fatih/vim-go", run = ":GoUpdateBinaries", lazy = true, ft = "go"} 82 + { 83 + "ray-x/go.nvim", 84 + ft = "go", 85 + lazy = true, 86 + dependencies = { 87 + "ray-x/guihua.lua", 88 + "neovim/nvim-lspconfig", 89 + "nvim-treesitter/nvim-treesitter" 90 + } 91 + }, 92 + { 93 + "nvim-lualine/lualine.nvim", 94 + dependencies = {"nvim-tree/nvim-web-devicons"} 95 + }, 96 + "junegunn/fzf.vim", 97 + { 98 + dir = "~/.fzf", 99 + build = function() 100 + vim.fn["fzf#install"](0) 101 + end, 102 + dependencies = {"junegunn/fzf.vim"} 103 + }, 104 + -- Polyglot 105 + "sheerun/vim-polyglot", 106 + -- Telescope, find anything fast 107 + "nvim-lua/plenary.nvim", 108 + {"nvim-telescope/telescope.nvim", dependencies = {"nvim-lua/plenary.nvim"}}, 109 + "nvim-telescope/telescope-symbols.nvim", 110 + {"folke/trouble.nvim", dependencies = "nvim-tree/nvim-web-devicons"}, 111 + -- Which key is bound? 112 + "folke/which-key.nvim", -- literally the best plugin ever 113 + -- Lithsps 114 + { 115 + "guns/vim-sexp", 116 + ft = {"hy", "scheme", "clojure"}, 117 + }, -- )))))) 118 + {"hiphish/rainbow-delimiters.nvim"}, 119 + --{"gpanders/nvim-parinfer", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}}, 120 + --{ 121 + -- "eraserhd/parinfer-rust", 122 + -- build = "RUSTFLAGS='-C target-feature=+crt-static' cargo build --release", 123 + -- ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 124 + --}, 125 + -- Conjure, lisp is magical 126 + { 127 + "Olical/conjure", 128 + ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 129 + config = function() 130 + vim.g["conjure#client#scheme#stdio#command"] = "gxi" 131 + vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 132 + end 133 + }, 134 + {"p1xelHer0/gerbil.nvim", ft = "scheme"}, 135 + -- Fennel, Luasthp 136 + {"jaawerth/fennel.vim", lazy = true, ft = "fennel"}, 137 + {"rktjmp/hotpot.nvim", lazy = true, ft = "fennel"}, 138 + {"Olical/nfnl", ft = "fennel"}, 139 + -- Rust stuff 140 + { 141 + "simrat39/rust-tools.nvim", 142 + ft = {"rust"}, 143 + config = function() 144 + local rt = require("rust-tools") 145 + rt.setup( 146 + { 147 + server = { 148 + on_attach = function(_, bufnr) 149 + -- Hover actions 150 + vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, {buffer = bufnr}) 151 + -- Code action groups 152 + vim.keymap.set( 153 + "n", 154 + "<Leader>a", 155 + rt.code_action_group.code_action_group, 156 + {buffer = bufnr} 157 + ) 158 + end 159 + } 160 + } 161 + ) 162 + end, 163 + dependencies = {"nvim-lua/plenary.nvim"} 164 + }, 165 + {"mfussenegger/nvim-dap", lazy = true, ft = {"c", "rust"}}, 166 + { 167 + "saecki/crates.nvim", 168 + tag = "v0.4.0", 169 + dependencies = {"nvim-lua/plenary.nvim"}, 170 + config = function() 171 + require("crates").setup() 172 + end, 173 + ft = {"rust"} 45 174 }, 46 - opts = {lightbulb = {enable = false}}, 47 - event = "LspAttach" 48 - }, -- Syntax Highlighting from the future 49 - { 50 - "nvim-treesitter/nvim-treesitter", 51 - init = function() vim.cmd([[":TSUpdate"]]) end 52 - }, -- Git stuff 53 - -- GitGutter, shows inline difs 54 - "airblade/vim-gitgutter", -- "tpope/vim-fugitive", -- old git command 55 - { 56 - "NeogitOrg/neogit", 57 - dependencies = { 58 - "nvim-lua/plenary.nvim", -- required 59 - "sindrets/diffview.nvim", -- optional - Diff integration 60 - "nvim-telescope/telescope.nvim" 61 - } 62 - }, -- surround with pairs )))))) 63 - -- "tpope/vim-surround", 64 - -- Auto format tool 65 - {"sbdchd/neoformat", lazy = true, cmd = "Neoformat"}, 66 - -- Distraction free writing: GoYo + Limelight 67 - {"junegunn/limelight.vim", lazy = true, ft = "markdown"}, 68 - {"junegunn/goyo.vim", lazy = true, ft = "markdown"}, -- Golang plugins 69 - -- use {"fatih/vim-go", run = ":GoUpdateBinaries", lazy = true, ft = "go"} 70 - { 71 - "ray-x/go.nvim", 72 - ft = "go", 73 - lazy = true, 74 - dependencies = { 75 - "ray-x/guihua.lua", "neovim/nvim-lspconfig", 76 - "nvim-treesitter/nvim-treesitter" 175 + -- RISC-V Assembly syntax highlighting 176 + {"kylelaker/riscv.vim", ft = "riscv"}, 177 + -- Hare Stuff 178 + 179 + -- Haredoc 180 + {url = "https://git.sr.ht/~torresjrjr/vim-haredoc", ft = {"hare"}, branch = "dev"}, 181 + -- Hare.vim 182 + {url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = {"hare"}}, 183 + -- TCL 184 + {"lewis6991/tree-sitter-tcl", build = "make"}, 185 + -- LF 186 + {"ptzz/lf.vim", cmd = {"Lf"}, dependencies = {"voldikss/vim-floaterm"}}, 187 + -- Copilot 188 + -- use {"github/copilot.vim", lazy = true, cmd = {"Copilot"}} 189 + -- Mason 190 + { 191 + "williamboman/mason.nvim", 192 + init = function() 193 + vim.cmd([[":MasonUpdate"]]) 194 + end, 195 + dependencies = { 196 + "williamboman/mason-lspconfig.nvim", 197 + "mfussenegger/nvim-dap", 198 + "jose-elias-alvarez/null-ls.nvim" 199 + }, 200 + config = function() 201 + require("mason").setup() 202 + end 77 203 } 78 204 }, 79 - { 80 - "nvim-lualine/lualine.nvim", 81 - dependencies = {"nvim-tree/nvim-web-devicons"} 82 - }, "junegunn/fzf.vim", { 83 - dir = "~/.fzf", 84 - build = function() vim.fn["fzf#install"](0) end, 85 - dependencies = {"junegunn/fzf.vim"} 86 - }, -- Polyglot 87 - "sheerun/vim-polyglot", -- Telescope, find anything fast 88 - "nvim-lua/plenary.nvim", 89 - {"nvim-telescope/telescope.nvim", dependencies = {"nvim-lua/plenary.nvim"}}, 90 - "nvim-telescope/telescope-symbols.nvim", 91 - {"folke/trouble.nvim", dependencies = "nvim-tree/nvim-web-devicons"}, 92 - -- Which key is bound? 93 - "folke/which-key.nvim", -- literally the best plugin ever 94 - -- Developing my neovim 95 - { "folke/neodev.nvim", opts = {}}, 96 - -- Lithsps 97 - {"guns/vim-sexp", ft = {"hy", "scheme", "clojure"}}, -- )))))) 98 - {"hiphish/rainbow-delimiters.nvim"}, 99 - -- {"gpanders/nvim-parinfer", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}}, 100 - -- { 101 - -- "eraserhd/parinfer-rust", 102 - -- build = "RUSTFLAGS='-C target-feature=+crt-static' cargo build --release", 103 - -- ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 104 - -- }, 105 - -- Conjure, lisp is magical 106 - { 107 - "Olical/conjure", 108 - ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, 109 - config = function() 110 - vim.g["conjure#client#scheme#stdio#command"] = "gxi" 111 - vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" 112 - end 113 - }, {"p1xelHer0/gerbil.nvim", ft = "scheme"}, -- Fennel, Luasthp 114 - {"jaawerth/fennel.vim", lazy = true, ft = "fennel"}, 115 - {"rktjmp/hotpot.nvim", lazy = true, ft = "fennel"}, 116 - {"Olical/nfnl", ft = "fennel"}, -- Rust stuff 117 - { 118 - "simrat39/rust-tools.nvim", 119 - ft = {"rust"}, 120 - config = function() 121 - local rt = require("rust-tools") 122 - rt.setup({ 123 - server = { 124 - on_attach = function(_, bufnr) 125 - -- Hover actions 126 - vim.keymap.set("n", "<C-space>", 127 - rt.hover_actions.hover_actions, 128 - {buffer = bufnr}) 129 - -- Code action groups 130 - vim.keymap.set("n", "<Leader>a", 131 - rt.code_action_group.code_action_group, 132 - {buffer = bufnr}) 133 - end 134 - } 135 - }) 136 - end, 137 - dependencies = {"nvim-lua/plenary.nvim"} 138 - }, {"mfussenegger/nvim-dap", lazy = true, ft = {"c", "rust"}}, { 139 - "saecki/crates.nvim", 140 - tag = "v0.4.0", 141 - dependencies = {"nvim-lua/plenary.nvim"}, 142 - config = function() require("crates").setup() end, 143 - ft = {"rust"} 144 - }, -- RISC-V Assembly syntax highlighting 145 - {"kylelaker/riscv.vim", ft = "riscv"}, -- Hare Stuff 146 - -- Haredoc 147 - { 148 - url = "https://git.sr.ht/~torresjrjr/vim-haredoc", 149 - ft = {"hare"}, 150 - branch = "dev" 151 - }, -- Hare.vim 152 - {url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = {"hare"}}, -- TCL 153 - {"lewis6991/tree-sitter-tcl", build = "make"}, -- LF 154 - {"ptzz/lf.vim", cmd = {"Lf"}, dependencies = {"voldikss/vim-floaterm"}}, 155 - -- Copilot 156 - -- use {"github/copilot.vim", lazy = true, cmd = {"Copilot"}} 157 - -- SuperMaven, another AI coding tool 158 - { 159 - "supermaven-inc/supermaven-nvim", 160 - opts = {keymaps = {accept_suggestion = "<C-f>"}}, 161 - lazy = true, 162 - cmd = "SupermavenActivate" 163 - }, -- Mason 164 - -- { 165 - -- "williamboman/mason.nvim", 166 - -- init = function() 167 - -- vim.cmd([[":MasonUpdate"]]) 168 - -- end, 169 - -- dependencies = { 170 - -- "williamboman/mason-lspconfig.nvim", 171 - -- "mfussenegger/nvim-dap", 172 - -- "jose-elias-alvarez/null-ls.nvim" 173 - -- }, 174 - -- config = function() 175 - -- require("mason").setup() 176 - -- end 177 - -- }, 178 - "imsnif/kdl.vim" 179 - }, nil) 205 + nil 206 + )
+22 -1
services.nix
··· 234 234 defaults.email = "noah@packetlost.dev"; 235 235 certs."plex.packetlostandfound.us" = { 236 236 group = "httpd"; 237 - #dnsProvider = "porkbun"; 238 237 }; 238 + #certs."plex.packetlost.dev" = { 239 + # group = "httpd"; 240 + #}; 241 + #certs."ngp.computer" = { 242 + # group = "httpd"; 243 + #}; 239 244 }; 240 245 241 246 services.plex = { ··· 264 269 }; 265 270 }; 266 271 272 + virtualHosts."files.ngp.computer" = { 273 + locations."/" = { 274 + basicAuth = { 275 + alex = "password123"; 276 + }; 277 + extraConfig = '' 278 + root "/srv/shokuhou/videos/anime/Fullmetal Alchemist: Brotherhood"; 279 + autoindex on; 280 + sendfile on; 281 + tcp_nopush on; 282 + tcp_nodelay on; 283 + ''; 284 + }; 285 + 286 + }; 267 287 268 288 # give a name to the virtual host. It also becomes the server name. 269 289 virtualHosts."plex.packetlostandfound.us" = { ··· 335 355 proxy_redirect off; 336 356 proxy_buffering off; 337 357 ''; 358 + 338 359 locations."/" = { 339 360 proxyPass = "http://localhost:32400/"; 340 361 };