addet: colorscheme, git signs and merge tool helper

This commit is contained in:
pika 2025-03-17 13:22:05 +01:00
parent 214141ac85
commit 91efc5bfcd
6 changed files with 231 additions and 70 deletions

View file

@ -28,5 +28,5 @@ git clone --depth=1 https://git.k4li.de/dotfiles/nvim.git $HOME/.config/nvim/
Colorscheme-plugins are defined in [colorschemes.lua](lua/pika/plugins/colorschemes.lua) Colorscheme-plugins are defined in [colorschemes.lua](lua/pika/plugins/colorschemes.lua)
> [!TIP] > [!TIP]
> default theme is [nordic](https://github.com/AlexvZyl/nordic.nvim) </br> > default theme is `monet` </br>
> you can change the theme in the colorscheme function in the [init.lua](./init.lua) > you can change the theme in the colorscheme function in the [init.lua](./init.lua)

View file

@ -6,7 +6,7 @@ require("pika.lazy")
-- │ themes are under ./lua/pika/plugins/colorschemes.lua │ -- │ themes are under ./lua/pika/plugins/colorschemes.lua │
-- ╰──────────────────────────────────────────────────────╯ -- ╰──────────────────────────────────────────────────────╯
vim.cmd.colorscheme("monet") vim.cmd.colorscheme("oldschool")
-- Keybind for saving clipboard screenshot and inserting a Markdown link -- Keybind for saving clipboard screenshot and inserting a Markdown link
vim.api.nvim_set_keymap("n", "<leader>ps", ":lua SaveScreenshotAndInsertLink()<CR>", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "<leader>ps", ":lua SaveScreenshotAndInsertLink()<CR>", { noremap = true, silent = true })

View file

@ -1,6 +1,7 @@
return { return {
{ "folke/tokyonight.nvim" }, { "folke/tokyonight.nvim" },
{ "fynnfluegge/monet.nvim", name = "monet" }, { "fynnfluegge/monet.nvim", name = "monet" },
{ "L-Colombo/oldschool.nvim", config = "true" },
-- { "catppuccin/nvim", name = "catppuccin" }, -- { "catppuccin/nvim", name = "catppuccin" },
-- { "EdenEast/nightfox.nvim" }, -- { "EdenEast/nightfox.nvim" },
-- { "DanWlker/primeppuccin", name = "primeppuccin" }, -- { "DanWlker/primeppuccin", name = "primeppuccin" },

View file

@ -1,16 +1,20 @@
return { return {
-- ─< neotree - fallback >──────────────────────────────────────────────────────────────────────── -- ─< neotree - fallback >────────────────────────────────────────────────────────────────────────
-- { {
-- "nvim-neo-tree/neo-tree.nvim", "nvim-neo-tree/neo-tree.nvim",
-- branch = "v3.x", branch = "v3.x",
-- dependencies = { dependencies = {
-- "nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
-- "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
-- "MunifTanjim/nui.nvim", "MunifTanjim/nui.nvim",
-- -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
-- }, },
-- vim.keymap.set("n", "<leader>e", "<CMD>:Neotree toggle<CR>"), vim.keymap.set("n", "<leader>e", "<CMD>:Neotree toggle<CR>"),
-- }, vim.keymap.set("n", "<leader>Ee", "<CMD>:Neotree left<CR>"),
vim.keymap.set("n", "<leader>Ef", "<CMD>:Neotree float<CR>"),
vim.keymap.set("n", "<leader>Eg", "<CMD>:Neotree git_status float<CR>"),
vim.keymap.set("n", "<leader>Eb", "<CMD>:Neotree buffers position=top<CR>"),
},
---@type LazySpec ---@type LazySpec
{ {
@ -40,7 +44,7 @@ return {
---@type YaziConfig ---@type YaziConfig
opts = { opts = {
-- if you want to open yazi instead of netrw, see below for more info -- if you want to open yazi instead of netrw, see below for more info
open_for_directories = false, open_for_directories = true,
keymaps = { keymaps = {
show_help = "<f1>", show_help = "<f1>",
}, },

212
lua/pika/plugins/git.lua Normal file
View file

@ -0,0 +1,212 @@
return {
{
"tanvirtin/vgit.nvim",
dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons" },
-- Lazy loading on 'VimEnter' event is necessary.
event = "VimEnter",
config = function()
require("vgit").setup(
-- keymaps = {
-- ["n <C-k>"] = {
-- function()
-- require("vgit").hunk_up()
-- end,
-- desc = "VGit Hunk Up",
-- },
-- ["n <C-j>"] = {
-- function()
-- require("vgit").hunk_down()
-- end,
-- desc = "VGit Hunk Down",
-- },
-- ["n <leader>gs"] = {
-- function()
-- require("vgit").buffer_hunk_stage()
-- end,
-- desc = "VGit Stage Hunk",
-- },
-- ["n <leader>gr"] = {
-- function()
-- require("vgit").buffer_hunk_reset()
-- end,
-- desc = "VGit Reset Hunk",
-- },
-- ["n <leader>gp"] = {
-- function()
-- require("vgit").buffer_hunk_preview()
-- end,
-- desc = "VGit Preview Hunk",
-- },
-- ["n <leader>gb"] = {
-- function()
-- require("vgit").buffer_blame_preview()
-- end,
-- desc = "VGit Blame Preview",
-- },
-- ["n <leader>gf"] = {
-- function()
-- require("vgit").buffer_diff_preview()
-- end,
-- desc = "VGit Diff Preview",
-- },
-- ["n <leader>gh"] = {
-- function()
-- require("vgit").buffer_history_preview()
-- end,
-- desc = "VGit History Preview",
-- },
-- ["n <leader>gu"] = {
-- function()
-- require("vgit").buffer_reset()
-- end,
-- desc = "VGit Reset Buffer",
-- },
-- ["n <leader>gcm"] = {
-- function()
-- require("vgit").project_commit_preview()
-- end,
-- desc = "VGit Commit Preview",
-- },
-- ["n <leader>gcc"] = {
-- function()
-- require("vgit").project_commits_preview()
-- end,
-- desc = "VGit Commits Preview",
-- },
-- ["n <leader>gcl"] = {
-- function()
-- require("vgit").project_logs_preview()
-- end,
-- desc = "VGit Logs Preview",
-- },
-- ["n <leader>gd"] = {
-- function()
-- require("vgit").project_diff_preview()
-- end,
-- desc = "VGit Project Diff",
-- },
-- ["n <leader>gx"] = {
-- function()
-- require("vgit").toggle_diff_preference()
-- end,
-- desc = "VGit Toggle Diff Preference",
-- },
-- },
)
end,
vim.keymap.set("n", "<C-k>", function()
require("vgit").hunk_up()
end, { desc = "VGit Hunk Up" }),
vim.keymap.set("n", "<C-j>", function()
require("vgit").hunk_down()
end, { desc = "VGit Hunk Down" }),
vim.keymap.set("n", "<leader>gs", function()
require("vgit").buffer_hunk_stage()
end, { desc = "VGit Stage Hunk" }),
vim.keymap.set("n", "<leader>gr", function()
require("vgit").buffer_hunk_reset()
end, { desc = "VGit Reset Hunk" }),
vim.keymap.set("n", "<leader>gp", function()
require("vgit").buffer_hunk_preview()
end, { desc = "VGit Preview Hunk" }),
vim.keymap.set("n", "<leader>gb", function()
require("vgit").buffer_blame_preview()
end, { desc = "VGit Blame Preview" }),
vim.keymap.set("n", "<leader>gf", function()
require("vgit").buffer_diff_preview()
end, { desc = "VGit Diff Preview" }),
vim.keymap.set("n", "<leader>gh", function()
require("vgit").buffer_history_preview()
end, { desc = "VGit History Preview" }),
vim.keymap.set("n", "<leader>gu", function()
require("vgit").buffer_reset()
end, { desc = "VGit Reset Buffer" }),
vim.keymap.set("n", "<leader>gcm", function()
require("vgit").project_commit_preview()
end, { desc = "VGit Commit Preview" }),
vim.keymap.set("n", "<leader>gcc", function()
require("vgit").project_commits_preview()
end, { desc = "VGit Commits Preview" }),
vim.keymap.set("n", "<leader>gcl", function()
require("vgit").project_logs_preview()
end, { desc = "VGit Logs Preview" }),
vim.keymap.set("n", "<leader>gd", function()
require("vgit").project_diff_preview()
end, { desc = "VGit Project Diff" }),
vim.keymap.set("n", "<leader>gx", function()
require("vgit").toggle_diff_preference()
end, { desc = "VGit Toggle Diff Preference" }),
},
{
"lewis6991/gitsigns.nvim",
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signs_staged = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
linehl = true, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true,
},
auto_attach = true,
attach_to_untracked = false,
current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 300,
ignore_whitespace = true,
virt_text_priority = 100,
},
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = "single",
style = "minimal",
relative = "cursor",
row = 0,
col = 1,
},
vim.keymap.set("n", "<leader>gr", "<cmd>Gitsigns refresh<CR>", { desc = "Gitsigns Refresh" }),
vim.keymap.set("n", "<leader>gs", "<cmd>Gitsigns toggle_signs<CR>", { desc = "Gitsigns ToggleSigns" }),
vim.keymap.set("n", "<leader>gl", "<cmd>Gitsigns toggle_linehl<CR>", { desc = "Gitsigns ToggleLine" }),
vim.keymap.set("n", "<leader>gw", "<cmd>Gitsigns toggle_word_diff<CR>", { desc = "Gitsigns ToggleWord" }),
},
},
}

View file

@ -1,56 +0,0 @@
return {
"lewis6991/gitsigns.nvim",
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signs_staged = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true,
},
auto_attach = true,
attach_to_untracked = false,
current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = true,
virt_text_priority = 100,
},
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = "single",
style = "minimal",
relative = "cursor",
row = 0,
col = 1,
},
vim.keymap.set("n", "<leader>gs", "<cmd>Gitsigns toggle_signs<CR>"),
vim.keymap.set("n", "<leader>gr", "<cmd>Gitsigns refresh<CR>"),
vim.keymap.set("n", "<leader>gl", "<cmd>Gitsigns toggle_linehl<CR>"),
vim.keymap.set("n", "<leader>gw", "<cmd>Gitsigns toggle_word_diff<CR>"),
},
}