67 lines
2.8 KiB
Lua
67 lines
2.8 KiB
Lua
-- English comments only.
|
|
|
|
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
local keymap = vim.keymap.set
|
|
local opts = { silent = true }
|
|
|
|
-- Basic
|
|
keymap("n", "<leader>w", ":w<CR>", opts)
|
|
keymap("n", "<leader>q", ":q<CR>", opts)
|
|
|
|
-- Better window navigation
|
|
keymap("n", "<C-h>", "<C-w>h", opts)
|
|
keymap("n", "<C-j>", "<C-w>j", opts)
|
|
keymap("n", "<C-k>", "<C-w>k", opts)
|
|
keymap("n", "<C-l>", "<C-w>l", opts)
|
|
|
|
-- Resize splits
|
|
keymap("n", "<C-Up>", ":resize -2<CR>", opts)
|
|
keymap("n", "<C-Down>", ":resize +2<CR>", opts)
|
|
keymap("n", "<C-Left>", ":vertical resize -2<CR>", opts)
|
|
keymap("n", "<C-Right>", ":vertical resize +2<CR>", opts)
|
|
|
|
-- Clear search highlight
|
|
keymap("n", "<leader>h", ":nohlsearch<CR>", opts)
|
|
|
|
-- Telescope
|
|
keymap("n", "<leader>ff", "<cmd>Telescope find_files<CR>", opts)
|
|
keymap("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", opts)
|
|
keymap("n", "<leader>fb", "<cmd>Telescope buffers<CR>", opts)
|
|
keymap("n", "<leader>fh", "<cmd>Telescope help_tags<CR>", opts)
|
|
|
|
-- Trouble
|
|
keymap("n", "<leader>xx", "<cmd>TroubleToggle<CR>", opts)
|
|
|
|
vim.keymap.set("n", "<S-l>", ":BufferLineCycleNext<CR>", { silent = true, desc = "Next buffer" })
|
|
vim.keymap.set("n", "<S-h>", ":BufferLineCyclePrev<CR>", { silent = true, desc = "Prev buffer" })
|
|
vim.keymap.set("n", "<leader>bd", ":bdelete<CR>", { silent = true, desc = "Delete buffer" })
|
|
|
|
-- English comments only.
|
|
|
|
local tb = require("telescope.builtin")
|
|
|
|
-- LSP via Telescope (IDE-like)
|
|
vim.keymap.set("n", "<leader>gd", tb.lsp_definitions, { silent = true, desc = "LSP definitions" })
|
|
vim.keymap.set("n", "<leader>gr", tb.lsp_references, { silent = true, desc = "LSP references" })
|
|
vim.keymap.set("n", "<leader>gi", tb.lsp_implementations, { silent = true, desc = "LSP implementations" })
|
|
vim.keymap.set("n", "<leader>gt", tb.lsp_type_definitions, { silent = true, desc = "LSP type definitions" })
|
|
|
|
vim.keymap.set("n", "<leader>ss", tb.lsp_document_symbols, { silent = true, desc = "Document symbols" })
|
|
vim.keymap.set("n", "<leader>sS", tb.lsp_workspace_symbols, { silent = true, desc = "Workspace symbols" })
|
|
|
|
vim.keymap.set("n", "<leader>sd", tb.diagnostics, { silent = true, desc = "Diagnostics (Telescope)" })
|
|
|
|
-- ChatGPT
|
|
vim.keymap.set("n", "<leader>cc", "<cmd>ChatGPT<CR>", { desc = "ChatGPT" })
|
|
vim.keymap.set("n", "<leader>ce", "<cmd>ChatGPTExplain<CR>", { desc = "Explain code" })
|
|
vim.keymap.set("n", "<leader>cf", "<cmd>ChatGPTFix<CR>", { desc = "Fix code" })
|
|
vim.keymap.set("n", "<leader>co", "<cmd>ChatGPTOptimize<CR>", { desc = "Optimize code" })
|
|
vim.keymap.set("n", "<leader>ct", "<cmd>ChatGPTTests<CR>", { desc = "Generate tests" })
|
|
|
|
vim.keymap.set("v", "<leader>ce", "<cmd>ChatGPTExplain<CR>", { desc = "Explain selection" })
|
|
vim.keymap.set("v", "<leader>cf", "<cmd>ChatGPTFix<CR>", { desc = "Fix selection" })
|
|
vim.keymap.set("v", "<leader>co", "<cmd>ChatGPTOptimize<CR>", { desc = "Optimize selection" })
|
|
|