Align Lazygit configuration

This commit is contained in:
Fabio Scotto di Santolo
2025-08-14 08:54:11 +02:00
parent 23e8c63308
commit 5e0d5ae0cf
14 changed files with 163 additions and 37 deletions

View File

@@ -15,6 +15,7 @@ autocmd({ "BufWinLeave", "BufWritePost", "WinLeave" }, {
end
end,
})
autocmd("BufWinEnter", {
desc = "Try to load file view if available and enable view saving for real files",
group = view_group,

View File

@@ -17,3 +17,29 @@ map("n", "<leader>p", [["+p]], { noremap = true, silent = true, desc = "Paste fr
-- Markdown menu
map("n", "<leader>M", [["+M]], { noremap = true, silent = true, desc = "Markdown" })
vim.keymap.set("n", "<leader>cc", function()
local file1 = vim.fn.expand("%")
local project_root = vim.fn.systemlist("git rev-parse --show-toplevel")[1]
if project_root == "" then
project_root = vim.fn.getcwd()
end
require("telescope.builtin").find_files({
prompt_title = "Compare with...",
cwd = project_root,
hidden = true,
follow = true,
attach_mappings = function(_, map)
map("i", "<CR>", function(prompt_bufnr)
local actions = require("telescope.actions")
local action_state = require("telescope.actions.state")
local file2 = action_state.get_selected_entry().path
actions.close(prompt_bufnr)
require("user.utils").meld_diff(file1, file2)
end)
return true
end,
})
end, { desc = "Compare with" })

View File

@@ -4,6 +4,10 @@
local opt = vim.opt
-- Encoding
opt.encoding = "utf-8"
opt.fileencoding = "utf-8"
-- Line numbers
opt.number = true
opt.relativenumber = true

View File

@@ -1,5 +1,6 @@
require("nvim-treesitter.configs").setup({
ensure_installed = {
"bash",
"c",
"go",
"gomod",
@@ -9,6 +10,7 @@ require("nvim-treesitter.configs").setup({
"lua",
"markdown",
"python",
"org",
"zig",
},
highlight = {

View File

@@ -0,0 +1,96 @@
return {
{
"mason-org/mason.nvim",
opts = {
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
},
ensure_installed = {
-- LSP servers
"clangd", -- C / C++
"gopls", -- Go
"python-lsp-server", -- Python
"bash-language-server", -- Bash
"zls", -- Zig
"lua-language-server", -- Lua
-- Formatters / Linters
"stylua", -- Lua formatter
"shfmt", -- Shell formatter
"black", -- Python formatter
"clang-format", -- C/C++ formatter
"goimports", -- Go formatter
},
},
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-nvim-lua",
"saadparwaiz1/cmp_luasnip",
"L3MON4D3/LuaSnip",
"onsails/lspkind.nvim", -- icone carine nel completamento
},
opts = function(_, opts)
local cmp = require("cmp")
local luasnip = require("luasnip")
local lspkind = require("lspkind")
-- Carica snippet
require("luasnip.loaders.from_vscode").lazy_load()
opts.snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
}
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
opts.sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "nvim_lua" },
{ name = "buffer" },
{ name = "path" },
})
opts.formatting = {
format = lspkind.cmp_format({
mode = "symbol_text",
maxwidth = 50,
ellipsis_char = "...",
}),
}
return opts
end,
},
}

View File

@@ -16,7 +16,7 @@ return {
null_ls.builtins.formatting.goimports,
-- Zig
null_ls.builtins.formatting.zigfmt,
-- null_ls.builtins.formatting.zigfmt,
-- Lua
null_ls.builtins.formatting.stylua.with({
@@ -24,9 +24,9 @@ return {
"--indent-type",
"Spaces",
"--indent-width",
"4",
"2",
"--column-width",
"100",
"120",
},
}),

View File

@@ -21,15 +21,12 @@ return {
lspconfig.gopls.setup({})
lspconfig.bashls.setup({})
lspconfig.zls.setup({})
-- src: https://docs.astral.sh/ruff/editors/setup/#neovim
lspconfig.ruff.setup({})
lspconfig.pylsp.setup({
settings = {
-- configure plugins in pylsp
pylsp = {
plugins = {
pyflakes = { enabled = false },
pylint = { enabled = false },
pycodestyle = { enabled = false },
},
},

View File

@@ -1,17 +0,0 @@
return {
"mason-org/mason-lspconfig.nvim",
dependencies = {
"mason-org/mason.nvim",
"neovim/nvim-lspconfig",
},
opts = {
ensure_installed = {
"bash-language-server",
"clangd",
"gopls",
"lua_ls",
"pylsp",
"zls",
},
},
}

View File

@@ -1,12 +0,0 @@
return {
"mason-org/mason.nvim",
opts = {
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
},
},
}

View File

@@ -0,0 +1,4 @@
return {
"nvim-neo-tree/neo-tree.nvim",
enabled = false,
}

View File

@@ -0,0 +1,8 @@
return {
"mikavilpas/yazi.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {},
keys = {
{ "<leader>e", "<cmd>Yazi<cr>", desc = "Open Yazi" },
},
}

View File

@@ -0,0 +1,15 @@
-- This file contains all custom functions for integrate external tools.
-- Meld for comparing and merging files
local M = {}
function M.meld_diff(file1, file2)
if not file1 or not file2 then
print("Usage: :lua require'user.utils'.meld_diff('file1', 'file2')")
return
end
local cmd = string.format("meld '%s' '%s' &", file1, file2)
os.execute(cmd)
end
return M