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:
2026-02-01 15:47:39 -05:00
parent 7e1c4408bd
commit dc86d0eafc
65 changed files with 3778 additions and 472 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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" })

View File

@@ -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" })

View File

@@ -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