Skip to content

Commit

Permalink
Merge pull request #14 from albertogg/update-nvim-plugins
Browse files Browse the repository at this point in the history
Update nvim plugins
  • Loading branch information
albertogg authored Dec 23, 2024
2 parents a692cee + 6faec62 commit 29a60c0
Showing 1 changed file with 143 additions and 53 deletions.
196 changes: 143 additions & 53 deletions config/nvim/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,29 @@ require("lazy").setup({
end,
},

{
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
preset = "classic",
icons = {
-- set to false to disable all mapping icons,
-- both those explicitly added in a mapping
-- and those from rules
mappings = false,
},
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
},

-- telescope (fuzzy finder)
{
"nvim-telescope/telescope.nvim",
Expand All @@ -65,22 +88,7 @@ require("lazy").setup({
pickers = {
find_files = {
-- `hidden = true` will still show the inside of `.git/` as it's not `.gitignore`d.
find_command = {
"rg",
"--no-ignore",
"--hidden",
"--files",
"--glob",
"!**/.git/*",
"--glob",
"!**/node_modules/*",
"--glob",
"!**/venv/*",
"--glob",
"!**/vendor/*",
"--glob",
"!**/target/*",
},
find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" },
},
},
})
Expand All @@ -89,7 +97,18 @@ require("lazy").setup({

-- file explorer
{
"tpope/vim-vinegar",
"stevearc/oil.nvim",
opts = {},

config = function ()
require("oil").setup({
view_options = {
show_hidden = true,
},

vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
})
end
},

-- unix shell commands
Expand All @@ -109,24 +128,31 @@ require("lazy").setup({
on_attach = function(bufnr)
local gs = package.loaded.gitsigns

local opts = { buffer = bufnr }

-- Actions
vim.keymap.set("n", "<leader>gb", function() gs.blame_line{full=true} end, opts)
vim.keymap.set("n", "<leader>gtb", gs.toggle_current_line_blame, opts)
vim.keymap.set("n", "<leader>gdt", gs.diffthis, opts)
vim.keymap.set("n", "<leader>gdd", function() gs.diffthis("~") end, opts)
vim.keymap.set("n", "<leader>gtd", gs.toggle_deleted, opts)
vim.keymap.set("v", "<leader>gs", function() gs.stage_hunk {vim.fn.line("."), vim.fn.line("v")} end, opts)
vim.keymap.set("v", "<leader>gr", function() gs.reset_hunk {vim.fn.line("."), vim.fn.line("v")} end, opts)
vim.keymap.set("n", "<leader>gb", function() gs.blame_line{full=true} end, { buffer = bufnr, desc = "Git [B]lame" })
vim.keymap.set("n", "<leader>gtb", gs.toggle_current_line_blame, { buffer = bufnr, desc = "Git [T]oggle Blame" })
vim.keymap.set("n", "<leader>gdt", gs.diffthis, { buffer = bufnr, desc = "Git [D]iff This" })
vim.keymap.set("n", "<leader>gdd", function() gs.diffthis("~") end, { buffer = bufnr, desc = "Git [D]iff" })
vim.keymap.set("n", "<leader>gtd", gs.toggle_deleted, { buffer = bufnr, desc = "Git [T]oggle Deleted" })
vim.keymap.set("v", "<leader>gs", function() gs.stage_hunk {vim.fn.line("."), vim.fn.line("v")} end, { buffer = bufnr, desc = "Git [S]tage" })
vim.keymap.set("v", "<leader>gr", function() gs.reset_hunk {vim.fn.line("."), vim.fn.line("v")} end, { buffer = bufnr, desc = "Git [R]eset" })

-- Text object
vim.keymap.set({"o", "x"}, "ih", ":<C-U>Gitsigns select_hunk<CR>", opts)
vim.keymap.set({"o", "x"}, "ih", ":<C-U>Gitsigns select_hunk<CR>", { buffer = bufnr, desc = "Select [H]unk" })
end
}
end,
},

{
"sindrets/diffview.nvim",
config = function()
require("diffview").setup({
use_icons = false,
})
end,
},

-- commenting out lines
{
"numToStr/Comment.nvim",
Expand All @@ -135,6 +161,17 @@ require("lazy").setup({
end,
},

{
"ellisonleao/glow.nvim",
cmd = "Glow",
config = function()
require("glow").setup({
style = "dark",
width = 120,
})
end,
},

-- testing framework
{
"vim-test/vim-test",
Expand Down Expand Up @@ -196,8 +233,10 @@ require("lazy").setup({
local mason_lspconfig = require("mason-lspconfig")
mason_lspconfig.setup {
ensure_installed = {
"pyright",
"lua_ls",
"rust_analyzer",
"pyright",
"ts_ls",
},
}

Expand Down Expand Up @@ -226,17 +265,18 @@ require("lazy").setup({

local lspconfig = require("lspconfig")

lspconfig.pyright.setup {
capabilities = capabilities,
}
-- Lua
lspconfig.lua_ls.setup {}

-- Rust
lspconfig.rust_analyzer.setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
["rust-analyzer"] = {},
},
}

-- Go
lspconfig.gopls.setup {
flags = { debounce_text_changes = 200 },
settings = {
Expand Down Expand Up @@ -276,8 +316,58 @@ require("lazy").setup({
},
},
}

-- Python
lspconfig.pyright.setup {
capabilities = capabilities,
}

-- JavaScript TypeScript.
lspconfig.ts_ls.setup {}
end,
},

-- CopilotChat.vim with Copilot
{
"CopilotC-Nvim/CopilotChat.nvim",
dependencies = {
{ "github/copilot.vim" }, -- or zbirenbaum/copilot.lua
{ "nvim-lua/plenary.nvim" }, -- for curl, log and async functions
},
build = "make tiktoken", -- Only on MacOS or Linux
event = "VeryLazy",
opts = {
-- See Configuration section for options
model = "claude-3.5-sonnet",
window = {
layout = 'float',
relative = 'cursor',
width = 0.5,
height = 0.5,
},
},
-- See Commands section for default commands if you want to lazy load on them
keys = {
{
"<leader>ccq",
function()
local input = vim.fn.input("Quick Chat: ")
if input ~= "" then
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
end
end,
desc = "CopilotChat - Quick chat",
},
{
"<leader>ccp",
function()
local actions = require("CopilotChat.actions")
require("CopilotChat.integrations.telescope").pick(actions.prompt_actions())
end,
desc = "CopilotChat - Prompt actions",
},
},
},
})

--------------------
Expand Down Expand Up @@ -349,6 +439,12 @@ vim.keymap.set("n", "<C-m>", "<cmd>cprev<CR>zz")
-- remove search highlight
vim.keymap.set("n", "<leader>*", ":nohlsearch<CR>", { noremap = true, silent = true })

-- Diagnostic keymaps
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" })
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" })
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })

-- default augroup
local augroup = vim.api.nvim_create_augroup
local DefaultGroup = augroup("DefaultGroup", {})
Expand All @@ -364,13 +460,13 @@ autocmd("BufWritePre", {

-- telescope
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>.", builtin.find_files, {})
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
vim.keymap.set("n", "<leader>fb", builtin.buffers, {})
vim.keymap.set("n", "<leader>.", builtin.find_files, { desc = "Telescope - [.] Find Files" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Telescope - [G]rep" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Telescope - [B]uffers" })

-- vim-test
vim.keymap.set("n", "<leader>tt", ":TestNearest -v<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>tf", ":TestFile -v<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>tt", ":TestNearest -v<CR>", { noremap = true, silent = true, desc = "Test [T]est Nearest" })
vim.keymap.set("n", "<leader>tf", ":TestFile -v<CR>", { noremap = true, silent = true, desc = "Test [T]est File" })

-- file format based on file type
autocmd("FileType", {
Expand Down Expand Up @@ -408,26 +504,20 @@ vim.api.nvim_create_autocmd("LspAttach", {
callback = function(ev)
-- Buffer local mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local opts = { buffer = ev.buf }

vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
vim.keymap.set("n", "<leader>v", "<cmd>vsplit | lua vim.lsp.buf.definition()<CR>", opts)
vim.keymap.set("n", "<leader>s", "<cmd>belowright split | lua vim.lsp.buf.definition()<CR>", opts)

vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
vim.keymap.set("n", "<leader>cl", vim.lsp.codelens.run, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
vim.keymap.set({"n", "v"}, "<leader>ca", vim.lsp.buf.code_action, opts)
vim.keymap.set("n", "<leader>v", "<cmd>vsplit | lua vim.lsp.buf.definition()<CR>", { buffer = ev.buf, desc = "Go to [V]ertical split definition" })
vim.keymap.set("n", "<leader>s", "<cmd>belowright split | lua vim.lsp.buf.definition()<CR>", { buffer = ev.buf, desc = "Go to [S]plit definition" })
vim.keymap.set("n", "<leader>cl", vim.lsp.codelens.run, { buffer = ev.buf, desc = "Run [C]ode lens" })
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "[R]ename" })
vim.keymap.set({"n", "v"}, "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code [A]ction" })

vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", { buffer = ev.buf, desc = "Go to [D]efinition" })
vim.keymap.set("n", "gr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Go to [R]eferences" })
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Go to [D]eclaration" })
vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Show [K]ind of symbol" })
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { buffer = ev.buf, desc = "Go to [I]mplementation" })
end,
})

-- vim-test
vim.keymap.set("n", "<leader>tf", ":TestFile -v<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>tt", ":TestNearest -v<CR>", { noremap = true, silent = true })

-- automatically resize all vim buffers if I resize the terminal window
vim.api.nvim_command("autocmd VimResized * wincmd =")

Expand Down

0 comments on commit 29a60c0

Please sign in to comment.