-- Bootstrap lazy.nvim local ensure_lazy = function() local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system( { "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath } ) end vim.opt.rtp:prepend(lazypath) end local lazy_bootstrap = ensure_lazy() if lazy_bootstrap then print("Bootstrapped lazy.nvim") end require("lazy").setup( { -- Color themes "shaunsingh/nord.nvim", "shaunsingh/moonlight.nvim", "folke/tokyonight.nvim", "cranberry-clockworks/coal.nvim", "hardselius/warlock", { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, { "neanias/everforest-nvim", version = false, lazy = false, priority = 1000, -- make sure to load this before all the other start plugins main = "everforest", opts = { background = "hard", }, }, { "rebelot/kanagawa.nvim", opts = {compile = true} }, -- show indents and whitespace characters "lukas-reineke/indent-blankline.nvim", -- Completion "hrsh7th/nvim-compe", "hrsh7th/vim-vsnip", -- nvim lsp plugins "neovim/nvim-lspconfig", { "nvimdev/lspsaga.nvim", dependencies = { "nvim-tree/nvim-web-devicons", "nvim-treesitter/nvim-treesitter" }, opts = {lightbulb = {enable = false}}, event = "LspAttach" }, -- Syntax Highlighting from the future { "nvim-treesitter/nvim-treesitter", init = function() vim.cmd([[":TSUpdate"]]) end }, -- GitGutter, shows inline difs "airblade/vim-gitgutter", -- Git wrapper plugin "tpope/vim-fugitive", -- surround with pairs )))))) --"tpope/vim-surround", -- Auto format tool {"sbdchd/neoformat", lazy = true, cmd = "Neoformat"}, -- Distraction free writing: GoYo + Limelight {"junegunn/limelight.vim", lazy = true, ft = "markdown"}, {"junegunn/goyo.vim", lazy = true, ft = "markdown"}, -- Golang plugins --use {"fatih/vim-go", run = ":GoUpdateBinaries", lazy = true, ft = "go"} { "ray-x/go.nvim", ft = "go", lazy = true, dependencies = { "ray-x/guihua.lua", "neovim/nvim-lspconfig", "nvim-treesitter/nvim-treesitter" } }, { "nvim-lualine/lualine.nvim", dependencies = {"nvim-tree/nvim-web-devicons"} }, "junegunn/fzf.vim", { dir = "~/.fzf", build = function() vim.fn["fzf#install"](0) end, dependencies = {"junegunn/fzf.vim"} }, -- Polyglot "sheerun/vim-polyglot", -- Telescope, find anything fast "nvim-lua/plenary.nvim", {"nvim-telescope/telescope.nvim", dependencies = {"nvim-lua/plenary.nvim"}}, "nvim-telescope/telescope-symbols.nvim", {"folke/trouble.nvim", dependencies = "nvim-tree/nvim-web-devicons"}, -- Which key is bound? "folke/which-key.nvim", -- literally the best plugin ever -- Lithsps { "guns/vim-sexp", ft = {"hy", "scheme", "clojure"}, }, -- )))))) {"hiphish/rainbow-delimiters.nvim"}, --{"gpanders/nvim-parinfer", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}}, --{ -- "eraserhd/parinfer-rust", -- build = "RUSTFLAGS='-C target-feature=+crt-static' cargo build --release", -- ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, --}, -- Conjure, lisp is magical { "Olical/conjure", ft = {"scheme", "lisp", "fennel", "clojure", "lua"}, config = function() vim.g["conjure#client#scheme#stdio#command"] = "gxi" vim.g["conjure#client#scheme#stdio#prompt_pattern"] = "%d*> $?" end }, {"p1xelHer0/gerbil.nvim", ft = "scheme"}, -- Fennel, Luasthp {"jaawerth/fennel.vim", lazy = true, ft = "fennel"}, {"rktjmp/hotpot.nvim", lazy = true, ft = "fennel"}, {"Olical/nfnl", ft = "fennel"}, -- Rust stuff { "simrat39/rust-tools.nvim", ft = {"rust"}, config = function() local rt = require("rust-tools") rt.setup( { server = { on_attach = function(_, bufnr) -- Hover actions vim.keymap.set("n", "", rt.hover_actions.hover_actions, {buffer = bufnr}) -- Code action groups vim.keymap.set( "n", "a", rt.code_action_group.code_action_group, {buffer = bufnr} ) end } } ) end, dependencies = {"nvim-lua/plenary.nvim"} }, {"mfussenegger/nvim-dap", lazy = true, ft = {"c", "rust"}}, { "saecki/crates.nvim", tag = "v0.4.0", dependencies = {"nvim-lua/plenary.nvim"}, config = function() require("crates").setup() end, ft = {"rust"} }, -- RISC-V Assembly syntax highlighting {"kylelaker/riscv.vim", ft = "riscv"}, -- Hare Stuff -- Haredoc {url = "https://git.sr.ht/~torresjrjr/vim-haredoc", ft = {"hare"}, branch = "dev"}, -- Hare.vim {url = "https://git.sr.ht/~sircmpwn/hare.vim", ft = {"hare"}}, -- TCL {"lewis6991/tree-sitter-tcl", build = "make"}, -- LF {"ptzz/lf.vim", cmd = {"Lf"}, dependencies = {"voldikss/vim-floaterm"}}, -- Copilot -- use {"github/copilot.vim", lazy = true, cmd = {"Copilot"}} -- Mason { "williamboman/mason.nvim", init = function() vim.cmd([[":MasonUpdate"]]) end, dependencies = { "williamboman/mason-lspconfig.nvim", "mfussenegger/nvim-dap", "jose-elias-alvarez/null-ls.nvim" }, config = function() require("mason").setup() end } }, nil )