dotfiles/.config/nvim/init.lua

96 lines
4 KiB
Lua

-- Configure Indent Settings
vim.cmd("set expandtab")
vim.cmd("set tabstop=2")
vim.cmd("set softtabstop=2")
vim.cmd("set shiftwidth=2")
-- Configure Navigation Keys
-- This is all handled by the vim-tmux-navigator plugin now
-- Configure Editor Settings
vim.cmd("set number")
vim.cmd("set scrolloff=8")
vim.cmd("set colorcolumn=80,120")
vim.cmd("set splitbelow")
vim.cmd("set splitright")
vim.cmd("set spl=en_us spell")
vim.opt.guifont = "JetBrainsMonoNerdFontMono:14"
-- Configure history
vim.opt.undodir = vim.fn.stdpath("state") .. "/nvim/undo"
vim.cmd("set undofile")
-- Customize window border
vim.diagnostic.config({
float = {
border = "single",
},
})
-- Custom Key Binds
vim.g.mapleader = " "
-- Init Lazy Plugin Manager
require("config.lazy")
-- Configure nvim Keymaps
vim.keymap.set("n", "<leader>r", ":source %<CR>", { desc = "Reload Config" })
vim.keymap.set("n", "<leader>bs", ":vsplit<CR>", { desc = "Vertical Split" })
vim.keymap.set("n", "<leader>vm", ":lua vim.diagnostic.open_float()<CR>", { desc = "Show Diagnostic Message" })
vim.api.nvim_set_keymap("i", "<S-Tab>", "<C-d>", { noremap = true, silent = true })
-- remap yank to system clipboard
vim.keymap.set("n", "<leader>y", '"+y', { desc = "Yank to Clipboard" })
vim.keymap.set("v", "<leader>y", '"+y', { desc = "Yank to Clipboard" })
-- Configure Telescope Keymaps
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Find File" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Grep Files" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Open Editors" })
-- Init Treesitter Syntax Highlighting
--require("config.treesitter")
-- Configure NeoTree (FS View)
vim.keymap.set("n", "<leader>ft", ":Neotree filesystem toggle left<CR>")
-- Configure Copilot
--vim.keymap.set("n", "<leader>cp", ":Copilot panel<CR>", { desc = "Open Copilot Panel" })
vim.keymap.set("n", "<leader>ce", ":Copilot enable<CR>", { desc = "Enable Copilot Completions" })
vim.keymap.set("n", "<leader>cd", ":Copilot disable<CR>", { desc = "Disable Copilot Completions" })
vim.keymap.set("n", "<leader>cc", ":CopilotChatToggle<CR>", { desc = "Toggle Copilot Chat" })
vim.keymap.set("n", "<leader>cx", ":CopilotChatReset<CR>", { desc = "Reset Copilot Chat" })
-- Configure Buffer Navigation
vim.keymap.set("n", "<A-left>", ":BufferPrevious<CR>", { desc = "Previous Buffer" })
vim.keymap.set("n", "<A-right>", ":BufferNext<CR>", { desc = "Next Buffer" })
vim.keymap.set("n", "<c-h>", ":BufferPrevious<CR>", { desc = "Previous Buffer" })
vim.keymap.set("n", "<c-l>", ":BufferNext<CR>", { desc = "Next Buffer" })
vim.keymap.set("n", "<leader>bq", ":BufferClose<CR>", { desc = "Close Buffer" })
vim.keymap.set("n", "<leader>bQ", ":BufferWipeout<CR>", { desc = "Wipeout Buffer" })
vim.keymap.set("n", "<A-q>", ":BufferClose<CR>", { desc = "Close Buffer" })
vim.keymap.set("n", "<leader>bp", ":BufferPrevious<CR>", { desc = "Previous Buffer" })
vim.keymap.set("n", "<leader>bn", ":BufferNext<CR>", { desc = "Next Buffer" })
-- Configure f-key shortcuts
vim.keymap.set("n", "<F1>", vim.lsp.buf.hover)
vim.keymap.set("i", "<F1>", vim.lsp.buf.hover)
vim.keymap.set("n", "<F2>", vim.lsp.buf.rename)
vim.keymap.set("i", "<F2>", vim.lsp.buf.rename)
vim.keymap.set("n", "<F3>", "<c-i>")
vim.keymap.set("i", "<F3>", "<c-i>")
vim.keymap.set("n", "<S-F3>", "<c-o>")
vim.keymap.set("i", "<S-F3>", "<c-o>")
vim.keymap.set("n", "<F4>", ":BufferClose<CR>")
vim.keymap.set("i", "<F4>", ":BufferClose<CR>")
vim.keymap.set("n", "<F7>", ":Gitsigns next_hunk<CR>")
vim.keymap.set("i", "<F7>", ":Gitsigns next_hunk<CR>")
vim.keymap.set("n", "<S-F7>", ":Gitsigns prev_hunk<CR>")
vim.keymap.set("i", "<S-F7>", ":Gitsigns prev_hunk<CR>")
vim.keymap.set("n", "<F8>", vim.diagnostic.goto_next)
vim.keymap.set("i", "<F8>", vim.diagnostic.goto_next)
vim.keymap.set("n", "<S-F8>", vim.diagnostic.goto_prev)
vim.keymap.set("i", "<S-F8>", vim.diagnostic.goto_prev)
vim.keymap.set("n", "<F12>", vim.lsp.buf.definition)
vim.keymap.set("i", "<F12>", vim.lsp.buf.definition)