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
|
||||
|
||||
Reference in New Issue
Block a user