Skip to content

Instantly share code, notes, and snippets.

@justinhj
Created September 11, 2025 23:31
Show Gist options
  • Select an option

  • Save justinhj/74876573cea9df6757db767ede7265f2 to your computer and use it in GitHub Desktop.

Select an option

Save justinhj/74876573cea9df6757db767ede7265f2 to your computer and use it in GitHub Desktop.
neovim plugin config
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