Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions config/nvim-lazyvim/lua/plugins/JABS.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
-- JABS https://github.com/matbme/JABS.nvim

return {
"matbme/JABS.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
event = "VeryLazy", -- Changed from "VimEnter" to avoid conflict with startify
config = function()
require("jabs").setup({
-- {"center", "center"}, {"right", "bottom"}, etc.
-- position = { "center", "center" },
position = { "right", "bottom"},
width = 40,
height = 10,
-- "single", "double", "shadow", "rounded", "none"
border = "rounded",
preview_position = "bottom",
preview = {
width = 40,
height = 10,
border = "rounded",
},
highlight = {
current = "Title",
hidden = "Comment",
split = "WarningMsg",
alternate = "CursorLine",
},
keymap = {
-- delete buffer
close = "d",
-- jump to buffer
jump = "<cr>",
-- horizontal split
h_split = "h",
-- vertical split
v_split = "v",
},
symbols = {
-- symbol for the current buffer
current = "★",
-- symbol for the alternate buffer
alternate = "☆",
-- symbol for visible/split buffers
split = "⎇",
-- symbol for hidden buffers
hidden = "·",
},
use_devicons = true
})
-- Keymap to toggle JABS window (change <leader>bb to your preference)
vim.keymap.set("n", "<leader>bb", "<cmd>JABSOpen<cr>", { desc = "Open JABS buffer switcher" })
end,
}
20 changes: 20 additions & 0 deletions config/nvim-lazyvim/lua/plugins/arrow.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-- Arrow (like harpoon) https://github.com/otavioschwanck/arrow.nvim

return {
"otavioschwanck/arrow.nvim",
config = function()
require("arrow").setup({
show_icons = true, -- show filetype icons
leader_key = "<leader>a", -- default keybinding prefix
window = {
border = "rounded", -- nice floating window style
},
mappings = {
edit = "<CR>", -- open file
delete = "dd", -- remove from list
rename = "r", -- rename entry
},
})
end,
event = "VeryLazy", -- load when needed
}
37 changes: 37 additions & 0 deletions config/nvim-lazyvim/lua/plugins/auto-mkdir.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
-- Auto-mkdir https://github.com/mateuszwieloch/automkdir.nvim

return {
"mateuszwieloch/automkdir.nvim",
lazy = false,
config = function()
require("automkdir").setup({
blacklist = {
filetype = {
"help",
"nofile",
"quickfix",
"gitcommit",
"TelescopePrompt",
"NvimTree",
"dashboard",
"alpha",
"starter",
"lazy",
"lazygit",
"oil",
"netrw",
},
buftype = {
"nofile",
"terminal",
"quickfix",
},
pattern = {
-- Patterns for filenames you want to exclude
-- Example: "^/tmp/" to exclude all files in /tmp/
},
}
})
end,
}

39 changes: 39 additions & 0 deletions config/nvim-lazyvim/lua/plugins/data-viewer.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
-- Data viewer (CSV, TSV) https://github.com/VidocqH/data-viewer.nvim

return {
"VidocqH/data-viewer.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
-- Optional: For SQLite table support
"kkharji/sqlite.lua",
},
opts = {
-- Automatically display the table view when opening a file (default: false)
autoDisplayWhenOpenFile = false,
-- Maximum lines shown per table (default: 100)
maxLineEachTable = 100,
-- Enable color highlighting by column (default: true)
columnColorEnable = true,
-- Highlight groups cycling for columns
columnColorRoulette = {
"DataViewerColumn0",
"DataViewerColumn1",
"DataViewerColumn2",
},
-- View configuration
view = {
float = true, -- Use a floating window (false uses current window)
width = 0.8, -- Float window width ratio (0 < width <= 1)
height = 0.8, -- Float window height ratio (0 < height <= 1)
zindex = 50, -- Floating window Z-index
},
-- Keymap configuration
keymap = {
quit = "q", -- Quit data viewer window
next_table = "<C-l>", -- Next table
prev_table = "<C-h>", -- Previous table
},
},
-- Lazy-load commands
cmd = { "DataViewer", "DataViewerNextTable", "DataViewerPrevTable", "DataViewerClose" },
}
48 changes: 48 additions & 0 deletions config/nvim-lazyvim/lua/plugins/diffview.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
-- Diffview https://github.com/sindrets/diffview.nvim

return {
"sindrets/diffview.nvim",
cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles", "DiffviewFocusFiles", "DiffviewFileHistory", "DiffviewRefresh" },
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("diffview").setup({
-- You can customize options here, see :h diffview-config
use_icons = true,
view = {
default = {
layout = "diff2_horizontal",
winbar_info = false,
},
merge_tool = {
layout = "diff3_horizontal",
winbar_info = true,
},
file_history = {
layout = "diff2_horizontal",
winbar_info = false,
},
},
file_panel = {
listing_style = "tree",
win_config = {
position = "left",
width = 35,
},
},
file_history_panel = {
win_config = {
position = "bottom",
height = 16,
},
},
-- Keymaps are set by default, but you can override them here if you want
-- See :h diffview-config-keymaps
})

-- Recommended keymaps for quick access
vim.keymap.set("n", "<leader>gd", "<cmd>DiffviewOpen<cr>", { desc = "Open Diffview" })
vim.keymap.set("n", "<leader>gD", "<cmd>DiffviewFileHistory %<cr>", { desc = "File History (current file)" })
vim.keymap.set("n", "<leader>gH", "<cmd>DiffviewFileHistory<cr>", { desc = "File History (project)" })
vim.keymap.set("n", "<leader>gq", "<cmd>DiffviewClose<cr>", { desc = "Close Diffview" })
end,
}
5 changes: 5 additions & 0 deletions config/nvim-lazyvim/lua/plugins/dockerfile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Dockerfile https://github.com/ekalinin/Dockerfile.vim

return {
"ekalinin/Dockerfile.vim"
}
36 changes: 36 additions & 0 deletions config/nvim-lazyvim/lua/plugins/floaterm.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
-- Floaterm https://github.com/

return {
"voldikss/vim-floaterm",
cmd = { "FloatermToggle", "FloatermNew", "FloatermNext", "FloatermPrev", "FloatermKill" }, -- lazy-load on command
keys = {
{ "<leader>ft", "<cmd>FloatermToggle<CR>", desc = "Toggle Floaterm" },
{ "<leader>fn", "<cmd>FloatermNew<CR>", desc = "New Floaterm" },
{ "<leader>fj", "<cmd>FloatermNext<CR>", desc = "Next Floaterm" },
{ "<leader>fk", "<cmd>FloatermPrev<CR>", desc = "Prev Floaterm" },
{ "<leader>fx", "<cmd>FloatermKill<CR>", desc = "Kill Floaterm" },
},
init = function()
-- Detect Windows properly using vim.fn.has()
local is_windows = vim.fn.has("win32") == 1 or vim.fn.has("win64") == 1

if is_windows then
-- Use pwsh if available, otherwise fallback to powershell
local shell = vim.fn.executable("pwsh") == 1 and "pwsh" or "powershell"
vim.opt.shell = shell
vim.opt.shellcmdflag = "-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command"
vim.opt.shellredir = "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode"
vim.opt.shellpipe = "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode"
vim.opt.shellquote = ""
vim.opt.shellxquote = ""
-- Floaterm settings
vim.g.floaterm_shell = shell
else
vim.opt.shell = "bash"
vim.g.floaterm_shell = "bash"
end
vim.g.floaterm_position = 'center'
vim.g.floaterm_width = 0.8
vim.g.floaterm_height = 0.8
end,
}
24 changes: 24 additions & 0 deletions config/nvim-lazyvim/lua/plugins/fugitive.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
-- Fugitive git client https://github.com/tpope/vim-fugitive

