Created
September 11, 2025 23:31
-
-
Save justinhj/74876573cea9df6757db767ede7265f2 to your computer and use it in GitHub Desktop.
neovim plugin config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| local function isInGit() | |
| local checkGit = vim.fn.system("git rev-parse --is-inside-work-tree") | |
| return string.find(checkGit, "true", 1, true) == 1 | |
| end | |
| local plugins = { | |
| -- Just an experiment | |
| { "justinhj/whid", | |
| dir = '~/projects/whid', | |
| lazy = false, | |
| }, | |
| -- { | |
| -- "folke/noice.nvim", | |
| -- event = "VeryLazy", | |
| -- opts = { | |
| -- -- add any options here | |
| -- }, | |
| -- dependencies = { | |
| -- -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries | |
| -- "MunifTanjim/nui.nvim", | |
| -- -- OPTIONAL: | |
| -- -- `nvim-notify` is only needed, if you want to use the notification view. | |
| -- -- If not available, we use `mini` as the fallback | |
| -- "rcarriga/nvim-notify", | |
| -- }}, | |
| -- kdl is a config format, it is used by Zellij | |
| { 'imsnif/kdl.vim', lazy=false, }, | |
| -- nui provides simplified UI components for Neovim plugins | |
| { | |
| 'MunifTanjim/nui.nvim' | |
| }, | |
| { | |
| 'shaunsingh/nord.nvim', | |
| lazy = false, | |
| priority = 1000, | |
| config = function() | |
| vim.cmd "colorscheme nord" | |
| end | |
| }, | |
| { | |
| "0xstepit/flow.nvim", | |
| -- lazy = false, | |
| -- priority = 1000, | |
| -- opts = {}, | |
| -- config = function() | |
| -- require("flow").setup_options({ | |
| -- transparent = false, -- Set transparent background. | |
| -- fluo_color = "pink", -- Fluo color: pink, yellow, orange, or green. | |
| -- mode = "normal", -- Intensity of the palette: normal, dark, or bright. Notice that dark is ugly! | |
| -- aggressive_spell = false, -- Display colors for spell check. | |
| -- }) | |
| -- vim.cmd "colorscheme flow" | |
| -- end, | |
| }, | |
| { | |
| "melbaldove/llm.nvim", | |
| dependencies = { "nvim-neotest/nvim-nio" }, | |
| dir = '~/projects/llm.nvim', | |
| }, | |
| { | |
| "ibhagwan/fzf-lua", | |
| -- optional for icon support | |
| dependencies = { "nvim-tree/nvim-web-devicons" }, | |
| config = function() | |
| -- calling `setup` is optional for customization | |
| if vim.fn.executable('sk') then | |
| require("fzf-lua").setup({'skim'}) | |
| else | |
| require("fzf-lua").setup({'fzf-native'}) | |
| end | |
| end | |
| }, | |
| { "ray-x/guihua.lua", build = "cd lua/fzy && make" }, | |
| { "echasnovski/mini.nvim", version = "*" }, | |
| { | |
| "Exafunction/codeium.vim", | |
| config = function() | |
| -- Change '<C-g>' here to any keycode you like. | |
| vim.keymap.set("i", "<C-g>", function() | |
| return vim.fn["codeium#Accept"]() | |
| end, { expr = true }) | |
| vim.keymap.set("i", "<c-;>", function() | |
| return vim.fn["codeium#CycleCompletions"](1) | |
| end, { expr = true }) | |
| vim.keymap.set("i", "<c-,>", function() | |
| return vim.fn["codeium#CycleCompletions"](-1) | |
| end, { expr = true }) | |
| vim.keymap.set("i", "<c-x>", function() | |
| return vim.fn["codeium#Clear"]() | |
| end, { expr = true }) | |
| end, | |
| }, | |
| { "ii14/neorepl.nvim", cmd = "Repl" }, | |
| "wbthomason/packer.nvim", | |
| { "mrjones2014/legendary.nvim" }, | |
| { "justinhj/chatty-ai.nvim", | |
| dir = '~/projects/chatty-ai.nvim', | |
| dependencies = { { "nvim-lua/plenary.nvim" } }, | |
| }, | |
| { "justinhj/chatty-ai-service-openai.nvim", | |
| dir = '~/projects/chatty-ai-service-openai.nvim', | |
| }, | |
| { "justinhj/chatty-ai-service-anthropic.nvim", | |
| dir = '~/projects/chatty-ai-service-anthropic.nvim', | |
| }, | |
| { "justinhj/chatty-ai-service-ollama.nvim", | |
| dir = '~/projects/chatty-ai-service-ollama.nvim', | |
| }, | |
| { "justinhj/chatty-ai-service-xai.nvim", | |
| dir = '~/projects/chatty-ai-service-xai.nvim', | |
| }, | |
| { "justinhj/battery.nvim", branch = 'main', dependencies = { { "nvim-tree/nvim-web-devicons" }, { "nvim-lua/plenary.nvim" } } }, | |
| -- { "justinhj/battery.nvim", dir = '~/projects/battery.nvim', dependencies = { { "nvim-tree/nvim-web-devicons" }, { "nvim-lua/plenary.nvim" } } }, | |
| "milisims/nvim-luaref", | |
| "ckipp01/stylua-nvim", | |
| "mfussenegger/nvim-jdtls", | |
| "tpope/vim-speeddating", | |
| { "tpope/vim-commentary", lazy = "false", keys = { { "gc", mode = { "n", "v" } } } }, | |
| "tpope/vim-repeat", | |
| "kylechui/nvim-surround", | |
| { "tpope/vim-fugitive", cond = isInGit, event = "BufEnter" }, | |
| -- { "purescript-contrib/purescript-vim", event = "BufReadPre,BufEnter *.purs", lazy = true }, | |
| { "purescript-contrib/purescript-vim", event = "BufEnter *.purs", lazy = true }, | |
| { | |
| "nvim-treesitter/nvim-treesitter", | |
| dev = false, | |
| build = ":TSUpdate", | |
| event = "BufReadPost", | |
| dependencies = { | |
| "nvim-treesitter/nvim-treesitter-textobjects", | |
| "RRethy/nvim-treesitter-textsubjects", | |
| "nvim-treesitter/nvim-treesitter-refactor", | |
| "mfussenegger/nvim-treehopper", | |
| { "nvim-treesitter/playground", cmd = "TSPlaygroundToggle" }, | |
| }, | |
| }, | |
| -- Just a colorscheme, not very nice | |
| { "windwp/wind-colors", lazy = false }, | |
| -- Also color | |
| { | |
| "folke/tokyonight.nvim", | |
| lazy = false, -- make sure we load this during startup if it is your main colorscheme | |
| priority = 1000, -- make sure to load this before all the other start plugins | |
| config = function() | |
| -- load the colorscheme here | |
| -- vim.cmd([[colorscheme tokyonight]]) | |
| end, | |
| }, | |
| "svrana/neosolarized.nvim", | |
| "rebelot/kanagawa.nvim", | |
| "shaunsingh/nord.nvim", | |
| "tpope/vim-eunuch", -- Used for make delete and rename files and so on into use commands, but I never used | |
| -- "bfredl/nvim-luadev", -- Not used | |
| "nvim-lua/plenary.nvim", -- generally useful library of lua functions | |
| "nvim-lua/popup.nvim", -- library for popup windows | |
| "norcalli/nvim-colorizer.lua", -- show colors in web dev files | |
| -- "folke/lsp-colors.nvim", -- deprecated and no longer needed | |
| -- "folke/trouble.nvim", | |
| "folke/which-key.nvim", -- key guide | |
| "nvim-neotest/nvim-nio", -- lua nio library | |
| -- rest-nvim/rest.nvim -- not used but sounds good for curl with lua | |
| "nvim-neotest/neotest", | |
| "nvim-neotest/neotest-plenary", | |
| "stevanmilic/neotest-scala", | |
| "rouge8/neotest-rust", | |
| "scalameta/nvim-metals", | |
| "wsdjeg/luarefvim", -- lua documentation | |
| "onsails/lspkind-nvim", -- extra icons in lsp | |
| { -- completion | |
| "hrsh7th/nvim-cmp", | |
| -- load cmp on InsertEnter | |
| event = "InsertEnter", | |
| }, | |
| { -- completion of npm packages | |
| "David-Kunz/cmp-npm", | |
| dependencies = { 'nvim-lua/plenary.nvim' }, | |
| ft = "json", | |
| config = function() | |
| require('cmp-npm').setup({}) | |
| end | |
| }, | |
| "hrsh7th/cmp-buffer", | |
| "hrsh7th/cmp-path", | |
| "hrsh7th/cmp-nvim-lua", | |
| "hrsh7th/cmp-nvim-lsp", | |
| { "hrsh7th/cmp-cmdline", lazy = false }, | |
| { | |
| "hrsh7th/cmp-vsnip", | |
| lazy = false, | |
| dependencies = { | |
| "hrsh7th/vim-vsnip", | |
| "hrsh7th/vim-vsnip-integ", | |
| }, | |
| }, | |
| "projekt0n/github-nvim-theme", | |
| "mhinz/vim-signify", | |
| -- "softinio/scaladex.nvim", | |
| "mfussenegger/nvim-dap", | |
| { "scalameta/nvim-metals", dependencies = { "nvim-lua/plenary.nvim" } }, | |
| "szw/vim-maximizer", | |
| -- "karb94/neoscroll.nvim", | |
| "tpope/vim-jdaddy", | |
| "tpope/vim-unimpaired", | |
| { | |
| "github/copilot.vim", | |
| lazy = false, | |
| config = function() | |
| end, | |
| }, | |
| { | |
| "saecki/crates.nvim", | |
| event = { "BufRead Cargo.toml" }, | |
| config = function() | |
| require("crates").setup({}) | |
| end, | |
| }, | |
| "dstein64/vim-startuptime", | |
| { | |
| "nvim-lualine/lualine.nvim", | |
| dependencies = { "nvim-tree/nvim-web-devicons", lazy = true }, | |
| }, | |
| "tpope/vim-abolish", | |
| "yangmillstheory/vim-snipe", | |
| "kdheepak/lazygit.nvim", | |
| "EdenEast/nightfox.nvim", | |
| "mfussenegger/nvim-lint", | |
| { "hashivim/vim-terraform", event = "BufEnter *.tf" }, | |
| -- { "hashivim/vim-terraform", event = "BufReadPre,BufEnter *.tf" }, | |
| { "catppuccin/nvim", name = "catppuccin" }, | |
| } | |
| local opts = { | |
| root = vim.fn.stdpath("data") .. "/lazy", -- directory where plugins will be installed | |
| defaults = { | |
| lazy = true, -- should plugins be lazy-loaded? | |
| }, | |
| dev = { | |
| -- directory where you store your local plugin projects | |
| path = "~/projects", | |
| }, | |
| checker = { | |
| -- automatically check for plugin updates | |
| enabled = false, | |
| concurrency = nil, ---@type number? set to 1 to check for updates very slowly | |
| notify = true, -- get a notification when new updates are found | |
| frequency = 3600, -- check for updates every hour | |
| }, | |
| change_detection = { | |
| -- automatically check for config file changes and reload the ui | |
| enabled = true, | |
| notify = true, -- get a notification when changes are found | |
| }, | |
| } | |
| local lsp = { require("configs.lsp") } | |
| for _, plugin in ipairs(lsp) do | |
| table.insert(plugins, plugin) | |
| end | |
| return require("lazy").setup(plugins, opts) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment