Move NvimTree file explorer to left side
- Change side from 'right' to 'left' in nvim-tree.lua - Update edgy.nvim config to place NvimTree in left panel
This commit is contained in:
@@ -80,7 +80,7 @@ local function setup_lua_runtime()
|
||||
vim.fn.stdpath("data") .. "/lazy/*/lua/?.lua",
|
||||
vim.fn.stdpath("data") .. "/lazy/*/lua/?/init.lua",
|
||||
}
|
||||
|
||||
|
||||
package.path = table.concat(lua_paths, ";") .. ";" .. package.path
|
||||
end
|
||||
|
||||
@@ -88,7 +88,7 @@ end
|
||||
local function setup_lua_ls()
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
@@ -128,16 +128,16 @@ end
|
||||
-- Initialize compatibility layer
|
||||
function M.setup()
|
||||
setup_lua_runtime()
|
||||
|
||||
|
||||
-- Setup Lua LSP when available
|
||||
local ok, _ = pcall(require, "lspconfig")
|
||||
if ok then
|
||||
setup_lua_ls()
|
||||
end
|
||||
|
||||
|
||||
-- Disable deprecated API warnings
|
||||
vim.deprecate = function() end
|
||||
|
||||
|
||||
-- Set up proper error handling for deprecated functions
|
||||
local original_error = error
|
||||
error = function(msg, level)
|
||||
@@ -148,4 +148,5 @@ function M.setup()
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
return M
|
||||
|
||||
|
||||
@@ -1,32 +1,34 @@
|
||||
-- Shared dashboard configuration for alpha-nvim and snacks.dashboard
|
||||
-- Minimalist TUI-style dashboard configuration
|
||||
local M = {}
|
||||
|
||||
-- CARGDEV NEOVIM ASCII art logo
|
||||
M.header = {
|
||||
"",
|
||||
" ██████╗ █████╗ ██████╗ ██████╗ ██████╗ ███████╗██╗ ██╗ ",
|
||||
" █╔════╝██╔══██╗██╔══██╗██╔════╝ ██╔══██╗██╔════╝██║ ██║ ",
|
||||
" █║ ███████║██████╔╝██║ ███╗██║ ██║█████╗ ██║ ██║ ",
|
||||
" █║ ██╔══██║██╔══██╗██║ ██║██║ ██║██╔══╝ ╚██╗ ██╔╝ ",
|
||||
" ██████╗██║ ██║██║ ██║╚██████╔╝██████╔╝███████╗ ╚████╔╝ ",
|
||||
" ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═══╝ ",
|
||||
" ",
|
||||
"",
|
||||
" ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ",
|
||||
" ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ",
|
||||
" ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ",
|
||||
" ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ",
|
||||
" ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
|
||||
" ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
|
||||
"",
|
||||
}
|
||||
|
||||
-- Menu items (single column)
|
||||
-- Minimal VS Code-like menu items
|
||||
M.menu_items = {
|
||||
{ key = "f", icon = " ", desc = "Find File", action = ":FzfLua files" },
|
||||
{ key = "n", icon = " ", desc = "New File", action = ":ene | startinsert" },
|
||||
{ key = "g", icon = " ", desc = "Find Text", action = ":FzfLua live_grep" },
|
||||
{ key = "r", icon = " ", desc = "Recent Files", action = ":FzfLua oldfiles" },
|
||||
{ key = "t", icon = " ", desc = "File Tree", action = ":NvimTreeToggle" },
|
||||
{ key = "L", icon = " ", desc = "Lazy", action = ":Lazy" },
|
||||
{ key = "m", icon = " ", desc = "Mason", action = ":Mason" },
|
||||
{ key = "q", icon = " ", desc = "Quit", action = ":qa" },
|
||||
{ key = "f", icon = "", desc = "Go to File", action = ":Telescope find_files" },
|
||||
{ key = "r", icon = "", desc = "Recent Files", action = ":Telescope oldfiles" },
|
||||
{ key = "g", icon = "", desc = "Find in Files", action = ":Telescope live_grep" },
|
||||
{ key = "s", icon = "", desc = "Restore Session", action = ":lua require('persistence').load()" },
|
||||
{ key = "e", icon = "", desc = "Explorer", action = ":NvimTreeToggle" },
|
||||
{ key = "c", icon = "", desc = "Settings", action = ":e $MYVIMRC" },
|
||||
{ key = "q", icon = "", desc = "Quit", action = ":qa" },
|
||||
}
|
||||
|
||||
-- Get header as string (for snacks)
|
||||
@@ -53,14 +55,4 @@ function M.get_snacks_keys()
|
||||
return to_snacks_keys(M.menu_items)
|
||||
end
|
||||
|
||||
-- Get alpha buttons (requires alpha dashboard module)
|
||||
function M.get_alpha_buttons(dashboard)
|
||||
local buttons = {}
|
||||
for _, item in ipairs(M.menu_items) do
|
||||
local cmd = item.action:gsub("^:", "<cmd>") .. "<CR>"
|
||||
table.insert(buttons, dashboard.button(item.key, item.icon .. " " .. item.desc, cmd))
|
||||
end
|
||||
return buttons
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
@@ -2,112 +2,98 @@
|
||||
|
||||
This folder contains all the keymaps organized by category for better maintainability.
|
||||
|
||||
## 📁 File Structure
|
||||
## File Structure
|
||||
|
||||
```
|
||||
keymaps/
|
||||
├── README.md # This file
|
||||
├── general.lua # General keymaps (leader, basic navigation)
|
||||
├── general.lua # General keymaps (leader, basic navigation, obsidian)
|
||||
├── personal.lua # Personal workflow keymaps
|
||||
├── lsp.lua # LSP and function navigation keymaps
|
||||
├── dap.lua # DAP debugging keymaps
|
||||
├── snacks.lua # Snacks search and navigation keymaps (replacing Telescope)
|
||||
├── snacks.lua # Snacks search and navigation keymaps
|
||||
├── window.lua # Window management keymaps
|
||||
├── copilot.lua # Copilot AI keymaps
|
||||
├── gitconflict.lua # Git conflict resolution keymaps
|
||||
└── plugins.lua # Plugin-specific keymaps
|
||||
├── plugins.lua # Plugin-specific keymaps (Telescope, trouble, etc.)
|
||||
├── project.lua # Project-specific keymaps
|
||||
├── ufo.lua # Folding keymaps
|
||||
├── leet.lua # LeetCode keymaps
|
||||
├── sudoku.lua # Sudoku game keymaps
|
||||
└── database.lua # Database keymaps
|
||||
```
|
||||
|
||||
## 🔧 How It Works
|
||||
## How It Works
|
||||
|
||||
The main `keymaps.lua` file automatically loads all `.lua` files from this folder. Each file contains keymaps for a specific category:
|
||||
The main `keymaps.lua` file automatically loads all `.lua` files from this folder:
|
||||
|
||||
### **general.lua**
|
||||
- Leader key setup
|
||||
- Basic navigation
|
||||
- General utility keymaps
|
||||
```lua
|
||||
local function load_keymaps()
|
||||
local keymaps_path = vim.fn.stdpath("config") .. "/lua/cargdev/core/keymaps"
|
||||
local scan = vim.fn.globpath(keymaps_path, "*.lua", false, true)
|
||||
|
||||
### **personal.lua**
|
||||
- Your personal workflow keymaps
|
||||
- File management
|
||||
- Window management
|
||||
- Coding shortcuts
|
||||
- Copilot integration
|
||||
for _, file in ipairs(scan) do
|
||||
local module_name = "cargdev.core.keymaps." .. file:match("([^/]+)%.lua$")
|
||||
pcall(require, module_name)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
### **lsp.lua**
|
||||
- Function navigation (`gd`, `gi`, `gr`, `gt`)
|
||||
- Symbol search (`<leader>ds`, `<leader>ws`)
|
||||
- Code actions and documentation
|
||||
- Diagnostics
|
||||
## Keymap Categories
|
||||
|
||||
### **dap.lua**
|
||||
- Debug session control (`<leader>dcr`, `<leader>dq`)
|
||||
- Breakpoints (`<leader>db`, `<leader>dB`)
|
||||
- Step navigation (`<leader>do`, `<leader>di`, `<leader>dot`)
|
||||
- DAP UI toggle (`<leader>du`)
|
||||
- REPL and configuration pickers
|
||||
| Category | File | Description |
|
||||
|----------|------|-------------|
|
||||
| General | `general.lua` | Basic setup, escape, obsidian links |
|
||||
| Personal | `personal.lua` | Your workflow shortcuts |
|
||||
| LSP | `lsp.lua` | Function navigation and LSP features |
|
||||
| Debugging | `dap.lua` | DAP debugging (Java, Node.js, Python) |
|
||||
| Search | `snacks.lua` | File and text search (Snacks) |
|
||||
| Window | `window.lua` | Window/split management |
|
||||
| Copilot | `copilot.lua` | AI assistant keymaps |
|
||||
| Plugins | `plugins.lua` | Plugin-specific (Telescope, trouble, etc.) |
|
||||
| Project | `project.lua` | Project commands |
|
||||
| Folding | `ufo.lua` | Code folding |
|
||||
| LeetCode | `leet.lua` | LeetCode integration |
|
||||
| Database | `database.lua` | Database operations |
|
||||
|
||||
### **snacks.lua**
|
||||
- File search (`<leader>ff`, `<leader>fs`)
|
||||
- Buffer management
|
||||
- Git integration
|
||||
- Help and commands
|
||||
|
||||
### **plugins.lua**
|
||||
- NvimTree
|
||||
- Comment
|
||||
- DAP (debugging)
|
||||
- Trouble
|
||||
- Terminal
|
||||
- Session management
|
||||
- Git conflicts
|
||||
- LeetCode
|
||||
- And more...
|
||||
|
||||
## ➕ Adding New Keymaps
|
||||
|
||||
To add new keymaps:
|
||||
## Adding New Keymaps
|
||||
|
||||
1. **Choose the appropriate file** based on the category
|
||||
2. **Add your keymaps** using the standard format:
|
||||
```lua
|
||||
local keymap = vim.keymap
|
||||
keymap.set("n", "<leader>key", "<cmd>command<cr>", { desc = "Description" })
|
||||
```
|
||||
3. **The keymaps will be automatically loaded** when Neovim starts
|
||||
|
||||
## 🎯 Keymap Categories
|
||||
## Leader Key Prefixes
|
||||
|
||||
| Category | File | Description |
|
||||
|----------|------|-------------|
|
||||
| General | `general.lua` | Basic setup and utilities |
|
||||
| Personal | `personal.lua` | Your workflow shortcuts |
|
||||
| LSP | `lsp.lua` | Function navigation and LSP features |
|
||||
| Debugging | `dap.lua` | DAP debugging (Java, Node.js, Python) |
|
||||
| Search | `snacks.lua` | File and text search |
|
||||
| Window | `window.lua` | Window/split management |
|
||||
| Copilot | `copilot.lua` | AI assistant keymaps |
|
||||
| Git Conflicts | `gitconflict.lua` | Conflict resolution |
|
||||
| Plugins | `plugins.lua` | Plugin-specific functionality |
|
||||
| Prefix | Category |
|
||||
|--------|----------|
|
||||
| `<leader>f` | Find/Files (Telescope) |
|
||||
| `<leader>g` | Git |
|
||||
| `<leader>d` | Debug |
|
||||
| `<leader>l` | LSP/LeetCode |
|
||||
| `<leader>x` | Trouble/Diagnostics |
|
||||
| `<leader>s` | Search/Session |
|
||||
| `<leader>t` | Toggle/Text/Treesj |
|
||||
| `<leader>h` | Harpoon |
|
||||
| `<leader>k` | Kulala (HTTP) |
|
||||
| `<leader>o` | Overseer/Octo |
|
||||
| `<leader>n` | NPM/Navbuddy |
|
||||
| `<leader>c` | Code/Crates |
|
||||
| `<leader>v` | Vim learning |
|
||||
| `<leader>z` | Zen mode |
|
||||
| `<leader>q` | Session (persistence) |
|
||||
| `<leader>r` | Rename/Regex |
|
||||
| `<leader>p` | Portal/Projects |
|
||||
|
||||
## 🔄 Benefits
|
||||
## Full Reference
|
||||
|
||||
- **Modular**: Each category is in its own file
|
||||
- **Maintainable**: Easy to find and modify specific keymaps
|
||||
- **Scalable**: Easy to add new categories
|
||||
- **Organized**: Clear separation of concerns
|
||||
- **Auto-loading**: No need to manually import files
|
||||
See [KEYMAPS.md](../../../../KEYMAPS.md) in the root directory for complete keybinding reference.
|
||||
|
||||
## 🚀 Usage
|
||||
|
||||
The keymaps are automatically loaded when Neovim starts. You can:
|
||||
|
||||
- **View all keymaps**: `<leader>fk` (Snacks keymaps)
|
||||
- **Search keymaps**: Use Snacks to search through your keymaps
|
||||
- **Modify keymaps**: Edit the appropriate file and restart Neovim
|
||||
|
||||
## 📝 Notes
|
||||
## Notes
|
||||
|
||||
- All files are automatically loaded by `keymaps.lua`
|
||||
- Each file should have its own `local keymap = vim.keymap` declaration
|
||||
- Use descriptive comments to organize keymaps within each file
|
||||
- Follow the existing naming conventions for consistency
|
||||
- Use descriptive `desc` for all keymaps (shows in which-key)
|
||||
- Follow the existing naming conventions for consistency
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
-- Database keymaps
|
||||
-- Using <leader>D prefix to avoid conflicts with DAP keymaps (<leader>d)
|
||||
local keymap = vim.keymap
|
||||
|
||||
-- =============================================================================
|
||||
@@ -6,47 +7,47 @@ local keymap = vim.keymap
|
||||
-- =============================================================================
|
||||
|
||||
-- Toggle database UI
|
||||
keymap.set("n", "<leader>du", "<cmd>DBUIToggle<CR>", { desc = "Toggle Database UI" })
|
||||
keymap.set("n", "<leader>Du", "<cmd>DBUIToggle<CR>", { desc = "Toggle Database UI" })
|
||||
|
||||
-- Add a new database connection
|
||||
keymap.set("n", "<leader>da", "<cmd>DBUIAddConnection<CR>", { desc = "Add DB Connection" })
|
||||
keymap.set("n", "<leader>Da", "<cmd>DBUIAddConnection<CR>", { desc = "Add DB Connection" })
|
||||
|
||||
-- Find buffer (useful when you have multiple query buffers)
|
||||
keymap.set("n", "<leader>df", "<cmd>DBUIFindBuffer<CR>", { desc = "Find DB Buffer" })
|
||||
keymap.set("n", "<leader>Df", "<cmd>DBUIFindBuffer<CR>", { desc = "Find DB Buffer" })
|
||||
|
||||
-- Execute query (works in sql buffers)
|
||||
keymap.set("n", "<leader>de", "<Plug>(DBUI_ExecuteQuery)", { desc = "Execute Query" })
|
||||
keymap.set("v", "<leader>de", "<Plug>(DBUI_ExecuteQuery)", { desc = "Execute Selected Query" })
|
||||
keymap.set("n", "<leader>De", "<Plug>(DBUI_ExecuteQuery)", { desc = "Execute Query" })
|
||||
keymap.set("v", "<leader>De", "<Plug>(DBUI_ExecuteQuery)", { desc = "Execute Selected Query" })
|
||||
|
||||
-- Save query
|
||||
keymap.set("n", "<leader>dw", "<Plug>(DBUI_SaveQuery)", { desc = "Save Query" })
|
||||
keymap.set("n", "<leader>Dw", "<Plug>(DBUI_SaveQuery)", { desc = "Save Query" })
|
||||
|
||||
-- Rename buffer
|
||||
keymap.set("n", "<leader>dr", "<Plug>(DBUI_RenameBuf)", { desc = "Rename DB Buffer" })
|
||||
keymap.set("n", "<leader>Dr", "<Plug>(DBUI_RenameBuf)", { desc = "Rename DB Buffer" })
|
||||
|
||||
-- =============================================================================
|
||||
-- QUICK CONNECTIONS
|
||||
-- =============================================================================
|
||||
|
||||
-- PostgreSQL Docker (default: 5432 postgres postgres postgres)
|
||||
keymap.set("n", "<leader>dp", "<cmd>DBPostgresDocker<CR>", { desc = "Connect PostgreSQL Docker" })
|
||||
keymap.set("n", "<leader>Dp", "<cmd>DBPostgresDocker<CR>", { desc = "Connect PostgreSQL Docker" })
|
||||
|
||||
-- =============================================================================
|
||||
-- MONGODB
|
||||
-- =============================================================================
|
||||
|
||||
-- Open MongoDB shell (local)
|
||||
keymap.set("n", "<leader>dm", "<cmd>MongoDB<CR>", { desc = "Open MongoDB Shell" })
|
||||
keymap.set("n", "<leader>Dm", "<cmd>MongoDB<CR>", { desc = "Open MongoDB Shell" })
|
||||
|
||||
-- Open MongoDB in Docker container
|
||||
keymap.set("n", "<leader>dM", "<cmd>MongoDBDocker<CR>", { desc = "MongoDB Docker Shell" })
|
||||
keymap.set("n", "<leader>DM", "<cmd>MongoDBDocker<CR>", { desc = "MongoDB Docker Shell" })
|
||||
|
||||
-- =============================================================================
|
||||
-- REDIS
|
||||
-- =============================================================================
|
||||
|
||||
-- Open Redis CLI (local)
|
||||
keymap.set("n", "<leader>di", "<cmd>Redis<CR>", { desc = "Open Redis CLI" })
|
||||
keymap.set("n", "<leader>Di", "<cmd>Redis<CR>", { desc = "Open Redis CLI" })
|
||||
|
||||
-- Open Redis in Docker container
|
||||
keymap.set("n", "<leader>dI", "<cmd>RedisDocker<CR>", { desc = "Redis Docker CLI" })
|
||||
keymap.set("n", "<leader>DI", "<cmd>RedisDocker<CR>", { desc = "Redis Docker CLI" })
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
-- Git Conflict keymaps
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "]x", "<Plug>(git-conflict-next-conflict)", { desc = "Go to next git conflict" })
|
||||
keymap.set("n", "[x", "<Plug>(git-conflict-prev-conflict)", { desc = "Go to previous git conflict" })
|
||||
keymap.set("n", "<leader>gco", "<Plug>(git-conflict-ours)", { desc = "Choose ours (git conflict)" })
|
||||
keymap.set("n", "<leader>gct", "<Plug>(git-conflict-theirs)", { desc = "Choose theirs (git conflict)" })
|
||||
keymap.set("n", "<leader>gcb", "<Plug>(git-conflict-both)", { desc = "Choose both (git conflict)" })
|
||||
keymap.set("n", "<leader>gc0", "<Plug>(git-conflict-none)", { desc = "Choose none (git conflict)" })
|
||||
keymap.set("n", "<leader>gcl", "<Plug>(git-conflict-list)", { desc = "List all git conflicts" })
|
||||
@@ -6,7 +6,7 @@ local keymap = vim.keymap
|
||||
-- =============================================================================
|
||||
|
||||
keymap.set("n", "<leader>u", function()
|
||||
vim.cmd("normal! ggVG")
|
||||
vim.cmd("normal! ggVG$")
|
||||
end, { desc = "Select the whole file" })
|
||||
keymap.set("n", "<leader>4", function()
|
||||
-- Copy current line and paste below
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
return {
|
||||
"goolord/alpha-nvim",
|
||||
event = "VimEnter",
|
||||
enabled = false, -- Replaced by Snacks dashboard
|
||||
config = function()
|
||||
local alpha = require("alpha")
|
||||
local dashboard = require("alpha.themes.dashboard")
|
||||
local config = require("cargdev.core.dashboard_config")
|
||||
|
||||
-- Set header from shared config
|
||||
dashboard.section.header.val = config.header
|
||||
|
||||
-- Set menu from shared config
|
||||
dashboard.section.buttons.val = config.get_alpha_buttons(dashboard)
|
||||
|
||||
-- Footer with fortune
|
||||
local function center_text(text, width)
|
||||
local padding = math.floor((width - #text) / 2)
|
||||
return padding > 0 and string.rep(" ", padding) .. text or text
|
||||
end
|
||||
|
||||
local function wrap_text(text, width)
|
||||
local wrapped_lines = {}
|
||||
for line in text:gmatch("[^\n]+") do
|
||||
while #line > width do
|
||||
local cut = line:sub(1, width)
|
||||
table.insert(wrapped_lines, center_text(cut, width))
|
||||
line = line:sub(width + 1)
|
||||
end
|
||||
table.insert(wrapped_lines, center_text(line, width))
|
||||
end
|
||||
return wrapped_lines
|
||||
end
|
||||
|
||||
local viewport_width = 50
|
||||
local handle = io.popen("fortune")
|
||||
local quote = handle and handle:read("*a") or "Code, Create, Conquer with CarGDev"
|
||||
if handle then handle:close() end
|
||||
local wrapped_quote = wrap_text(quote:gsub("\n", " "), viewport_width)
|
||||
|
||||
dashboard.section.footer.val = { "", center_text("CarGDev - Innovating with Neovim!", viewport_width), "" }
|
||||
for _, line in ipairs(wrapped_quote) do
|
||||
table.insert(dashboard.section.footer.val, line)
|
||||
end
|
||||
|
||||
dashboard.opts.opts = { position = "center", hl = "Statement", spacing = 2 }
|
||||
alpha.setup(dashboard.opts)
|
||||
vim.cmd([[autocmd FileType alpha setlocal nofoldenable]])
|
||||
end,
|
||||
}
|
||||
43
lua/cargdev/plugins/colorful-winsep.lua
Normal file
43
lua/cargdev/plugins/colorful-winsep.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
return {
|
||||
"nvim-zh/colorful-winsep.nvim",
|
||||
event = { "WinLeave" },
|
||||
config = function()
|
||||
require("colorful-winsep").setup({
|
||||
hi = {
|
||||
bg = "",
|
||||
fg = "#806d9c",
|
||||
},
|
||||
no_exec_files = {
|
||||
"NvimTree",
|
||||
"neo-tree",
|
||||
"packer",
|
||||
"TelescopePrompt",
|
||||
"mason",
|
||||
"lazy",
|
||||
"CompetiTest",
|
||||
"fugitive",
|
||||
},
|
||||
smooth = true,
|
||||
exponential_smoothing = true,
|
||||
anchor = {
|
||||
left = { height = 1, x = -1, y = -1 },
|
||||
right = { height = 1, x = -1, y = 0 },
|
||||
up = { width = 0, x = -1, y = 0 },
|
||||
bottom = { width = 0, x = 1, y = 0 },
|
||||
},
|
||||
symbols = { "─", "│", "┌", "┐", "└", "┘" },
|
||||
only_line_seq = true,
|
||||
create_event = function()
|
||||
local win_n = require("colorful-winsep.utils").calculate_number_windows()
|
||||
if win_n == 2 then
|
||||
local win_id = vim.fn.win_getid(vim.fn.winnr("h"))
|
||||
local filetype = vim.api.nvim_buf_get_option(vim.api.nvim_win_get_buf(win_id), "filetype")
|
||||
if filetype == "NvimTree" or filetype == "neo-tree" then
|
||||
require("colorful-winsep").NvsepRealClose()
|
||||
end
|
||||
end
|
||||
end,
|
||||
close_event = function() end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
73
lua/cargdev/plugins/crates.lua
Normal file
73
lua/cargdev/plugins/crates.lua
Normal file
@@ -0,0 +1,73 @@
|
||||
return {
|
||||
"saecki/crates.nvim",
|
||||
event = { "BufRead Cargo.toml" },
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {
|
||||
smart_insert = true,
|
||||
insert_closing_quote = true,
|
||||
autoload = true,
|
||||
autoupdate = true,
|
||||
autoupdate_throttle = 250,
|
||||
loading_indicator = true,
|
||||
date_format = "%Y-%m-%d",
|
||||
thousands_separator = ",",
|
||||
notification_title = "crates.nvim",
|
||||
curl_args = { "-sL", "--retry", "1" },
|
||||
max_parallel_requests = 80,
|
||||
open_programs = { "xdg-open", "open" },
|
||||
expand_crate_moves_cursor = true,
|
||||
enable_update_available_warning = true,
|
||||
on_attach = function(bufnr) end,
|
||||
text = {
|
||||
loading = " Loading",
|
||||
version = " %s",
|
||||
prerelease = " %s",
|
||||
yanked = " %s",
|
||||
nomatch = " No match",
|
||||
upgrade = " %s",
|
||||
error = " Error fetching crate",
|
||||
},
|
||||
highlight = {
|
||||
loading = "CratesNvimLoading",
|
||||
version = "CratesNvimVersion",
|
||||
prerelease = "CratesNvimPreRelease",
|
||||
yanked = "CratesNvimYanked",
|
||||
nomatch = "CratesNvimNoMatch",
|
||||
upgrade = "CratesNvimUpgrade",
|
||||
error = "CratesNvimError",
|
||||
},
|
||||
popup = {
|
||||
autofocus = false,
|
||||
hide_on_select = false,
|
||||
copy_register = '"',
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
show_version_date = true,
|
||||
show_dependency_version = true,
|
||||
max_height = 30,
|
||||
min_width = 20,
|
||||
padding = 1,
|
||||
},
|
||||
completion = {
|
||||
cmp = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
lsp = {
|
||||
enabled = true,
|
||||
on_attach = function(client, bufnr) end,
|
||||
actions = true,
|
||||
completion = true,
|
||||
hover = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ct", "<cmd>lua require('crates').toggle()<cr>", desc = "Toggle crates" },
|
||||
{ "<leader>cr", "<cmd>lua require('crates').reload()<cr>", desc = "Reload crates" },
|
||||
{ "<leader>cv", "<cmd>lua require('crates').show_versions_popup()<cr>", desc = "Show versions" },
|
||||
{ "<leader>cf", "<cmd>lua require('crates').show_features_popup()<cr>", desc = "Show features" },
|
||||
{ "<leader>cd", "<cmd>lua require('crates').show_dependencies_popup()<cr>", desc = "Show dependencies" },
|
||||
{ "<leader>cu", "<cmd>lua require('crates').update_crate()<cr>", desc = "Update crate" },
|
||||
{ "<leader>cU", "<cmd>lua require('crates').upgrade_crate()<cr>", desc = "Upgrade crate" },
|
||||
},
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
return {
|
||||
"kristijanhusak/vim-dadbod-ui",
|
||||
dependencies = {
|
||||
{ "tpope/vim-dadbod", lazy = true },
|
||||
{ "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true },
|
||||
{ "tpope/vim-dadbod" }, -- Remove lazy = true, needs to load with UI
|
||||
{ "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" } },
|
||||
},
|
||||
cmd = {
|
||||
"DBUI",
|
||||
"DBUIToggle",
|
||||
"DBUIAddConnection",
|
||||
"DBUIFindBuffer",
|
||||
"DBUIRenameBuffer",
|
||||
"DBUILastQueryInfo",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>Du", "<cmd>DBUIToggle<CR>", desc = "Toggle Database UI" },
|
||||
{ "<leader>Da", "<cmd>DBUIAddConnection<CR>", desc = "Add DB Connection" },
|
||||
},
|
||||
init = function()
|
||||
-- Database UI configuration
|
||||
@@ -142,12 +148,25 @@ return {
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "sql", "mysql", "plsql" },
|
||||
callback = function()
|
||||
require("cmp").setup.buffer({
|
||||
sources = {
|
||||
{ name = "vim-dadbod-completion" },
|
||||
{ name = "buffer" },
|
||||
},
|
||||
})
|
||||
local ok, cmp = pcall(require, "cmp")
|
||||
if ok then
|
||||
cmp.setup.buffer({
|
||||
sources = {
|
||||
{ name = "vim-dadbod-completion" },
|
||||
{ name = "buffer" },
|
||||
},
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Also setup completion for dbui buffers
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "dbui" },
|
||||
callback = function()
|
||||
-- Enable line numbers in dbui
|
||||
vim.opt_local.number = false
|
||||
vim.opt_local.relativenumber = false
|
||||
end,
|
||||
})
|
||||
end,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
return {
|
||||
"mfussenegger/nvim-dap",
|
||||
event = "VeryLazy", -- Changed from immediate loading to lazy loading
|
||||
event = { "VeryLazy", "FileType java" }, -- Load on VeryLazy or when opening Java files
|
||||
cmd = { "Dap", "DapUI", "DapContinue", "DapToggleBreakpoint" }, -- Load on command
|
||||
ft = { "java" }, -- Also load for Java filetype
|
||||
dependencies = {
|
||||
{ "nvim-neotest/nvim-nio", lazy = false },
|
||||
"rcarriga/nvim-dap-ui",
|
||||
|
||||
120
lua/cargdev/plugins/dial.lua
Normal file
120
lua/cargdev/plugins/dial.lua
Normal file
@@ -0,0 +1,120 @@
|
||||
return {
|
||||
"monaqa/dial.nvim",
|
||||
keys = {
|
||||
{ "<C-a>", function() return require("dial.map").inc_normal() end, expr = true, desc = "Increment" },
|
||||
{ "<C-x>", function() return require("dial.map").dec_normal() end, expr = true, desc = "Decrement" },
|
||||
{ "g<C-a>", function() return require("dial.map").inc_gnormal() end, expr = true, desc = "Increment (g)" },
|
||||
{ "g<C-x>", function() return require("dial.map").dec_gnormal() end, expr = true, desc = "Decrement (g)" },
|
||||
{ "<C-a>", function() return require("dial.map").inc_visual() end, mode = "v", expr = true, desc = "Increment" },
|
||||
{ "<C-x>", function() return require("dial.map").dec_visual() end, mode = "v", expr = true, desc = "Decrement" },
|
||||
{ "g<C-a>", function() return require("dial.map").inc_gvisual() end, mode = "v", expr = true, desc = "Increment (g)" },
|
||||
{ "g<C-x>", function() return require("dial.map").dec_gvisual() end, mode = "v", expr = true, desc = "Decrement (g)" },
|
||||
},
|
||||
config = function()
|
||||
local augend = require("dial.augend")
|
||||
require("dial.config").augends:register_group({
|
||||
default = {
|
||||
augend.integer.alias.decimal,
|
||||
augend.integer.alias.hex,
|
||||
augend.integer.alias.octal,
|
||||
augend.integer.alias.binary,
|
||||
augend.date.alias["%Y/%m/%d"],
|
||||
augend.date.alias["%Y-%m-%d"],
|
||||
augend.date.alias["%m/%d/%Y"],
|
||||
augend.date.alias["%d/%m/%Y"],
|
||||
augend.date.alias["%H:%M:%S"],
|
||||
augend.date.alias["%H:%M"],
|
||||
augend.constant.alias.bool,
|
||||
augend.constant.new({
|
||||
elements = { "true", "false" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "True", "False" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "yes", "no" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "Yes", "No" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "on", "off" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "enable", "disable" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "enabled", "disabled" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "public", "private", "protected" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "let", "const", "var" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "&&", "||" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "==", "!=" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "===", "!==" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { ">", "<" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { ">=", "<=" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "px", "em", "rem", "%" },
|
||||
word = false,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "GET", "POST", "PUT", "PATCH", "DELETE" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.constant.new({
|
||||
elements = { "info", "warn", "error", "debug" },
|
||||
word = true,
|
||||
cyclic = true,
|
||||
}),
|
||||
augend.hexcolor.new({
|
||||
case = "lower",
|
||||
}),
|
||||
augend.semver.alias.semver,
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
82
lua/cargdev/plugins/diffview.lua
Normal file
82
lua/cargdev/plugins/diffview.lua
Normal file
@@ -0,0 +1,82 @@
|
||||
return {
|
||||
"sindrets/diffview.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles", "DiffviewFocusFiles", "DiffviewFileHistory" },
|
||||
keys = {
|
||||
{ "<leader>gd", "<cmd>DiffviewOpen<cr>", desc = "Diffview open" },
|
||||
{ "<leader>gD", "<cmd>DiffviewClose<cr>", desc = "Diffview close" },
|
||||
{ "<leader>gh", "<cmd>DiffviewFileHistory %<cr>", desc = "File history (current)" },
|
||||
{ "<leader>gH", "<cmd>DiffviewFileHistory<cr>", desc = "File history (repo)" },
|
||||
},
|
||||
opts = {
|
||||
diff_binaries = false,
|
||||
enhanced_diff_hl = true,
|
||||
use_icons = true,
|
||||
show_help_hints = true,
|
||||
watch_index = true,
|
||||
icons = {
|
||||
folder_closed = "",
|
||||
folder_open = "",
|
||||
},
|
||||
signs = {
|
||||
fold_closed = "",
|
||||
fold_open = "",
|
||||
done = "✓",
|
||||
},
|
||||
view = {
|
||||
default = {
|
||||
layout = "diff2_horizontal",
|
||||
winbar_info = false,
|
||||
},
|
||||
merge_tool = {
|
||||
layout = "diff3_horizontal",
|
||||
disable_diagnostics = true,
|
||||
winbar_info = true,
|
||||
},
|
||||
file_history = {
|
||||
layout = "diff2_horizontal",
|
||||
winbar_info = false,
|
||||
},
|
||||
},
|
||||
file_panel = {
|
||||
listing_style = "tree",
|
||||
tree_options = {
|
||||
flatten_dirs = true,
|
||||
folder_statuses = "only_folded",
|
||||
},
|
||||
win_config = {
|
||||
position = "left",
|
||||
width = 35,
|
||||
},
|
||||
},
|
||||
file_history_panel = {
|
||||
log_options = {
|
||||
git = {
|
||||
single_file = {
|
||||
diff_merges = "combined",
|
||||
},
|
||||
multi_file = {
|
||||
diff_merges = "first-parent",
|
||||
},
|
||||
},
|
||||
},
|
||||
win_config = {
|
||||
position = "bottom",
|
||||
height = 16,
|
||||
},
|
||||
},
|
||||
hooks = {},
|
||||
keymaps = {
|
||||
view = {
|
||||
{ "n", "<tab>", "<cmd>DiffviewToggleFiles<cr>", { desc = "Toggle file panel" } },
|
||||
{ "n", "q", "<cmd>DiffviewClose<cr>", { desc = "Close diffview" } },
|
||||
},
|
||||
file_panel = {
|
||||
{ "n", "q", "<cmd>DiffviewClose<cr>", { desc = "Close diffview" } },
|
||||
},
|
||||
file_history_panel = {
|
||||
{ "n", "q", "<cmd>DiffviewClose<cr>", { desc = "Close diffview" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
137
lua/cargdev/plugins/dropbar.lua
Normal file
137
lua/cargdev/plugins/dropbar.lua
Normal file
@@ -0,0 +1,137 @@
|
||||
return {
|
||||
"Bekaboo/dropbar.nvim",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
},
|
||||
opts = {
|
||||
bar = {
|
||||
hover = true,
|
||||
sources = function(buf, _)
|
||||
local sources = require("dropbar.sources")
|
||||
local utils = require("dropbar.utils")
|
||||
if vim.bo[buf].ft == "markdown" then
|
||||
return { sources.markdown }
|
||||
end
|
||||
if vim.bo[buf].buftype == "terminal" then
|
||||
return { sources.terminal }
|
||||
end
|
||||
return {
|
||||
sources.path,
|
||||
utils.source.fallback({
|
||||
sources.lsp,
|
||||
sources.treesitter,
|
||||
}),
|
||||
}
|
||||
end,
|
||||
padding = {
|
||||
left = 1,
|
||||
right = 1,
|
||||
},
|
||||
pick = {
|
||||
pivots = "abcdefghijklmnopqrstuvwxyz",
|
||||
},
|
||||
truncate = true,
|
||||
},
|
||||
icons = {
|
||||
enable = true,
|
||||
kinds = {
|
||||
use_devicons = true,
|
||||
symbols = {
|
||||
Array = " ",
|
||||
Boolean = " ",
|
||||
BreakStatement = " ",
|
||||
Call = " ",
|
||||
CaseStatement = " ",
|
||||
Class = " ",
|
||||
Color = " ",
|
||||
Constant = " ",
|
||||
Constructor = " ",
|
||||
ContinueStatement = "→ ",
|
||||
Copilot = " ",
|
||||
Declaration = " ",
|
||||
Delete = " ",
|
||||
DoStatement = " ",
|
||||
Enum = " ",
|
||||
EnumMember = " ",
|
||||
Event = " ",
|
||||
Field = " ",
|
||||
File = " ",
|
||||
Folder = " ",
|
||||
ForStatement = " ",
|
||||
Function = " ",
|
||||
Identifier = " ",
|
||||
IfStatement = " ",
|
||||
Interface = " ",
|
||||
Keyword = " ",
|
||||
List = " ",
|
||||
Log = " ",
|
||||
Lsp = " ",
|
||||
Macro = " ",
|
||||
MarkdownH1 = " ",
|
||||
MarkdownH2 = " ",
|
||||
MarkdownH3 = " ",
|
||||
MarkdownH4 = " ",
|
||||
MarkdownH5 = " ",
|
||||
MarkdownH6 = " ",
|
||||
Method = " ",
|
||||
Module = " ",
|
||||
Namespace = " ",
|
||||
Null = " ",
|
||||
Number = " ",
|
||||
Object = " ",
|
||||
Operator = " ",
|
||||
Package = " ",
|
||||
Property = " ",
|
||||
Reference = " ",
|
||||
Regex = " ",
|
||||
Repeat = " ",
|
||||
Scope = " ",
|
||||
Snippet = " ",
|
||||
Specifier = " ",
|
||||
Statement = " ",
|
||||
String = " ",
|
||||
Struct = " ",
|
||||
SwitchStatement = " ",
|
||||
Text = " ",
|
||||
Type = " ",
|
||||
TypeParameter = " ",
|
||||
Unit = " ",
|
||||
Value = " ",
|
||||
Variable = " ",
|
||||
WhileStatement = " ",
|
||||
},
|
||||
},
|
||||
ui = {
|
||||
bar = {
|
||||
separator = " ",
|
||||
extends = "…",
|
||||
},
|
||||
menu = {
|
||||
separator = " ",
|
||||
indicator = " ",
|
||||
},
|
||||
},
|
||||
},
|
||||
menu = {
|
||||
quick_navigation = true,
|
||||
entry = {
|
||||
padding = {
|
||||
left = 1,
|
||||
right = 1,
|
||||
},
|
||||
},
|
||||
keymaps = {
|
||||
["q"] = "<C-w>q",
|
||||
["<Esc>"] = "<C-w>q",
|
||||
},
|
||||
},
|
||||
sources = {
|
||||
path = {
|
||||
relative_to = function()
|
||||
return vim.fn.getcwd()
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
40
lua/cargdev/plugins/edgy.lua
Normal file
40
lua/cargdev/plugins/edgy.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
return {
|
||||
"folke/edgy.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
left = {
|
||||
{
|
||||
ft = "NvimTree",
|
||||
size = { width = 35 },
|
||||
},
|
||||
},
|
||||
right = {
|
||||
{
|
||||
ft = "Outline",
|
||||
size = { width = 30 },
|
||||
},
|
||||
},
|
||||
bottom = {
|
||||
{
|
||||
ft = "snacks_terminal",
|
||||
size = { height = 0.25 },
|
||||
},
|
||||
{
|
||||
ft = "trouble",
|
||||
size = { height = 0.25 },
|
||||
},
|
||||
{
|
||||
ft = "qf",
|
||||
size = { height = 0.2 },
|
||||
},
|
||||
},
|
||||
animate = { enabled = false },
|
||||
exit_when_last = true,
|
||||
wo = {
|
||||
winbar = false,
|
||||
winfixwidth = true,
|
||||
winfixheight = false,
|
||||
signcolumn = "no",
|
||||
},
|
||||
},
|
||||
}
|
||||
54
lua/cargdev/plugins/flash.lua
Normal file
54
lua/cargdev/plugins/flash.lua
Normal file
@@ -0,0 +1,54 @@
|
||||
return {
|
||||
"folke/flash.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
labels = "asdfghjklqwertyuiopzxcvbnm",
|
||||
search = {
|
||||
multi_window = true,
|
||||
forward = true,
|
||||
wrap = true,
|
||||
},
|
||||
jump = {
|
||||
jumplist = true,
|
||||
pos = "start",
|
||||
history = false,
|
||||
register = false,
|
||||
nohlsearch = false,
|
||||
autojump = false,
|
||||
},
|
||||
label = {
|
||||
uppercase = false,
|
||||
rainbow = {
|
||||
enabled = true,
|
||||
shade = 5,
|
||||
},
|
||||
},
|
||||
modes = {
|
||||
search = {
|
||||
enabled = false, -- set to true to enable flash in search mode
|
||||
},
|
||||
char = {
|
||||
enabled = true,
|
||||
jump_labels = true,
|
||||
multi_line = false,
|
||||
},
|
||||
treesitter = {
|
||||
labels = "asdfghjklqwertyuiopzxcvbnm",
|
||||
jump = { pos = "range" },
|
||||
search = { incremental = false },
|
||||
label = { before = true, after = true, style = "inline" },
|
||||
highlight = {
|
||||
backdrop = false,
|
||||
matches = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
|
||||
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
|
||||
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
|
||||
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
|
||||
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
|
||||
},
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
return {
|
||||
"ibhagwan/fzf-lua",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = function()
|
||||
local fzf = require("fzf-lua")
|
||||
fzf.setup({
|
||||
"default",
|
||||
winopts = {
|
||||
height = 0.85,
|
||||
width = 0.80,
|
||||
row = 0.35,
|
||||
col = 0.50,
|
||||
border = "rounded",
|
||||
preview = {
|
||||
layout = "flex",
|
||||
flip_columns = 120,
|
||||
scrollbar = "float",
|
||||
},
|
||||
},
|
||||
keymap = {
|
||||
builtin = {
|
||||
["<C-d>"] = "preview-page-down",
|
||||
["<C-u>"] = "preview-page-up",
|
||||
},
|
||||
fzf = {
|
||||
["ctrl-q"] = "select-all+accept",
|
||||
},
|
||||
},
|
||||
lsp = {
|
||||
async_or_timeout = 5000,
|
||||
jump_to_single_result = true,
|
||||
ignore_current_line = true,
|
||||
},
|
||||
diagnostics = {
|
||||
severity_limit = vim.diagnostic.severity.HINT,
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
24
lua/cargdev/plugins/git-blame.lua
Normal file
24
lua/cargdev/plugins/git-blame.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
"f-person/git-blame.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
enabled = false, -- Start disabled, toggle with <leader>gB
|
||||
message_template = " <author> • <date> • <summary>",
|
||||
date_format = "%Y-%m-%d",
|
||||
virtual_text_column = 80, -- Push to column 80 to avoid overlap
|
||||
highlight_group = "Comment",
|
||||
set_extmark_options = {
|
||||
priority = 1, -- Lower priority so diagnostics show on top
|
||||
},
|
||||
display_virtual_text = true,
|
||||
ignored_filetypes = { "NvimTree", "neo-tree", "lazy", "mason", "help" },
|
||||
delay = 500,
|
||||
message_when_not_committed = "",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>gB", "<cmd>GitBlameToggle<cr>", desc = "Toggle git blame" },
|
||||
{ "<leader>gbc", "<cmd>GitBlameCopySHA<cr>", desc = "Copy commit SHA" },
|
||||
{ "<leader>gbo", "<cmd>GitBlameOpenCommitURL<cr>", desc = "Open commit URL" },
|
||||
{ "<leader>gbf", "<cmd>GitBlameOpenFileURL<cr>", desc = "Open file URL" },
|
||||
},
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
return {
|
||||
"akinsho/git-conflict.nvim",
|
||||
config = function()
|
||||
require("git-conflict").setup({
|
||||
default_mappings = true, -- enable buffer local mapping created by this plugin
|
||||
disable_diagnostics = true, -- This will disable diagnostics in a buffer whilst it is conflicted
|
||||
highlights = { -- They must have background color, otherwise the default color will be used
|
||||
incoming = "DiffText",
|
||||
current = "DiffAdd",
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
55
lua/cargdev/plugins/grug-far.lua
Normal file
55
lua/cargdev/plugins/grug-far.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
return {
|
||||
"MagicDuck/grug-far.nvim",
|
||||
cmd = "GrugFar",
|
||||
keys = {
|
||||
{ "<leader>sr", "<cmd>GrugFar<cr>", desc = "Search and Replace" },
|
||||
{
|
||||
"<leader>sR",
|
||||
function()
|
||||
require("grug-far").grug_far({ prefills = { search = vim.fn.expand("<cword>") } })
|
||||
end,
|
||||
desc = "Search current word",
|
||||
},
|
||||
{
|
||||
"<leader>sR",
|
||||
function()
|
||||
require("grug-far").with_visual_selection()
|
||||
end,
|
||||
mode = "v",
|
||||
desc = "Search selection",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
headerMaxWidth = 80,
|
||||
icons = {
|
||||
enabled = true,
|
||||
actionEntryBullet = " ",
|
||||
searchInput = " ",
|
||||
replaceInput = " ",
|
||||
filesFilterInput = " ",
|
||||
flagsInput = " ",
|
||||
resultsStatusReady = " ",
|
||||
resultsStatusError = " ",
|
||||
resultsStatusSuccess = " ",
|
||||
resultsActionMessage = " ",
|
||||
resultsChangeIndicator = "│",
|
||||
historyTitle = " ",
|
||||
},
|
||||
startInInsertMode = false,
|
||||
windowCreationCommand = "vsplit",
|
||||
transitionDuration = 80,
|
||||
keymaps = {
|
||||
replace = { n = "<localleader>r" },
|
||||
qflist = { n = "<localleader>q" },
|
||||
syncLocations = { n = "<localleader>s" },
|
||||
syncLine = { n = "<localleader>l" },
|
||||
close = { n = "q" },
|
||||
historyOpen = { n = "<localleader>t" },
|
||||
historyAdd = { n = "<localleader>a" },
|
||||
refresh = { n = "<localleader>f" },
|
||||
gotoLocation = { n = "<enter>" },
|
||||
pickHistoryEntry = { n = "<enter>" },
|
||||
abort = { n = "<localleader>b" },
|
||||
},
|
||||
},
|
||||
}
|
||||
50
lua/cargdev/plugins/hardtime.lua
Normal file
50
lua/cargdev/plugins/hardtime.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
return {
|
||||
"m4xshen/hardtime.nvim",
|
||||
dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" },
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
max_time = 1000,
|
||||
max_count = 3,
|
||||
disable_mouse = false,
|
||||
hint = true,
|
||||
notification = true,
|
||||
allow_different_key = true,
|
||||
enabled = false, -- DISABLED by default - use <leader>ht to enable
|
||||
restriction_mode = "hint", -- Only show hints, never block
|
||||
restricted_keys = {
|
||||
["h"] = { "n", "x" },
|
||||
["j"] = { "n", "x" },
|
||||
["k"] = { "n", "x" },
|
||||
["l"] = { "n", "x" },
|
||||
},
|
||||
disabled_keys = {}, -- Don't disable any keys
|
||||
disabled_filetypes = {
|
||||
"NvimTree",
|
||||
"neo-tree",
|
||||
"lazy",
|
||||
"mason",
|
||||
"qf",
|
||||
"netrw",
|
||||
"help",
|
||||
"oil",
|
||||
"Trouble",
|
||||
"trouble",
|
||||
"spectre_panel",
|
||||
"toggleterm",
|
||||
"TelescopePrompt",
|
||||
"snacks_input",
|
||||
"noice",
|
||||
"DressingInput",
|
||||
"prompt",
|
||||
},
|
||||
disabled_buftypes = {
|
||||
"nofile",
|
||||
"prompt",
|
||||
"popup",
|
||||
"terminal",
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ht", "<cmd>Hardtime toggle<cr>", desc = "Toggle Hardtime" },
|
||||
},
|
||||
}
|
||||
33
lua/cargdev/plugins/harpoon.lua
Normal file
33
lua/cargdev/plugins/harpoon.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
return {
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
local harpoon = require("harpoon")
|
||||
|
||||
harpoon:setup({
|
||||
settings = {
|
||||
save_on_toggle = true,
|
||||
sync_on_ui_close = true,
|
||||
key = function()
|
||||
return vim.loop.cwd()
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
-- Keymaps
|
||||
vim.keymap.set("n", "<leader>ha", function() harpoon:list():add() end, { desc = "Harpoon add file" })
|
||||
vim.keymap.set("n", "<leader>hh", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { desc = "Harpoon menu" })
|
||||
|
||||
-- Quick navigation to harpooned files
|
||||
vim.keymap.set("n", "<leader>1", function() harpoon:list():select(1) end, { desc = "Harpoon file 1" })
|
||||
vim.keymap.set("n", "<leader>2", function() harpoon:list():select(2) end, { desc = "Harpoon file 2" })
|
||||
vim.keymap.set("n", "<leader>3", function() harpoon:list():select(3) end, { desc = "Harpoon file 3" })
|
||||
vim.keymap.set("n", "<leader>4", function() harpoon:list():select(4) end, { desc = "Harpoon file 4" })
|
||||
vim.keymap.set("n", "<leader>5", function() harpoon:list():select(5) end, { desc = "Harpoon file 5" })
|
||||
|
||||
-- Navigate between harpooned files
|
||||
vim.keymap.set("n", "<leader>hp", function() harpoon:list():prev() end, { desc = "Harpoon prev" })
|
||||
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end, { desc = "Harpoon next" })
|
||||
end,
|
||||
}
|
||||
50
lua/cargdev/plugins/hlchunk.lua
Normal file
50
lua/cargdev/plugins/hlchunk.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
return {
|
||||
"shellRaining/hlchunk.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
require("hlchunk").setup({
|
||||
chunk = {
|
||||
enable = true,
|
||||
priority = 15,
|
||||
style = {
|
||||
{ fg = "#806d9c" },
|
||||
{ fg = "#c21f30" },
|
||||
},
|
||||
use_treesitter = true,
|
||||
chars = {
|
||||
horizontal_line = "─",
|
||||
vertical_line = "│",
|
||||
left_top = "╭",
|
||||
left_bottom = "╰",
|
||||
right_arrow = ">",
|
||||
},
|
||||
textobject = "",
|
||||
max_file_size = 1024 * 1024,
|
||||
error_sign = true,
|
||||
duration = 200,
|
||||
delay = 300,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
priority = 10,
|
||||
style = { { fg = vim.fn.synIDattr(vim.fn.synIDtrans(vim.fn.hlID("Whitespace")), "fg", "gui") } },
|
||||
use_treesitter = false,
|
||||
chars = { "│" },
|
||||
ahead_lines = 5,
|
||||
delay = 100,
|
||||
},
|
||||
line_num = {
|
||||
enable = true,
|
||||
priority = 10,
|
||||
style = "#806d9c",
|
||||
use_treesitter = false,
|
||||
},
|
||||
blank = {
|
||||
enable = false,
|
||||
priority = 9,
|
||||
chars = { "․" },
|
||||
style = { { bg = "cursorline" }, { bg = "", fg = "" } },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
23
lua/cargdev/plugins/inc-rename.lua
Normal file
23
lua/cargdev/plugins/inc-rename.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
"smjonas/inc-rename.nvim",
|
||||
cmd = "IncRename",
|
||||
keys = {
|
||||
{
|
||||
"<leader>rn",
|
||||
function()
|
||||
return ":IncRename " .. vim.fn.expand("<cword>")
|
||||
end,
|
||||
expr = true,
|
||||
desc = "Incremental rename",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
cmd_name = "IncRename",
|
||||
hl_group = "Substitute",
|
||||
preview_empty_name = false,
|
||||
show_message = true,
|
||||
save_in_cmdline_history = true,
|
||||
input_buffer_type = nil,
|
||||
post_hook = nil,
|
||||
},
|
||||
}
|
||||
25
lua/cargdev/plugins/kulala.lua
Normal file
25
lua/cargdev/plugins/kulala.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
return {
|
||||
"mistweaverco/kulala.nvim",
|
||||
ft = "http",
|
||||
keys = {
|
||||
{ "<leader>kr", "<cmd>lua require('kulala').run()<cr>", desc = "Run HTTP request" },
|
||||
{ "<leader>ka", "<cmd>lua require('kulala').run_all()<cr>", desc = "Run all requests" },
|
||||
{ "<leader>kp", "<cmd>lua require('kulala').jump_prev()<cr>", desc = "Previous request" },
|
||||
{ "<leader>kn", "<cmd>lua require('kulala').jump_next()<cr>", desc = "Next request" },
|
||||
{ "<leader>ki", "<cmd>lua require('kulala').inspect()<cr>", desc = "Inspect request" },
|
||||
{ "<leader>kt", "<cmd>lua require('kulala').toggle_view()<cr>", desc = "Toggle headers/body" },
|
||||
{ "<leader>kc", "<cmd>lua require('kulala').copy()<cr>", desc = "Copy as cURL" },
|
||||
{ "<leader>ke", "<cmd>lua require('kulala').set_selected_env()<cr>", desc = "Set environment" },
|
||||
},
|
||||
opts = {
|
||||
default_view = "body",
|
||||
split_direction = "vertical",
|
||||
icons = {
|
||||
inlay = {
|
||||
loading = "⏳",
|
||||
done = "✅",
|
||||
error = "❌",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -35,34 +35,14 @@ return {
|
||||
local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||
|
||||
-- Enhanced error handling for LSP diagnostics
|
||||
-- NOTE: tiny-inline-diagnostic handles the display, so we disable virtual_text and float here
|
||||
vim.diagnostic.config({
|
||||
signs = {
|
||||
severity = {
|
||||
min = vim.diagnostic.severity.WARN,
|
||||
},
|
||||
icons = {
|
||||
Error = " ",
|
||||
Warn = " ",
|
||||
Hint = " ",
|
||||
Info = " ",
|
||||
},
|
||||
},
|
||||
-- Performance optimizations
|
||||
update_in_insert = false, -- Don't update diagnostics in insert mode
|
||||
virtual_text = false, -- Disable virtual text for better performance
|
||||
underline = true, -- Keep underline for errors
|
||||
severity_sort = true, -- Sort diagnostics by severity
|
||||
-- Error handling
|
||||
float = {
|
||||
border = "rounded",
|
||||
source = "always",
|
||||
format = function(diagnostic)
|
||||
if diagnostic.source == "LSP" then
|
||||
return string.format("%s [%s]", diagnostic.message, diagnostic.source)
|
||||
end
|
||||
return diagnostic.message
|
||||
end,
|
||||
},
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
virtual_text = false,
|
||||
underline = true,
|
||||
severity_sort = true,
|
||||
float = false, -- Disabled - use <leader>sl for manual diagnostic float
|
||||
})
|
||||
|
||||
-- Only attach to sensible buffers
|
||||
|
||||
176
lua/cargdev/plugins/lspsaga.lua
Normal file
176
lua/cargdev/plugins/lspsaga.lua
Normal file
@@ -0,0 +1,176 @@
|
||||
return {
|
||||
"nvimdev/lspsaga.nvim",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
event = "LspAttach",
|
||||
opts = {
|
||||
ui = {
|
||||
border = "rounded",
|
||||
devicon = true,
|
||||
title = true,
|
||||
expand = "",
|
||||
collapse = "",
|
||||
code_action = "💡",
|
||||
actionfix = " ",
|
||||
lines = { "┗", "┣", "┃", "━", "┏" },
|
||||
kind = nil,
|
||||
imp_sign = " ",
|
||||
},
|
||||
hover = {
|
||||
max_width = 0.9,
|
||||
max_height = 0.8,
|
||||
open_link = "gx",
|
||||
open_cmd = "!open",
|
||||
},
|
||||
diagnostic = {
|
||||
show_code_action = false,
|
||||
show_layout = "float",
|
||||
show_normal_height = 10,
|
||||
jump_num_shortcut = true,
|
||||
max_width = 0.8,
|
||||
max_height = 0.6,
|
||||
max_show_width = 0.9,
|
||||
max_show_height = 0.6,
|
||||
text_hl_follow = false,
|
||||
border_follow = true,
|
||||
extend_relatedInformation = false,
|
||||
diagnostic_only_current = true,
|
||||
keys = {
|
||||
exec_action = "o",
|
||||
quit = "q",
|
||||
toggle_or_jump = "<CR>",
|
||||
quit_in_show = { "q", "<ESC>" },
|
||||
},
|
||||
},
|
||||
code_action = {
|
||||
num_shortcut = true,
|
||||
show_server_name = true,
|
||||
extend_gitsigns = true,
|
||||
only_in_cursor = true,
|
||||
max_height = 0.3,
|
||||
keys = {
|
||||
quit = "q",
|
||||
exec = "<CR>",
|
||||
},
|
||||
},
|
||||
lightbulb = {
|
||||
enable = false, -- Using nvim-lightbulb instead
|
||||
sign = false,
|
||||
virtual_text = false,
|
||||
},
|
||||
scroll_preview = {
|
||||
scroll_down = "<C-f>",
|
||||
scroll_up = "<C-b>",
|
||||
},
|
||||
finder = {
|
||||
max_height = 0.5,
|
||||
left_width = 0.3,
|
||||
right_width = 0.5,
|
||||
methods = {},
|
||||
default = "ref+imp",
|
||||
layout = "float",
|
||||
silent = false,
|
||||
filter = {},
|
||||
keys = {
|
||||
shuttle = "[w",
|
||||
toggle_or_open = "o",
|
||||
vsplit = "s",
|
||||
split = "i",
|
||||
tabe = "t",
|
||||
tabnew = "r",
|
||||
quit = "q",
|
||||
close = "<C-c>",
|
||||
},
|
||||
},
|
||||
definition = {
|
||||
width = 0.6,
|
||||
height = 0.5,
|
||||
keys = {
|
||||
edit = "<C-c>o",
|
||||
vsplit = "<C-c>v",
|
||||
split = "<C-c>i",
|
||||
tabe = "<C-c>t",
|
||||
quit = "q",
|
||||
close = "<C-c>",
|
||||
},
|
||||
},
|
||||
rename = {
|
||||
in_select = true,
|
||||
auto_save = false,
|
||||
project_max_width = 0.5,
|
||||
project_max_height = 0.5,
|
||||
keys = {
|
||||
quit = "<C-c>",
|
||||
exec = "<CR>",
|
||||
select = "x",
|
||||
},
|
||||
},
|
||||
symbol_in_winbar = {
|
||||
enable = false, -- Using dropbar instead
|
||||
separator = " › ",
|
||||
hide_keyword = true,
|
||||
show_file = true,
|
||||
folder_level = 1,
|
||||
color_mode = true,
|
||||
},
|
||||
outline = {
|
||||
win_position = "right",
|
||||
win_width = 30,
|
||||
auto_preview = true,
|
||||
detail = true,
|
||||
auto_close = true,
|
||||
close_after_jump = false,
|
||||
layout = "normal",
|
||||
max_height = 0.5,
|
||||
left_width = 0.3,
|
||||
keys = {
|
||||
toggle_or_jump = "o",
|
||||
quit = "q",
|
||||
jump = "e",
|
||||
},
|
||||
},
|
||||
callhierarchy = {
|
||||
layout = "float",
|
||||
keys = {
|
||||
edit = "e",
|
||||
vsplit = "s",
|
||||
split = "i",
|
||||
tabe = "t",
|
||||
quit = "q",
|
||||
shuttle = "[w",
|
||||
toggle_or_req = "u",
|
||||
close = "<C-c>",
|
||||
},
|
||||
},
|
||||
implement = {
|
||||
enable = true,
|
||||
sign = true,
|
||||
virtual_text = true,
|
||||
},
|
||||
beacon = {
|
||||
enable = true,
|
||||
frequency = 7,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "gh", "<cmd>Lspsaga finder<cr>", desc = "LSP Finder" },
|
||||
{ "<leader>ca", "<cmd>Lspsaga code_action<cr>", mode = { "n", "v" }, desc = "Code action" },
|
||||
{ "gr", "<cmd>Lspsaga rename<cr>", desc = "Rename" },
|
||||
{ "gR", "<cmd>Lspsaga rename ++project<cr>", desc = "Rename (project)" },
|
||||
{ "gd", "<cmd>Lspsaga peek_definition<cr>", desc = "Peek definition" },
|
||||
{ "gD", "<cmd>Lspsaga goto_definition<cr>", desc = "Goto definition" },
|
||||
{ "gt", "<cmd>Lspsaga peek_type_definition<cr>", desc = "Peek type definition" },
|
||||
{ "gT", "<cmd>Lspsaga goto_type_definition<cr>", desc = "Goto type definition" },
|
||||
{ "<leader>sl", "<cmd>Lspsaga show_line_diagnostics<cr>", desc = "Line diagnostics" },
|
||||
{ "<leader>sc", "<cmd>Lspsaga show_cursor_diagnostics<cr>", desc = "Cursor diagnostics" },
|
||||
{ "<leader>sb", "<cmd>Lspsaga show_buf_diagnostics<cr>", desc = "Buffer diagnostics" },
|
||||
{ "[d", "<cmd>Lspsaga diagnostic_jump_prev<cr>", desc = "Prev diagnostic" },
|
||||
{ "]d", "<cmd>Lspsaga diagnostic_jump_next<cr>", desc = "Next diagnostic" },
|
||||
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "Hover doc" },
|
||||
{ "<leader>ci", "<cmd>Lspsaga incoming_calls<cr>", desc = "Incoming calls" },
|
||||
{ "<leader>co", "<cmd>Lspsaga outgoing_calls<cr>", desc = "Outgoing calls" },
|
||||
{ "<leader>so", "<cmd>Lspsaga outline<cr>", desc = "Toggle outline" },
|
||||
},
|
||||
}
|
||||
19
lua/cargdev/plugins/marks.lua
Normal file
19
lua/cargdev/plugins/marks.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
return {
|
||||
"chentoast/marks.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
default_mappings = true,
|
||||
builtin_marks = { ".", "<", ">", "^" },
|
||||
cyclic = true,
|
||||
force_write_shada = false,
|
||||
refresh_interval = 250,
|
||||
sign_priority = { lower = 10, upper = 15, builtin = 8, bookmark = 20 },
|
||||
excluded_filetypes = { "NvimTree", "neo-tree", "lazy", "mason", "help" },
|
||||
bookmark_0 = {
|
||||
sign = "⚑",
|
||||
virt_text = "bookmark",
|
||||
annotate = false,
|
||||
},
|
||||
mappings = {},
|
||||
},
|
||||
}
|
||||
33
lua/cargdev/plugins/mini-animate.lua
Normal file
33
lua/cargdev/plugins/mini-animate.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
return {
|
||||
"echasnovski/mini.animate",
|
||||
event = "VeryLazy",
|
||||
opts = function()
|
||||
local animate = require("mini.animate")
|
||||
return {
|
||||
cursor = {
|
||||
enable = true,
|
||||
timing = animate.gen_timing.linear({ duration = 80, unit = "total" }),
|
||||
},
|
||||
scroll = {
|
||||
enable = true,
|
||||
timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
|
||||
},
|
||||
resize = {
|
||||
enable = true,
|
||||
timing = animate.gen_timing.linear({ duration = 80, unit = "total" }),
|
||||
},
|
||||
open = {
|
||||
enable = true,
|
||||
timing = animate.gen_timing.linear({ duration = 80, unit = "total" }),
|
||||
winconfig = animate.gen_winconfig.wipe({ direction = "from_edge" }),
|
||||
winblend = animate.gen_winblend.linear({ from = 80, to = 100 }),
|
||||
},
|
||||
close = {
|
||||
enable = true,
|
||||
timing = animate.gen_timing.linear({ duration = 80, unit = "total" }),
|
||||
winconfig = animate.gen_winconfig.wipe({ direction = "to_edge" }),
|
||||
winblend = animate.gen_winblend.linear({ from = 100, to = 80 }),
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
23
lua/cargdev/plugins/modicator.lua
Normal file
23
lua/cargdev/plugins/modicator.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
"mawkler/modicator.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.o.cursorline = true
|
||||
vim.o.number = true
|
||||
end,
|
||||
opts = {
|
||||
show_warnings = false,
|
||||
highlights = {
|
||||
defaults = {
|
||||
bold = true,
|
||||
},
|
||||
},
|
||||
integration = {
|
||||
lualine = {
|
||||
enabled = true,
|
||||
mode_section = nil,
|
||||
highlight = "bg",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
67
lua/cargdev/plugins/navbuddy.lua
Normal file
67
lua/cargdev/plugins/navbuddy.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
return {
|
||||
"SmiteshP/nvim-navbuddy",
|
||||
dependencies = {
|
||||
"SmiteshP/nvim-navic",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>nb", "<cmd>Navbuddy<cr>", desc = "Navbuddy" },
|
||||
},
|
||||
opts = {
|
||||
window = {
|
||||
border = "rounded",
|
||||
size = "80%",
|
||||
position = "50%",
|
||||
sections = {
|
||||
left = { size = "20%" },
|
||||
mid = { size = "40%" },
|
||||
right = { preview = "leaf" },
|
||||
},
|
||||
},
|
||||
node_markers = {
|
||||
enabled = true,
|
||||
icons = {
|
||||
leaf = " ",
|
||||
leaf_selected = " → ",
|
||||
branch = " ",
|
||||
},
|
||||
},
|
||||
icons = {
|
||||
File = " ",
|
||||
Module = " ",
|
||||
Namespace = " ",
|
||||
Package = " ",
|
||||
Class = " ",
|
||||
Method = " ",
|
||||
Property = " ",
|
||||
Field = " ",
|
||||
Constructor = " ",
|
||||
Enum = " ",
|
||||
Interface = " ",
|
||||
Function = " ",
|
||||
Variable = " ",
|
||||
Constant = " ",
|
||||
String = " ",
|
||||
Number = " ",
|
||||
Boolean = " ",
|
||||
Array = " ",
|
||||
Object = " ",
|
||||
Key = " ",
|
||||
Null = " ",
|
||||
EnumMember = " ",
|
||||
Struct = " ",
|
||||
Event = " ",
|
||||
Operator = " ",
|
||||
TypeParameter = " ",
|
||||
},
|
||||
use_default_mappings = true,
|
||||
lsp = {
|
||||
auto_attach = true,
|
||||
},
|
||||
source_buffer = {
|
||||
follow_node = true,
|
||||
highlight = true,
|
||||
reorient = "smart",
|
||||
},
|
||||
},
|
||||
}
|
||||
84
lua/cargdev/plugins/neogit.lua
Normal file
84
lua/cargdev/plugins/neogit.lua
Normal file
@@ -0,0 +1,84 @@
|
||||
return {
|
||||
"NeogitOrg/neogit",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"sindrets/diffview.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
cmd = "Neogit",
|
||||
keys = {
|
||||
{ "<leader>gn", "<cmd>Neogit<cr>", desc = "Neogit" },
|
||||
{ "<leader>gnc", "<cmd>Neogit commit<cr>", desc = "Neogit commit" },
|
||||
{ "<leader>gnp", "<cmd>Neogit push<cr>", desc = "Neogit push" },
|
||||
{ "<leader>gnl", "<cmd>Neogit pull<cr>", desc = "Neogit pull" },
|
||||
{ "<leader>gnb", "<cmd>Neogit branch<cr>", desc = "Neogit branch" },
|
||||
},
|
||||
opts = {
|
||||
disable_hint = false,
|
||||
disable_context_highlighting = false,
|
||||
disable_signs = false,
|
||||
graph_style = "unicode",
|
||||
git_services = {
|
||||
["github.com"] = "https://github.com/${owner}/${repository}/compare/${branch_name}?expand=1",
|
||||
["bitbucket.org"] = "https://bitbucket.org/${owner}/${repository}/pull-requests/new?source=${branch_name}&t=1",
|
||||
["gitlab.com"] = "https://gitlab.com/${owner}/${repository}/merge_requests/new?merge_request[source_branch]=${branch_name}",
|
||||
},
|
||||
integrations = {
|
||||
telescope = true,
|
||||
diffview = true,
|
||||
},
|
||||
sections = {
|
||||
untracked = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
unstaged = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
staged = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
stashes = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unpulled_upstream = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unmerged_upstream = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
unpulled_pushRemote = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unmerged_pushRemote = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
recent = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
rebase = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
},
|
||||
mappings = {
|
||||
status = {
|
||||
["q"] = "Close",
|
||||
["<esc>"] = "Close",
|
||||
},
|
||||
},
|
||||
signs = {
|
||||
hunk = { "", "" },
|
||||
item = { "", "" },
|
||||
section = { "", "" },
|
||||
},
|
||||
},
|
||||
}
|
||||
21
lua/cargdev/plugins/nvim-highlight-colors.lua
Normal file
21
lua/cargdev/plugins/nvim-highlight-colors.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
return {
|
||||
"brenoprata10/nvim-highlight-colors",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
render = "background",
|
||||
virtual_symbol = "■",
|
||||
virtual_symbol_prefix = "",
|
||||
virtual_symbol_suffix = " ",
|
||||
virtual_symbol_position = "inline",
|
||||
enable_hex = true,
|
||||
enable_short_hex = true,
|
||||
enable_rgb = true,
|
||||
enable_hsl = true,
|
||||
enable_var_usage = true,
|
||||
enable_named_colors = true,
|
||||
enable_tailwind = true,
|
||||
custom_colors = {},
|
||||
exclude_filetypes = {},
|
||||
exclude_buftypes = {},
|
||||
},
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
return {
|
||||
'mfussenegger/nvim-jdtls',
|
||||
"mfussenegger/nvim-jdtls",
|
||||
ft = "java",
|
||||
dependencies = {
|
||||
"mfussenegger/nvim-dap",
|
||||
},
|
||||
}
|
||||
|
||||
54
lua/cargdev/plugins/nvim-lightbulb.lua
Normal file
54
lua/cargdev/plugins/nvim-lightbulb.lua
Normal file
@@ -0,0 +1,54 @@
|
||||
return {
|
||||
"kosayoda/nvim-lightbulb",
|
||||
event = "LspAttach",
|
||||
opts = {
|
||||
priority = 10,
|
||||
hide_in_unfocused_buffer = true,
|
||||
link_highlights = true,
|
||||
validate_config = "auto",
|
||||
action_kinds = nil,
|
||||
sign = {
|
||||
enabled = true,
|
||||
text = "💡",
|
||||
hl = "LightBulbSign",
|
||||
},
|
||||
virtual_text = {
|
||||
enabled = false,
|
||||
text = "💡",
|
||||
pos = "eol",
|
||||
hl = "LightBulbVirtualText",
|
||||
hl_mode = "combine",
|
||||
},
|
||||
float = {
|
||||
enabled = false,
|
||||
text = "💡",
|
||||
hl = "LightBulbFloatWin",
|
||||
win_opts = {
|
||||
focusable = false,
|
||||
},
|
||||
},
|
||||
status_text = {
|
||||
enabled = false,
|
||||
text = "💡",
|
||||
text_unavailable = "",
|
||||
},
|
||||
number = {
|
||||
enabled = false,
|
||||
hl = "LightBulbNumber",
|
||||
},
|
||||
line = {
|
||||
enabled = false,
|
||||
hl = "LightBulbLine",
|
||||
},
|
||||
autocmd = {
|
||||
enabled = true,
|
||||
updatetime = 200,
|
||||
events = { "CursorHold", "CursorHoldI" },
|
||||
pattern = { "*" },
|
||||
},
|
||||
ignore = {
|
||||
clients = {},
|
||||
actions_without_kind = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -19,6 +19,7 @@ return {
|
||||
nvimtree.setup({
|
||||
view = {
|
||||
width = 35,
|
||||
side = "left",
|
||||
relativenumber = true,
|
||||
},
|
||||
-- change folder arrow icons
|
||||
|
||||
16
lua/cargdev/plugins/nvim-ts-autotag.lua
Normal file
16
lua/cargdev/plugins/nvim-ts-autotag.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
return {
|
||||
"windwp/nvim-ts-autotag",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
opts = {
|
||||
enable_close = true,
|
||||
enable_rename = true,
|
||||
enable_close_on_slash = true,
|
||||
},
|
||||
per_filetype = {
|
||||
["html"] = {
|
||||
enable_close = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
69
lua/cargdev/plugins/octo.lua
Normal file
69
lua/cargdev/plugins/octo.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
return {
|
||||
"pwntester/octo.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
cmd = "Octo",
|
||||
keys = {
|
||||
{ "<leader>oi", "<cmd>Octo issue list<cr>", desc = "List issues" },
|
||||
{ "<leader>oI", "<cmd>Octo issue create<cr>", desc = "Create issue" },
|
||||
{ "<leader>op", "<cmd>Octo pr list<cr>", desc = "List PRs" },
|
||||
{ "<leader>oP", "<cmd>Octo pr create<cr>", desc = "Create PR" },
|
||||
{ "<leader>or", "<cmd>Octo repo list<cr>", desc = "List repos" },
|
||||
{ "<leader>os", "<cmd>Octo search<cr>", desc = "Search issues/PRs" },
|
||||
{ "<leader>oa", "<cmd>Octo actions<cr>", desc = "Octo actions" },
|
||||
},
|
||||
opts = {
|
||||
use_local_fs = false,
|
||||
enable_builtin = true,
|
||||
default_remote = { "upstream", "origin" },
|
||||
ssh_aliases = {},
|
||||
picker = "telescope",
|
||||
picker_config = {
|
||||
use_emojis = true,
|
||||
mappings = {
|
||||
open_in_browser = { lhs = "<C-b>", desc = "open in browser" },
|
||||
copy_url = { lhs = "<C-y>", desc = "copy url to clipboard" },
|
||||
checkout_pr = { lhs = "<C-o>", desc = "checkout PR" },
|
||||
merge_pr = { lhs = "<C-r>", desc = "merge PR" },
|
||||
},
|
||||
},
|
||||
comment_icon = "",
|
||||
outdated_icon = " ",
|
||||
resolved_icon = " ",
|
||||
reaction_viewer_hint_icon = " ",
|
||||
user_icon = " ",
|
||||
timeline_marker = " ",
|
||||
timeline_indent = "2",
|
||||
right_bubble_delimiter = "",
|
||||
left_bubble_delimiter = "",
|
||||
github_hostname = "",
|
||||
snippet_context_lines = 4,
|
||||
gh_env = {},
|
||||
timeout = 5000,
|
||||
default_to_projects_v2 = false,
|
||||
ui = {
|
||||
use_signcolumn = true,
|
||||
},
|
||||
issues = {
|
||||
order_by = {
|
||||
field = "CREATED_AT",
|
||||
direction = "DESC",
|
||||
},
|
||||
},
|
||||
pull_requests = {
|
||||
order_by = {
|
||||
field = "CREATED_AT",
|
||||
direction = "DESC",
|
||||
},
|
||||
always_select_remote_on_create = false,
|
||||
},
|
||||
file_panel = {
|
||||
size = 10,
|
||||
use_icons = true,
|
||||
},
|
||||
mappings = {},
|
||||
},
|
||||
}
|
||||
129
lua/cargdev/plugins/outline.lua
Normal file
129
lua/cargdev/plugins/outline.lua
Normal file
@@ -0,0 +1,129 @@
|
||||
return {
|
||||
"hedyhli/outline.nvim",
|
||||
cmd = { "Outline", "OutlineOpen" },
|
||||
keys = {
|
||||
{ "<leader>cs", "<cmd>Outline<cr>", desc = "Toggle symbol Outline" },
|
||||
},
|
||||
opts = {
|
||||
outline_window = {
|
||||
position = "right",
|
||||
split_command = nil,
|
||||
width = 25,
|
||||
relative_width = true,
|
||||
auto_close = false,
|
||||
auto_jump = false,
|
||||
jump_highlight_duration = 300,
|
||||
center_on_jump = true,
|
||||
show_numbers = false,
|
||||
show_relative_numbers = false,
|
||||
wrap = false,
|
||||
show_cursorline = true,
|
||||
hide_cursor = false,
|
||||
focus_on_open = true,
|
||||
winhl = "",
|
||||
},
|
||||
outline_items = {
|
||||
show_symbol_details = true,
|
||||
show_symbol_lineno = false,
|
||||
highlight_hovered_item = true,
|
||||
auto_set_cursor = true,
|
||||
auto_update_events = {
|
||||
follow = { "CursorMoved" },
|
||||
items = { "InsertLeave", "WinEnter", "BufEnter", "BufWinEnter", "TabEnter", "BufWritePost" },
|
||||
},
|
||||
},
|
||||
guides = {
|
||||
enabled = true,
|
||||
markers = {
|
||||
bottom = "└",
|
||||
middle = "├",
|
||||
vertical = "│",
|
||||
},
|
||||
},
|
||||
symbol_folding = {
|
||||
autofold_depth = 1,
|
||||
auto_unfold = {
|
||||
hovered = true,
|
||||
only = true,
|
||||
},
|
||||
markers = { "", "" },
|
||||
},
|
||||
preview_window = {
|
||||
auto_preview = false,
|
||||
open_hover_on_preview = false,
|
||||
width = 50,
|
||||
min_width = 50,
|
||||
relative_width = true,
|
||||
border = "rounded",
|
||||
winhl = "NormalFloat:",
|
||||
winblend = 0,
|
||||
live = false,
|
||||
},
|
||||
keymaps = {
|
||||
show_help = "?",
|
||||
close = { "<Esc>", "q" },
|
||||
goto_location = "<Cr>",
|
||||
peek_location = "o",
|
||||
goto_and_close = "<S-Cr>",
|
||||
restore_location = "<C-g>",
|
||||
hover_symbol = "<C-space>",
|
||||
toggle_preview = "K",
|
||||
rename_symbol = "r",
|
||||
code_actions = "a",
|
||||
fold = "h",
|
||||
unfold = "l",
|
||||
fold_toggle = "<Tab>",
|
||||
fold_toggle_all = "<S-Tab>",
|
||||
fold_all = "W",
|
||||
unfold_all = "E",
|
||||
fold_reset = "R",
|
||||
down_and_jump = "<C-j>",
|
||||
up_and_jump = "<C-k>",
|
||||
},
|
||||
providers = {
|
||||
priority = { "lsp", "coc", "markdown", "norg" },
|
||||
lsp = {
|
||||
blacklist_clients = {},
|
||||
},
|
||||
},
|
||||
symbols = {
|
||||
filter = nil,
|
||||
icon_fetcher = nil,
|
||||
icon_source = nil,
|
||||
icons = {
|
||||
File = { icon = "", hl = "Identifier" },
|
||||
Module = { icon = "", hl = "Include" },
|
||||
Namespace = { icon = "", hl = "Include" },
|
||||
Package = { icon = "", hl = "Include" },
|
||||
Class = { icon = "", hl = "Type" },
|
||||
Method = { icon = "ƒ", hl = "Function" },
|
||||
Property = { icon = "", hl = "Identifier" },
|
||||
Field = { icon = "", hl = "Identifier" },
|
||||
Constructor = { icon = "", hl = "Special" },
|
||||
Enum = { icon = "", hl = "Type" },
|
||||
Interface = { icon = "", hl = "Type" },
|
||||
Function = { icon = "", hl = "Function" },
|
||||
Variable = { icon = "", hl = "Constant" },
|
||||
Constant = { icon = "", hl = "Constant" },
|
||||
String = { icon = "", hl = "String" },
|
||||
Number = { icon = "#", hl = "Number" },
|
||||
Boolean = { icon = "⊨", hl = "Boolean" },
|
||||
Array = { icon = "", hl = "Constant" },
|
||||
Object = { icon = "", hl = "Type" },
|
||||
Key = { icon = "", hl = "Type" },
|
||||
Null = { icon = "NULL", hl = "Type" },
|
||||
EnumMember = { icon = "", hl = "Identifier" },
|
||||
Struct = { icon = "", hl = "Structure" },
|
||||
Event = { icon = "", hl = "Type" },
|
||||
Operator = { icon = "+", hl = "Identifier" },
|
||||
TypeParameter = { icon = "", hl = "Identifier" },
|
||||
Component = { icon = "", hl = "Function" },
|
||||
Fragment = { icon = "", hl = "Constant" },
|
||||
TypeAlias = { icon = " ", hl = "Type" },
|
||||
Parameter = { icon = " ", hl = "Identifier" },
|
||||
StaticMethod = { icon = " ", hl = "Function" },
|
||||
Macro = { icon = " ", hl = "Function" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
227
lua/cargdev/plugins/overseer.lua
Normal file
227
lua/cargdev/plugins/overseer.lua
Normal file
@@ -0,0 +1,227 @@
|
||||
return {
|
||||
"stevearc/overseer.nvim",
|
||||
cmd = {
|
||||
"OverseerRun",
|
||||
"OverseerToggle",
|
||||
"OverseerOpen",
|
||||
"OverseerClose",
|
||||
"OverseerBuild",
|
||||
"OverseerTaskAction",
|
||||
"OverseerQuickAction",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>or", "<cmd>OverseerRun<cr>", desc = "Run task" },
|
||||
{ "<leader>ot", "<cmd>OverseerToggle<cr>", desc = "Toggle task list" },
|
||||
{ "<leader>oa", "<cmd>OverseerTaskAction<cr>", desc = "Task action" },
|
||||
{ "<leader>oq", "<cmd>OverseerQuickAction<cr>", desc = "Quick action" },
|
||||
{ "<leader>ob", "<cmd>OverseerBuild<cr>", desc = "Build" },
|
||||
{ "<leader>oc", "<cmd>OverseerRunCmd<cr>", desc = "Run shell command" },
|
||||
},
|
||||
opts = {
|
||||
strategy = "terminal",
|
||||
templates = { "builtin" },
|
||||
auto_detect_success_color = true,
|
||||
dap = true,
|
||||
task_list = {
|
||||
default_detail = 1,
|
||||
max_width = { 100, 0.2 },
|
||||
min_width = { 40, 0.1 },
|
||||
width = nil,
|
||||
max_height = { 20, 0.1 },
|
||||
min_height = 8,
|
||||
height = nil,
|
||||
separator = "────────────────────────────────────────",
|
||||
direction = "bottom",
|
||||
bindings = {
|
||||
["?"] = "ShowHelp",
|
||||
["g?"] = "ShowHelp",
|
||||
["<CR>"] = "RunAction",
|
||||
["<C-e>"] = "Edit",
|
||||
["o"] = "Open",
|
||||
["<C-v>"] = "OpenVsplit",
|
||||
["<C-s>"] = "OpenSplit",
|
||||
["<C-f>"] = "OpenFloat",
|
||||
["<C-q>"] = "OpenQuickFix",
|
||||
["p"] = "TogglePreview",
|
||||
["<C-l>"] = "IncreaseDetail",
|
||||
["<C-h>"] = "DecreaseDetail",
|
||||
["L"] = "IncreaseAllDetail",
|
||||
["H"] = "DecreaseAllDetail",
|
||||
["["] = "DecreaseWidth",
|
||||
["]"] = "IncreaseWidth",
|
||||
["{"] = "PrevTask",
|
||||
["}"] = "NextTask",
|
||||
["<C-k>"] = "ScrollOutputUp",
|
||||
["<C-j>"] = "ScrollOutputDown",
|
||||
["q"] = "Close",
|
||||
},
|
||||
},
|
||||
form = {
|
||||
border = "rounded",
|
||||
zindex = 40,
|
||||
min_width = 80,
|
||||
max_width = 0.9,
|
||||
width = nil,
|
||||
min_height = 10,
|
||||
max_height = 0.9,
|
||||
height = nil,
|
||||
win_opts = {
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
task_launcher = {
|
||||
bindings = {
|
||||
i = {
|
||||
["<C-s>"] = "Submit",
|
||||
["<C-c>"] = "Cancel",
|
||||
},
|
||||
n = {
|
||||
["<CR>"] = "Submit",
|
||||
["<C-s>"] = "Submit",
|
||||
["q"] = "Cancel",
|
||||
["?"] = "ShowHelp",
|
||||
},
|
||||
},
|
||||
},
|
||||
task_editor = {
|
||||
bindings = {
|
||||
i = {
|
||||
["<CR>"] = "NextOrSubmit",
|
||||
["<C-s>"] = "Submit",
|
||||
["<Tab>"] = "Next",
|
||||
["<S-Tab>"] = "Prev",
|
||||
["<C-c>"] = "Cancel",
|
||||
},
|
||||
n = {
|
||||
["<CR>"] = "NextOrSubmit",
|
||||
["<C-s>"] = "Submit",
|
||||
["<Tab>"] = "Next",
|
||||
["<S-Tab>"] = "Prev",
|
||||
["q"] = "Cancel",
|
||||
["?"] = "ShowHelp",
|
||||
},
|
||||
},
|
||||
},
|
||||
component_aliases = {
|
||||
default = {
|
||||
{ "display_duration", detail_level = 2 },
|
||||
"on_output_summarize",
|
||||
"on_exit_set_status",
|
||||
"on_complete_notify",
|
||||
"on_complete_dispose",
|
||||
},
|
||||
default_neotest = {
|
||||
"unique",
|
||||
{ "on_complete_notify", system = "unfocused" },
|
||||
"default",
|
||||
},
|
||||
},
|
||||
bundles = {
|
||||
save_task_opts = {
|
||||
bundleable = true,
|
||||
},
|
||||
},
|
||||
preload_components = {},
|
||||
default_template_prompt = "allow",
|
||||
log = {
|
||||
{
|
||||
type = "echo",
|
||||
level = vim.log.levels.WARN,
|
||||
},
|
||||
{
|
||||
type = "file",
|
||||
filename = "overseer.log",
|
||||
level = vim.log.levels.WARN,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local overseer = require("overseer")
|
||||
overseer.setup(opts)
|
||||
|
||||
-- Custom templates for common tasks
|
||||
overseer.register_template({
|
||||
name = "npm run dev",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "npm" },
|
||||
args = { "run", "dev" },
|
||||
name = "npm dev",
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "javascript", "typescript", "typescriptreact", "javascriptreact" },
|
||||
},
|
||||
})
|
||||
|
||||
overseer.register_template({
|
||||
name = "npm run build",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "npm" },
|
||||
args = { "run", "build" },
|
||||
name = "npm build",
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "javascript", "typescript", "typescriptreact", "javascriptreact" },
|
||||
},
|
||||
})
|
||||
|
||||
overseer.register_template({
|
||||
name = "npm test",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "npm" },
|
||||
args = { "test" },
|
||||
name = "npm test",
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "javascript", "typescript", "typescriptreact", "javascriptreact" },
|
||||
},
|
||||
})
|
||||
|
||||
overseer.register_template({
|
||||
name = "Python run file",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "python3" },
|
||||
args = { vim.fn.expand("%:p") },
|
||||
name = "python " .. vim.fn.expand("%:t"),
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "python" },
|
||||
},
|
||||
})
|
||||
|
||||
overseer.register_template({
|
||||
name = "Flutter run",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "flutter" },
|
||||
args = { "run" },
|
||||
name = "flutter run",
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "dart" },
|
||||
},
|
||||
})
|
||||
|
||||
overseer.register_template({
|
||||
name = "Go run",
|
||||
builder = function()
|
||||
return {
|
||||
cmd = { "go" },
|
||||
args = { "run", "." },
|
||||
name = "go run",
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { "go" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
30
lua/cargdev/plugins/package-info.lua
Normal file
30
lua/cargdev/plugins/package-info.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
return {
|
||||
"vuki656/package-info.nvim",
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
ft = "json",
|
||||
opts = {
|
||||
colors = {
|
||||
up_to_date = "#3C4048",
|
||||
outdated = "#d19a66",
|
||||
},
|
||||
icons = {
|
||||
enable = true,
|
||||
style = {
|
||||
up_to_date = "| ",
|
||||
outdated = "| ",
|
||||
},
|
||||
},
|
||||
autostart = true,
|
||||
hide_up_to_date = false,
|
||||
hide_unstable_versions = false,
|
||||
package_manager = "npm",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ns", "<cmd>lua require('package-info').show()<cr>", desc = "Show package info" },
|
||||
{ "<leader>nh", "<cmd>lua require('package-info').hide()<cr>", desc = "Hide package info" },
|
||||
{ "<leader>nu", "<cmd>lua require('package-info').update()<cr>", desc = "Update package" },
|
||||
{ "<leader>nd", "<cmd>lua require('package-info').delete()<cr>", desc = "Delete package" },
|
||||
{ "<leader>ni", "<cmd>lua require('package-info').install()<cr>", desc = "Install package" },
|
||||
{ "<leader>nc", "<cmd>lua require('package-info').change_version()<cr>", desc = "Change version" },
|
||||
},
|
||||
}
|
||||
15
lua/cargdev/plugins/persistence.lua
Normal file
15
lua/cargdev/plugins/persistence.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
"folke/persistence.nvim",
|
||||
event = "BufReadPre",
|
||||
opts = {
|
||||
dir = vim.fn.expand(vim.fn.stdpath("state") .. "/sessions/"),
|
||||
options = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp" },
|
||||
pre_save = nil,
|
||||
save_empty = false,
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>qs", function() require("persistence").load() end, desc = "Restore session" },
|
||||
{ "<leader>ql", function() require("persistence").load({ last = true }) end, desc = "Restore last session" },
|
||||
{ "<leader>qd", function() require("persistence").stop() end, desc = "Don't save session" },
|
||||
},
|
||||
}
|
||||
25
lua/cargdev/plugins/portal.lua
Normal file
25
lua/cargdev/plugins/portal.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
return {
|
||||
"cbochs/portal.nvim",
|
||||
dependencies = { "cbochs/grapple.nvim" },
|
||||
keys = {
|
||||
{ "<leader>pj", "<cmd>Portal jumplist backward<cr>", desc = "Portal jumplist backward" },
|
||||
{ "<leader>pk", "<cmd>Portal jumplist forward<cr>", desc = "Portal jumplist forward" },
|
||||
{ "<leader>pc", "<cmd>Portal changelist backward<cr>", desc = "Portal changelist backward" },
|
||||
{ "<leader>pq", "<cmd>Portal quickfix backward<cr>", desc = "Portal quickfix backward" },
|
||||
},
|
||||
opts = {
|
||||
escape = {
|
||||
["<esc>"] = true,
|
||||
["q"] = true,
|
||||
},
|
||||
window_options = {
|
||||
relative = "cursor",
|
||||
width = 80,
|
||||
height = 4,
|
||||
col = 2,
|
||||
focusable = false,
|
||||
border = "rounded",
|
||||
noautocmd = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
31
lua/cargdev/plugins/precognition.lua
Normal file
31
lua/cargdev/plugins/precognition.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
return {
|
||||
"tris203/precognition.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
startVisible = false,
|
||||
showBlankVirtLine = true,
|
||||
highlightColor = { link = "Comment" },
|
||||
hints = {
|
||||
Caret = { text = "^", prio = 2 },
|
||||
Dollar = { text = "$", prio = 1 },
|
||||
MatchingPair = { text = "%", prio = 5 },
|
||||
Zero = { text = "0", prio = 1 },
|
||||
w = { text = "w", prio = 10 },
|
||||
b = { text = "b", prio = 9 },
|
||||
e = { text = "e", prio = 8 },
|
||||
W = { text = "W", prio = 7 },
|
||||
B = { text = "B", prio = 6 },
|
||||
E = { text = "E", prio = 5 },
|
||||
},
|
||||
gutterHints = {
|
||||
G = { text = "G", prio = 10 },
|
||||
gg = { text = "gg", prio = 9 },
|
||||
PrevParagraph = { text = "{", prio = 8 },
|
||||
NextParagraph = { text = "}", prio = 8 },
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>vp", "<cmd>lua require('precognition').toggle()<cr>", desc = "Toggle Precognition" },
|
||||
{ "<leader>vP", "<cmd>lua require('precognition').peek()<cr>", desc = "Peek Precognition" },
|
||||
},
|
||||
}
|
||||
88
lua/cargdev/plugins/reactive.lua
Normal file
88
lua/cargdev/plugins/reactive.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
return {
|
||||
"rasulomaroff/reactive.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
builtin = {
|
||||
cursorline = true,
|
||||
cursor = true,
|
||||
modemsg = true,
|
||||
},
|
||||
load = { "catppuccin-mocha-cursor", "catppuccin-mocha-cursorline" },
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("reactive").setup(opts)
|
||||
|
||||
-- Custom mode colors
|
||||
require("reactive").add_preset({
|
||||
name = "custom",
|
||||
init = function()
|
||||
vim.opt.guicursor:append("a:ReactiveCursor")
|
||||
end,
|
||||
modes = {
|
||||
n = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#2a2b3c" },
|
||||
CursorLineNr = { fg = "#89b4fa", bg = "#2a2b3c" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#f5e0dc" },
|
||||
},
|
||||
},
|
||||
i = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#1e3a2f" },
|
||||
CursorLineNr = { fg = "#a6e3a1", bg = "#1e3a2f" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#a6e3a1" },
|
||||
},
|
||||
},
|
||||
v = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#2d3654" },
|
||||
CursorLineNr = { fg = "#89b4fa", bg = "#2d3654" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#89b4fa" },
|
||||
},
|
||||
},
|
||||
V = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#2d3654" },
|
||||
CursorLineNr = { fg = "#89b4fa", bg = "#2d3654" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#89b4fa" },
|
||||
},
|
||||
},
|
||||
["\x16"] = { -- Visual Block mode
|
||||
winhl = {
|
||||
CursorLine = { bg = "#2d3654" },
|
||||
CursorLineNr = { fg = "#89b4fa", bg = "#2d3654" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#89b4fa" },
|
||||
},
|
||||
},
|
||||
R = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#3d2a2d" },
|
||||
CursorLineNr = { fg = "#f38ba8", bg = "#3d2a2d" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#f38ba8" },
|
||||
},
|
||||
},
|
||||
c = {
|
||||
winhl = {
|
||||
CursorLine = { bg = "#3d3a2d" },
|
||||
CursorLineNr = { fg = "#f9e2af", bg = "#3d3a2d" },
|
||||
},
|
||||
hl = {
|
||||
ReactiveCursor = { bg = "#f9e2af" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
39
lua/cargdev/plugins/regexplainer.lua
Normal file
39
lua/cargdev/plugins/regexplainer.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
"bennypowers/nvim-regexplainer",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
cmd = { "RegexplainerShow", "RegexplainerToggle" },
|
||||
keys = {
|
||||
{ "<leader>rx", "<cmd>RegexplainerToggle<cr>", desc = "Toggle Regexplainer" },
|
||||
},
|
||||
opts = {
|
||||
mode = "narrative",
|
||||
auto = false,
|
||||
filetypes = {
|
||||
"html",
|
||||
"js",
|
||||
"cjs",
|
||||
"mjs",
|
||||
"ts",
|
||||
"jsx",
|
||||
"tsx",
|
||||
"cjsx",
|
||||
"mjsx",
|
||||
"lua",
|
||||
"python",
|
||||
"java",
|
||||
"go",
|
||||
"rust",
|
||||
},
|
||||
debug = false,
|
||||
display = "popup",
|
||||
mappings = {
|
||||
toggle = "<leader>rx",
|
||||
},
|
||||
narrative = {
|
||||
separator = "\n",
|
||||
},
|
||||
},
|
||||
}
|
||||
154
lua/cargdev/plugins/render-markdown.lua
Normal file
154
lua/cargdev/plugins/render-markdown.lua
Normal file
@@ -0,0 +1,154 @@
|
||||
return {
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
ft = { "markdown", "norg", "rmd", "org" },
|
||||
opts = {
|
||||
enabled = true,
|
||||
max_file_size = 10.0, -- MB
|
||||
render_modes = { "n", "c" },
|
||||
anti_conceal = {
|
||||
enabled = true,
|
||||
ignore = {
|
||||
code_background = true,
|
||||
sign = true,
|
||||
},
|
||||
},
|
||||
heading = {
|
||||
enabled = true,
|
||||
sign = true,
|
||||
position = "overlay",
|
||||
icons = { " ", " ", " ", " ", " ", " " },
|
||||
signs = { " " },
|
||||
width = "full",
|
||||
left_pad = 0,
|
||||
right_pad = 0,
|
||||
min_width = 0,
|
||||
border = false,
|
||||
border_prefix = false,
|
||||
above = "▄",
|
||||
below = "▀",
|
||||
backgrounds = {
|
||||
"RenderMarkdownH1Bg",
|
||||
"RenderMarkdownH2Bg",
|
||||
"RenderMarkdownH3Bg",
|
||||
"RenderMarkdownH4Bg",
|
||||
"RenderMarkdownH5Bg",
|
||||
"RenderMarkdownH6Bg",
|
||||
},
|
||||
foregrounds = {
|
||||
"RenderMarkdownH1",
|
||||
"RenderMarkdownH2",
|
||||
"RenderMarkdownH3",
|
||||
"RenderMarkdownH4",
|
||||
"RenderMarkdownH5",
|
||||
"RenderMarkdownH6",
|
||||
},
|
||||
},
|
||||
code = {
|
||||
enabled = true,
|
||||
sign = true,
|
||||
style = "full",
|
||||
position = "left",
|
||||
language_pad = 0,
|
||||
disable_background = { "diff" },
|
||||
width = "full",
|
||||
left_pad = 0,
|
||||
right_pad = 0,
|
||||
min_width = 0,
|
||||
border = "thin",
|
||||
above = "▄",
|
||||
below = "▀",
|
||||
highlight = "RenderMarkdownCode",
|
||||
highlight_inline = "RenderMarkdownCodeInline",
|
||||
},
|
||||
dash = {
|
||||
enabled = true,
|
||||
icon = "─",
|
||||
width = "full",
|
||||
highlight = "RenderMarkdownDash",
|
||||
},
|
||||
bullet = {
|
||||
enabled = true,
|
||||
icons = { "●", "○", "◆", "◇" },
|
||||
left_pad = 0,
|
||||
right_pad = 0,
|
||||
highlight = "RenderMarkdownBullet",
|
||||
},
|
||||
checkbox = {
|
||||
enabled = true,
|
||||
position = "inline",
|
||||
unchecked = {
|
||||
icon = " ",
|
||||
highlight = "RenderMarkdownUnchecked",
|
||||
},
|
||||
checked = {
|
||||
icon = " ",
|
||||
highlight = "RenderMarkdownChecked",
|
||||
},
|
||||
custom = {
|
||||
todo = { raw = "[-]", rendered = " ", highlight = "RenderMarkdownTodo" },
|
||||
},
|
||||
},
|
||||
quote = {
|
||||
enabled = true,
|
||||
icon = "▋",
|
||||
repeat_linebreak = false,
|
||||
highlight = "RenderMarkdownQuote",
|
||||
},
|
||||
pipe_table = {
|
||||
enabled = true,
|
||||
preset = "heavy",
|
||||
style = "full",
|
||||
cell = "padded",
|
||||
min_width = 0,
|
||||
border = {
|
||||
"┏", "┳", "┓",
|
||||
"┣", "╋", "┫",
|
||||
"┗", "┻", "┛",
|
||||
"┃", "━",
|
||||
},
|
||||
alignment_indicator = "━",
|
||||
head = "RenderMarkdownTableHead",
|
||||
row = "RenderMarkdownTableRow",
|
||||
filler = "RenderMarkdownTableFill",
|
||||
},
|
||||
callout = {
|
||||
note = { raw = "[!NOTE]", rendered = " Note", highlight = "RenderMarkdownInfo" },
|
||||
tip = { raw = "[!TIP]", rendered = " Tip", highlight = "RenderMarkdownSuccess" },
|
||||
important = { raw = "[!IMPORTANT]", rendered = " Important", highlight = "RenderMarkdownHint" },
|
||||
warning = { raw = "[!WARNING]", rendered = " Warning", highlight = "RenderMarkdownWarn" },
|
||||
caution = { raw = "[!CAUTION]", rendered = " Caution", highlight = "RenderMarkdownError" },
|
||||
},
|
||||
link = {
|
||||
enabled = true,
|
||||
image = " ",
|
||||
email = " ",
|
||||
hyperlink = " ",
|
||||
highlight = "RenderMarkdownLink",
|
||||
custom = {
|
||||
web = { pattern = "^http[s]?://", icon = " ", highlight = "RenderMarkdownLink" },
|
||||
},
|
||||
},
|
||||
sign = {
|
||||
enabled = true,
|
||||
highlight = "RenderMarkdownSign",
|
||||
},
|
||||
indent = {
|
||||
enabled = false,
|
||||
per_level = 2,
|
||||
},
|
||||
win_options = {
|
||||
conceallevel = {
|
||||
default = vim.api.nvim_get_option_value("conceallevel", {}),
|
||||
rendered = 3,
|
||||
},
|
||||
concealcursor = {
|
||||
default = vim.api.nvim_get_option_value("concealcursor", {}),
|
||||
rendered = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
57
lua/cargdev/plugins/satellite.lua
Normal file
57
lua/cargdev/plugins/satellite.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
return {
|
||||
"lewis6991/satellite.nvim",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
opts = {
|
||||
current_only = false,
|
||||
winblend = 50,
|
||||
zindex = 40,
|
||||
excluded_filetypes = {
|
||||
"NvimTree",
|
||||
"neo-tree",
|
||||
"lazy",
|
||||
"mason",
|
||||
"help",
|
||||
"terminal",
|
||||
"toggleterm",
|
||||
"TelescopePrompt",
|
||||
"alpha",
|
||||
"dashboard",
|
||||
"Outline",
|
||||
"lspsaga",
|
||||
"spectre_panel",
|
||||
},
|
||||
width = 2,
|
||||
handlers = {
|
||||
cursor = {
|
||||
enable = true,
|
||||
symbols = { "⎺", "⎻", "⎼", "⎽" },
|
||||
},
|
||||
search = {
|
||||
enable = true,
|
||||
symbols = { "━" },
|
||||
},
|
||||
diagnostic = {
|
||||
enable = true,
|
||||
signs = { "-", "=", "≡" },
|
||||
min_severity = vim.diagnostic.severity.HINT,
|
||||
},
|
||||
gitsigns = {
|
||||
enable = true,
|
||||
signs = {
|
||||
add = "│",
|
||||
change = "│",
|
||||
delete = "─",
|
||||
},
|
||||
},
|
||||
marks = {
|
||||
enable = true,
|
||||
show_builtins = false,
|
||||
key = "m",
|
||||
},
|
||||
quickfix = {
|
||||
enable = true,
|
||||
signs = { "-", "=", "≡" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
66
lua/cargdev/plugins/screenkey.lua
Normal file
66
lua/cargdev/plugins/screenkey.lua
Normal file
@@ -0,0 +1,66 @@
|
||||
return {
|
||||
"NStefan002/screenkey.nvim",
|
||||
lazy = false,
|
||||
version = "*",
|
||||
opts = {
|
||||
win_opts = {
|
||||
row = vim.o.lines - vim.o.cmdheight - 1,
|
||||
col = vim.o.columns - 1,
|
||||
relative = "editor",
|
||||
anchor = "SE",
|
||||
width = 40,
|
||||
height = 3,
|
||||
border = "rounded",
|
||||
},
|
||||
compress_after = 3,
|
||||
clear_after = 3,
|
||||
disable = {
|
||||
filetypes = { "toggleterm" },
|
||||
buftypes = { "terminal" },
|
||||
events = false,
|
||||
},
|
||||
show_leader = true,
|
||||
group_mappings = false,
|
||||
display_infront = {},
|
||||
display_behind = {},
|
||||
filter = function(keys)
|
||||
return keys
|
||||
end,
|
||||
keys = {
|
||||
["<TAB>"] = "",
|
||||
["<CR>"] = "",
|
||||
["<ESC>"] = "Esc",
|
||||
["<SPACE>"] = "␣",
|
||||
["<BS>"] = "",
|
||||
["<DEL>"] = "Del",
|
||||
["<LEFT>"] = "",
|
||||
["<RIGHT>"] = "",
|
||||
["<UP>"] = "",
|
||||
["<DOWN>"] = "",
|
||||
["<HOME>"] = "Home",
|
||||
["<END>"] = "End",
|
||||
["<PAGEUP>"] = "PgUp",
|
||||
["<PAGEDOWN>"] = "PgDn",
|
||||
["<INSERT>"] = "Ins",
|
||||
["<F1>"] = "",
|
||||
["<F2>"] = "",
|
||||
["<F3>"] = "",
|
||||
["<F4>"] = "",
|
||||
["<F5>"] = "",
|
||||
["<F6>"] = "",
|
||||
["<F7>"] = "",
|
||||
["<F8>"] = "",
|
||||
["<F9>"] = "",
|
||||
["<F10>"] = "",
|
||||
["<F11>"] = "",
|
||||
["<F12>"] = "",
|
||||
["CTRL"] = "Ctrl",
|
||||
["ALT"] = "Alt",
|
||||
["SUPER"] = "",
|
||||
["<leader>"] = "<leader>",
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>sk", "<cmd>Screenkey<cr>", desc = "Toggle Screenkey" },
|
||||
},
|
||||
}
|
||||
@@ -8,19 +8,26 @@ return {
|
||||
bigfile = { enabled = true },
|
||||
dashboard = {
|
||||
enabled = true,
|
||||
width = 60,
|
||||
width = 40,
|
||||
row = nil,
|
||||
col = nil,
|
||||
pane_gap = 4,
|
||||
pane_gap = 2,
|
||||
autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
preset = {
|
||||
keys = dashboard_config.get_snacks_keys(),
|
||||
header = dashboard_config.get_header_string(),
|
||||
},
|
||||
formats = {
|
||||
key = function(item)
|
||||
return { { item.key, hl = "SnacksDashboardKey" } }
|
||||
end,
|
||||
},
|
||||
sections = {
|
||||
{ padding = 4 },
|
||||
{ section = "header" },
|
||||
{ padding = 2 },
|
||||
{ section = "keys", gap = 1, padding = 0 },
|
||||
{ padding = 1 },
|
||||
{ section = "keys", gap = 1, padding = 1 },
|
||||
{ section = "startup" },
|
||||
},
|
||||
},
|
||||
@@ -31,11 +38,17 @@ return {
|
||||
},
|
||||
input = { enabled = true },
|
||||
lazygit = { enabled = true },
|
||||
notifier = { enabled = true },
|
||||
notifier = {
|
||||
enabled = true,
|
||||
timeout = 3000,
|
||||
style = "minimal",
|
||||
top_down = false,
|
||||
margin = { top = 0, right = 1, bottom = 1 },
|
||||
},
|
||||
picker = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
scroll = { enabled = false },
|
||||
statuscolumn = { enabled = true },
|
||||
terminal = { enabled = true },
|
||||
toggle = { enabled = true },
|
||||
@@ -46,11 +59,9 @@ return {
|
||||
},
|
||||
})
|
||||
|
||||
-- Set up vim.ui.input and vim.ui.select for snacks
|
||||
vim.schedule(function()
|
||||
vim.ui.input = require("snacks.input").input
|
||||
vim.ui.select = require("snacks.picker").select
|
||||
end)
|
||||
|
||||
end,
|
||||
}
|
||||
|
||||
28
lua/cargdev/plugins/ssr.lua
Normal file
28
lua/cargdev/plugins/ssr.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
return {
|
||||
"cshuaimin/ssr.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>sR",
|
||||
function()
|
||||
require("ssr").open()
|
||||
end,
|
||||
mode = { "n", "x" },
|
||||
desc = "Structural search/replace",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
border = "rounded",
|
||||
min_width = 50,
|
||||
min_height = 5,
|
||||
max_width = 120,
|
||||
max_height = 25,
|
||||
adjust_window = true,
|
||||
keymaps = {
|
||||
close = "q",
|
||||
next_match = "n",
|
||||
prev_match = "N",
|
||||
replace_confirm = "<cr>",
|
||||
replace_all = "<leader><cr>",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -43,7 +43,7 @@ return {
|
||||
-- Binaries
|
||||
"exe", "dll", "so", "dylib", "bin", "app", "dmg", "deb", "rpm",
|
||||
-- Other problematic files
|
||||
"lock", "log", "tmp", "temp", "cache", "bak", "backup"
|
||||
"lock", "log", "tmp", "temp", "cache", "bca", "backup"
|
||||
}
|
||||
|
||||
for _, ext in ipairs(skip_extensions) do
|
||||
|
||||
59
lua/cargdev/plugins/tiny-inline-diagnostic.lua
Normal file
59
lua/cargdev/plugins/tiny-inline-diagnostic.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
return {
|
||||
"rachartier/tiny-inline-diagnostic.nvim",
|
||||
event = "LspAttach",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
-- Disable default diagnostics virtual text and auto float
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
float = false, -- Disable automatic float, use manual <leader>sl instead
|
||||
signs = true,
|
||||
underline = true,
|
||||
update_in_insert = false,
|
||||
})
|
||||
|
||||
require("tiny-inline-diagnostic").setup({
|
||||
signs = {
|
||||
left = "",
|
||||
right = "",
|
||||
diag = "●",
|
||||
arrow = " ",
|
||||
up_arrow = " ",
|
||||
vertical = " │",
|
||||
vertical_end = " └",
|
||||
},
|
||||
hi = {
|
||||
error = "DiagnosticError",
|
||||
warn = "DiagnosticWarn",
|
||||
info = "DiagnosticInfo",
|
||||
hint = "DiagnosticHint",
|
||||
arrow = "NonText",
|
||||
background = "CursorLine",
|
||||
mixing_color = "None",
|
||||
},
|
||||
blend = {
|
||||
factor = 0.22,
|
||||
},
|
||||
options = {
|
||||
show_source = true,
|
||||
throttle = 20,
|
||||
softwrap = 30,
|
||||
multiple_diag_under_cursor = true,
|
||||
multilines = true,
|
||||
show_all_diags_on_cursorline = false,
|
||||
enable_on_insert = false,
|
||||
overflow = {
|
||||
mode = "wrap",
|
||||
},
|
||||
format = nil,
|
||||
break_line = {
|
||||
enabled = false,
|
||||
after = 30,
|
||||
},
|
||||
virt_texts = {
|
||||
priority = 2048,
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
18
lua/cargdev/plugins/treesj.lua
Normal file
18
lua/cargdev/plugins/treesj.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
"Wansmer/treesj",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
keys = {
|
||||
{ "<leader>tj", "<cmd>TSJToggle<cr>", desc = "Toggle split/join" },
|
||||
{ "<leader>ts", "<cmd>TSJSplit<cr>", desc = "Split code block" },
|
||||
{ "<leader>tJ", "<cmd>TSJJoin<cr>", desc = "Join code block" },
|
||||
},
|
||||
opts = {
|
||||
use_default_keymaps = false,
|
||||
check_syntax_error = true,
|
||||
max_join_length = 120,
|
||||
cursor_behavior = "hold",
|
||||
notify = true,
|
||||
dot_repeat = true,
|
||||
on_error = nil,
|
||||
},
|
||||
}
|
||||
5
lua/cargdev/plugins/ts-comments.lua
Normal file
5
lua/cargdev/plugins/ts-comments.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
"folke/ts-comments.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {},
|
||||
}
|
||||
24
lua/cargdev/plugins/twilight.lua
Normal file
24
lua/cargdev/plugins/twilight.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
"folke/twilight.nvim",
|
||||
cmd = { "Twilight", "TwilightEnable", "TwilightDisable" },
|
||||
keys = {
|
||||
{ "<leader>zt", "<cmd>Twilight<cr>", desc = "Toggle Twilight" },
|
||||
},
|
||||
opts = {
|
||||
dimming = {
|
||||
alpha = 0.25,
|
||||
color = { "Normal", "#ffffff" },
|
||||
term_bg = "#000000",
|
||||
inactive = false,
|
||||
},
|
||||
context = 10,
|
||||
treesitter = true,
|
||||
expand = {
|
||||
"function",
|
||||
"method",
|
||||
"table",
|
||||
"if_statement",
|
||||
},
|
||||
exclude = {},
|
||||
},
|
||||
}
|
||||
24
lua/cargdev/plugins/undotree.lua
Normal file
24
lua/cargdev/plugins/undotree.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
"mbbill/undotree",
|
||||
cmd = "UndotreeToggle",
|
||||
keys = {
|
||||
{ "<leader>tu", "<cmd>UndotreeToggle<cr>", desc = "Toggle Undotree" },
|
||||
},
|
||||
config = function()
|
||||
vim.g.undotree_WindowLayout = 2
|
||||
vim.g.undotree_SplitWidth = 35
|
||||
vim.g.undotree_DiffpanelHeight = 10
|
||||
vim.g.undotree_SetFocusWhenToggle = 1
|
||||
vim.g.undotree_ShortIndicators = 1
|
||||
vim.g.undotree_TreeNodeShape = "◉"
|
||||
vim.g.undotree_TreeVertShape = "│"
|
||||
vim.g.undotree_TreeSplitShape = "╱"
|
||||
vim.g.undotree_TreeReturnShape = "╲"
|
||||
vim.g.undotree_DiffAutoOpen = 1
|
||||
vim.g.undotree_HighlightChangedText = 1
|
||||
vim.g.undotree_HighlightChangedWithSign = 1
|
||||
vim.g.undotree_HighlightSyntaxAdd = "DiffAdd"
|
||||
vim.g.undotree_HighlightSyntaxChange = "DiffChange"
|
||||
vim.g.undotree_HighlightSyntaxDel = "DiffDelete"
|
||||
end,
|
||||
}
|
||||
55
lua/cargdev/plugins/venv-selector.lua
Normal file
55
lua/cargdev/plugins/venv-selector.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
return {
|
||||
"linux-cultist/venv-selector.nvim",
|
||||
branch = "regexp",
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"mfussenegger/nvim-dap-python",
|
||||
},
|
||||
ft = "python",
|
||||
keys = {
|
||||
{ "<leader>vs", "<cmd>VenvSelect<cr>", desc = "Select Python venv" },
|
||||
{ "<leader>vc", "<cmd>VenvSelectCached<cr>", desc = "Select cached venv" },
|
||||
},
|
||||
opts = {
|
||||
settings = {
|
||||
search = {
|
||||
root = vim.fn.getcwd(),
|
||||
workspace = true,
|
||||
file = true,
|
||||
anaconda_envs = true,
|
||||
anaconda_base = true,
|
||||
pipenv = true,
|
||||
poetry = true,
|
||||
hatch = true,
|
||||
virtualenvs = true,
|
||||
pyenv = true,
|
||||
venv = true,
|
||||
},
|
||||
options = {
|
||||
on_venv_activate_callback = nil,
|
||||
enable_default_searches = true,
|
||||
enable_cached_venvs = true,
|
||||
cached_venv_automatic_activation = true,
|
||||
activate_venv_in_terminal = true,
|
||||
set_environment_variables = true,
|
||||
notify_user_on_venv_activation = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("venv-selector").setup(opts)
|
||||
|
||||
-- Auto-select venv when opening Python files
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "python",
|
||||
callback = function()
|
||||
local venv = vim.fn.findfile("pyproject.toml", vim.fn.getcwd() .. ";")
|
||||
if venv ~= "" then
|
||||
require("venv-selector").retrieve_from_cache()
|
||||
end
|
||||
end,
|
||||
once = true,
|
||||
})
|
||||
end,
|
||||
}
|
||||
37
lua/cargdev/plugins/vim-visual-multi.lua
Normal file
37
lua/cargdev/plugins/vim-visual-multi.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
"mg979/vim-visual-multi",
|
||||
branch = "master",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
init = function()
|
||||
-- Configuration must be set before plugin loads
|
||||
vim.g.VM_default_mappings = 1
|
||||
vim.g.VM_mouse_mappings = 1
|
||||
vim.g.VM_theme = "iceblue"
|
||||
|
||||
vim.g.VM_maps = {
|
||||
["Find Under"] = "<C-d>", -- Like VS Code Ctrl+D
|
||||
["Find Subword Under"] = "<C-d>", -- Like VS Code Ctrl+D
|
||||
["Select All"] = "<C-S-l>", -- Like VS Code Ctrl+Shift+L
|
||||
["Add Cursor Down"] = "<C-Down>", -- Like VS Code
|
||||
["Add Cursor Up"] = "<C-Up>", -- Like VS Code
|
||||
["Skip Region"] = "<C-x>", -- Skip current and go to next
|
||||
["Remove Region"] = "<C-p>", -- Remove current cursor
|
||||
["Undo"] = "u",
|
||||
["Redo"] = "<C-r>",
|
||||
}
|
||||
|
||||
-- Highlight settings
|
||||
vim.g.VM_Mono_hl = "DiffText"
|
||||
vim.g.VM_Extend_hl = "DiffAdd"
|
||||
vim.g.VM_Cursor_hl = "Visual"
|
||||
vim.g.VM_Insert_hl = "DiffChange"
|
||||
|
||||
-- Other settings
|
||||
vim.g.VM_leader = "\\"
|
||||
vim.g.VM_show_warnings = 1
|
||||
vim.g.VM_silent_exit = 0
|
||||
vim.g.VM_quit_after_leaving_insert_mode = 0
|
||||
vim.g.VM_skip_empty_lines = 1
|
||||
vim.g.VM_case_setting = "smart"
|
||||
end,
|
||||
}
|
||||
45
lua/cargdev/plugins/yanky.lua
Normal file
45
lua/cargdev/plugins/yanky.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
return {
|
||||
"gbprod/yanky.nvim",
|
||||
dependencies = { "kkharji/sqlite.lua" },
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
opts = {
|
||||
ring = {
|
||||
history_length = 100,
|
||||
storage = "sqlite",
|
||||
sync_with_numbered_registers = true,
|
||||
cancel_event = "update",
|
||||
},
|
||||
picker = {
|
||||
select = {
|
||||
action = nil,
|
||||
},
|
||||
telescope = {
|
||||
use_default_mappings = true,
|
||||
mappings = nil,
|
||||
},
|
||||
},
|
||||
system_clipboard = {
|
||||
sync_with_ring = true,
|
||||
},
|
||||
highlight = {
|
||||
on_put = true,
|
||||
on_yank = true,
|
||||
timer = 200,
|
||||
},
|
||||
preserve_cursor_position = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank" },
|
||||
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put after" },
|
||||
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put before" },
|
||||
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "GPut after" },
|
||||
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "GPut before" },
|
||||
{ "<c-p>", "<Plug>(YankyPreviousEntry)", desc = "Previous yank" },
|
||||
{ "<c-n>", "<Plug>(YankyNextEntry)", desc = "Next yank" },
|
||||
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put indented after" },
|
||||
{ "[p", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put indented before" },
|
||||
{ "<leader>yh", "<cmd>YankyRingHistory<cr>", desc = "Yank history" },
|
||||
},
|
||||
}
|
||||
55
lua/cargdev/plugins/zen-mode.lua
Normal file
55
lua/cargdev/plugins/zen-mode.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
return {
|
||||
"folke/zen-mode.nvim",
|
||||
dependencies = { "folke/twilight.nvim" },
|
||||
cmd = "ZenMode",
|
||||
keys = {
|
||||
{ "<leader>zz", "<cmd>ZenMode<cr>", desc = "Toggle Zen Mode" },
|
||||
},
|
||||
opts = {
|
||||
window = {
|
||||
backdrop = 0.95,
|
||||
width = 120,
|
||||
height = 1,
|
||||
options = {
|
||||
signcolumn = "no",
|
||||
number = false,
|
||||
relativenumber = false,
|
||||
cursorline = false,
|
||||
cursorcolumn = false,
|
||||
foldcolumn = "0",
|
||||
list = false,
|
||||
},
|
||||
},
|
||||
plugins = {
|
||||
options = {
|
||||
enabled = true,
|
||||
ruler = false,
|
||||
showcmd = false,
|
||||
laststatus = 0,
|
||||
},
|
||||
twilight = { enabled = true },
|
||||
gitsigns = { enabled = false },
|
||||
tmux = { enabled = true },
|
||||
kitty = {
|
||||
enabled = false,
|
||||
font = "+4",
|
||||
},
|
||||
alacritty = {
|
||||
enabled = false,
|
||||
font = "14",
|
||||
},
|
||||
wezterm = {
|
||||
enabled = false,
|
||||
font = "+4",
|
||||
},
|
||||
},
|
||||
on_open = function(win)
|
||||
vim.wo.wrap = true
|
||||
vim.wo.linebreak = true
|
||||
end,
|
||||
on_close = function()
|
||||
vim.wo.wrap = false
|
||||
vim.wo.linebreak = false
|
||||
end,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user