return {
"tpope/vim-fugitive",
-- Default: "VeryLazy". "BufReadPre" if you want it loaded earlier
event = "VeryLazy",

-- Fugitive keybinds
config = function()
vim.keymap.set("n", "<leader>gs", ":Git<CR>", { desc = "Git status (Fugitive)" })
vim.keymap.set("n", "<leader>gd", ":Gdiffsplit<CR>", { desc = "Git diff (Fugitive)" })
vim.keymap.set("n", "<leader>gD", ":Gvdiffsplit<CR>", { desc = "3-way diff (Fugitive)" })
vim.keymap.set("n", "<leader>gb", ":Gblame<CR>", { desc = "Git blame (Fugitive)" })
vim.keymap.set("n", "<leader>gl", ":Git log --oneline -- %<CR>", { desc = "Git log for file" })
vim.keymap.set("n", "<leader>gc", ":Git commit<CR>", { desc = "Git commit" })
vim.keymap.set("n", "<leader>gp", ":Git push<CR>", { desc = "Git push" })
vim.keymap.set("n", "<leader>gP", ":Git pull<CR>", { desc = "Git pull" })
vim.keymap.set("n", "<leader>gr", ":Gread<CR>", { desc = "Git checkout file (reset changes)" })
vim.keymap.set("n", "<leader>gw", ":Gwrite<CR>", { desc = "Git add (stage) file" })
vim.keymap.set("n", "<leader>gL", ":Gclog<CR>", { desc = "Git commit log (quickfix)" })
vim.keymap.set("n", "<leader>gB", ":GBrowse<CR>", { desc = "Open in browser (GitHub/GitLab)" })
vim.keymap.set("n", "<leader>ge", ":Gedit<CR>", { desc = "Edit file in working tree" })
end,
}
16 changes: 16 additions & 0 deletions config/nvim-lazyvim/lua/plugins/garbage-day.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-- Garbage collection for LSPs https://github.com/zeioth/garbage-day.vim

return {
"zeioth/garbage-day.nvim",
dependencies = "neovim/nvim-lspconfig",
event = "VeryLazy",
opts = {
aggressive_mode = false, -- Stop all LSP clients except current buffer
excluded_lsp_clients = {}, -- null-ls, jdtls, marksman, lua_ls
grace_period = 60*15, -- 15 minutes
wakeup_delay = 0, -- ms to wait before restoring LSP after mouse re-enters neovim
notifications = false,
retries = 3, -- Times to try to start an LSP client before giving up
timeout = 1000 -- ms to wait during retries to complete
}
}
52 changes: 52 additions & 0 deletions config/nvim-lazyvim/lua/plugins/illuminate.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-- Illuminate https://github.com/RRethy/vim-illuminate
return {
"RRethy/vim-illuminate",
event = { "BufReadPost", "BufNewFile" },
config = function()
local ok, illuminate = pcall(require, "illuminate")
if not ok or not illuminate.configure then
vim.notify("[illuminate] failed to load, skipping configuration", vim.log.levels.WARN)
return
end

-- Build providers list dynamically: include only ones that are likely available
local providers = {}

-- LSP provider: only if any LSP client is attached or lsp module exists
do
local has_lsp = false
-- quick sanity check: see if lsp is available in runtime
if pcall(require, "vim.lsp") then
has_lsp = true
end
if has_lsp then
table.insert(providers, "lsp")
end
end

-- Treesitter provider: only if treesitter is installed and loaded
do
local has_ts, _ = pcall(require, "nvim-treesitter.parsers")
if has_ts then
table.insert(providers, "treesitter")
end
end

-- Regex as fallback (always safe)
table.insert(providers, "regex")

-- Configure with guarded options
local success, err = pcall(function()
illuminate.configure({
providers = providers,
delay = 100,
filetypes_denylist = { "dirbuf", "dirvish", "fugitive" },
under_cursor = true,
min_count_to_highlight = 1,
})
end)
if not success then
vim.notify("[illuminate] configuration failed: " .. tostring(err), vim.log.levels.WARN)
end
end,
}
22 changes: 22 additions & 0 deletions config/nvim-lazyvim/lua/plugins/kulala.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- Kulala HTTP client https://github.com/mistweaverco/kulala.nvim

return {
{
"mistweaverco/kulala.nvim",
ft = { "http", "rest" }, -- Loads when you open .http or .rest files
version = "*",
opts = {
global_keymaps = true, -- Enable global key mappings for Kulala
global_keymaps_prefix = "<leader>R", -- Prefix for keymaps (e.g. <leader>Rs to send request)
kulala_keymaps_prefix = "", -- No extra prefix for kulala-specific keymaps
},
config = function(_, opts)
require("kulala").setup(opts)
end,
keys = {
{ "<leader>Rs", desc = "Send request (Kulala)" },
{ "<leader>Ra", desc = "Send all requests (Kulala)" },
{ "<leader>Rb", desc = "Open scratchpad (Kulala)" },
},
},
}
Loading