Compare commits

...

10 commits

Author SHA1 Message Date
Fábio André Damas
f3155caa41 Add git browser and disable lazy config auto reload 2025-05-05 09:47:05 +01:00
Fábio André Damas
fde53fcdd0 Install nvim-ufo 2025-04-04 14:59:29 +01:00
77634d7ab9 Add chunk scope config 2025-04-04 02:19:24 +01:00
916f839f86 Change lsplens icons 2025-04-03 01:23:17 +01:00
Fábio André Damas
efbbf79de7 Make DiffDelete more visible since it's shown in hunk preview 2025-04-02 18:33:02 +01:00
Fábio André Damas
60cc9e5ffe Improve diff highlights and add tab keybindings 2025-04-02 10:51:50 +01:00
Fábio André Damas
570f69e551 add harper and alex lsps 2025-04-01 18:05:47 +01:00
Fábio André Damas
07f3d7a0ab remove key-analyzer and add package-info 2025-04-01 10:30:18 +01:00
ef4148a250 change tokyonight config and remove disabled vim-fugitive 2025-04-01 00:40:50 +01:00
e2297e4177 add picker for nvim config 2025-03-31 20:58:04 +01:00
16 changed files with 205 additions and 93 deletions

View file

@ -1,34 +1,37 @@
{ {
"blink.cmp": { "branch": "main", "commit": "49f211fe5d729df53df4c042d7c3464cf47d199e" }, "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" },
"commander.nvim": { "branch": "main", "commit": "84101e8eb1613a72bbdec655b734f891d8a00694" }, "commander.nvim": { "branch": "main", "commit": "84101e8eb1613a72bbdec655b734f891d8a00694" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" }, "gitsigns.nvim": { "branch": "main", "commit": "7ce11abbb8b038a9de4fb6f75d8289c58d81aed7" },
"glance.nvim": { "branch": "master", "commit": "cb19b86349cbe634eec0ea768b9a27fdd6d24f34" }, "glance.nvim": { "branch": "master", "commit": "cb19b86349cbe634eec0ea768b9a27fdd6d24f34" },
"hurl.nvim": { "branch": "main", "commit": "bf00b4ee56dc8026dd7cd068236fb2c01bb1e307" }, "hurl.nvim": { "branch": "main", "commit": "2c3f2151c39d9752ccf802db6d1104bdb1a5565d" },
"key-analyzer.nvim": { "branch": "main", "commit": "72d301fb8843c19d8e69e16e0a0b42256edc25cc" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" }, "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" },
"lspsaga.nvim": { "branch": "main", "commit": "778d56ff9b387dacd14ae648ed5604394b486f51" }, "lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"mini.files": { "branch": "main", "commit": "01001e0cfc1e79f581d055ae3f70fbac96a2f378" }, "mini.files": { "branch": "main", "commit": "01001e0cfc1e79f581d055ae3f70fbac96a2f378" },
"mini.statusline": { "branch": "main", "commit": "1b0edf76fe2af015f8c989385ff949f1db7aade2" }, "mini.statusline": { "branch": "main", "commit": "1b0edf76fe2af015f8c989385ff949f1db7aade2" },
"namu.nvim": { "branch": "main", "commit": "fc9632d7deb81c737577ecfa5879aa3bd1fc0433" }, "namu.nvim": { "branch": "main", "commit": "dce3d5cb82ee6104babac14b1692e746821722d3" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "9b5d67119c46e3262ffe1508fe6d8540b79ad75d" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" },
"neogit": { "branch": "master", "commit": "6d1bd94f7fca92a50a892f494920696b5defa8c8" }, "neogit": { "branch": "master", "commit": "0b9aebe6a51f88d291cbf972b7aad7ad58ea3998" },
"none-ls-extras.nvim": { "branch": "main", "commit": "1214d729e3408470a7b7a428415a395e5389c13c" }, "none-ls-extras.nvim": { "branch": "main", "commit": "924fe88a9983c7d90dbb31fc4e3129a583ea0a90" },
"none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" }, "none-ls.nvim": { "branch": "main", "commit": "7c493a266a6b1ed419f8a2e431651bc15b10df27" },
"nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
"nvim-autopairs": { "branch": "master", "commit": "6522027785b305269fa17088395dfc0f456cedd2" }, "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
"nvim-treesitter": { "branch": "master", "commit": "a3315b8c7f0f1ddaa30b24bcc0af0d31024dfb6a" }, "nvim-lspconfig": { "branch": "master", "commit": "4bc481b6f0c0cf3671fc894debd0e00347089a4e" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4" }, "nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" },
"nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "ed373482db797bbf71bdff37a15c7555a84dce47" },
"nvim-ufo": { "branch": "main", "commit": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf" },
"nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" },
"output-panel.nvim": { "branch": "main", "commit": "9979f9988acb35fd8e699d8b1fbc7aa17c9d8148" }, "output-panel.nvim": { "branch": "main", "commit": "9979f9988acb35fd8e699d8b1fbc7aa17c9d8148" },
"package-info.nvim": { "branch": "master", "commit": "4f1b8287dde221153ec9f2acd46e8237d2d0881e" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"render-markdown.nvim": { "branch": "main", "commit": "e6c8081691881fd63b4d72cb472094ac190ac56e" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"schemastore.nvim": { "branch": "main", "commit": "d307d291f38678d064cb987112926df6d9134de3" }, "render-markdown.nvim": { "branch": "main", "commit": "fa92c30f59afa980708e110824ff0933bc0954e5" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "schemastore.nvim": { "branch": "main", "commit": "d521e71f9d5ac1c29a7653528d4e5c66ffe229c5" },
"snacks.nvim": { "branch": "main", "commit": "51542bb8f43cbd0ca9d2ff3c5ad8a86fd76475a1" },
"telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },

View file

@ -1,24 +1,24 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git" local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({ vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" }, { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" }, { out, "WarningMsg" },
{ "\nPress any key to exit..." }, { "\nPress any key to exit..." },
}, true, {}) }, true, {})
vim.fn.getchar() vim.fn.getchar()
os.exit(1) os.exit(1)
end end
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
require("lazy").setup({ require("lazy").setup({
spec = { change_detection = {
{ import = "plugins" }, enabled = false,
} },
spec = {
{ import = "plugins" },
}
}) })

View file

@ -12,9 +12,14 @@ opt.colorcolumn = "80"
opt.clipboard:append({ "unnamed", "unnamedplus" }) opt.clipboard:append({ "unnamed", "unnamedplus" })
opt.expandtab = true opt.expandtab = true
opt.exrc = true opt.exrc = true
opt.foldmethod = "syntax"
opt.foldcolumn = "1" opt.foldcolumn = "1"
opt.foldlevelstart = 20 opt.foldlevel = 99
opt.foldlevelstart = 99
opt.foldenable = true
opt.fillchars:append({
foldopen = "",
foldclose = "",
})
opt.ignorecase = true opt.ignorecase = true
opt.incsearch = true opt.incsearch = true
opt.inccommand = "split" opt.inccommand = "split"

1
lua/lsp/harper_ls.lua Normal file
View file

@ -0,0 +1 @@
return {}

View file

@ -53,17 +53,25 @@ return {
desc = "Git branches", desc = "Git branches",
}, },
{ {
cmd = ":GV<CR>", cmd = function()
require("neogit").action("log", "log_current", { '--graph', '--decorate', '--color' })()
end,
desc = "Git log", desc = "Git log",
}, },
{ {
cmd = ":Git blame", cmd = function()
require("gitsigns").blame()
end,
desc = "Git blame", desc = "Git blame",
}, },
{ {
cmd = ":DiffviewOpen<CR>", cmd = ":DiffviewOpen<CR>",
desc = "Diff view", desc = "Diff view",
}, },
{
desc = "Diffview since develop branch",
cmd = ":DiffviewOpen develop...<CR>"
},
{ {
cmd = ":UndotreeToggle<CR>", cmd = ":UndotreeToggle<CR>",
desc = "Undotree", desc = "Undotree",
@ -80,24 +88,16 @@ return {
cmd = ":lua Snacks.notifier.show_history()<CR>", cmd = ":lua Snacks.notifier.show_history()<CR>",
desc = "Error/notification history", desc = "Error/notification history",
}, },
{
cmd = ":lua Snacks.gitbrowse()<CR>",
desc = "Show git file in the browser",
},
{ {
cmd = ":lua Snacks.terminal.toggle()<CR>", cmd = ":lua Snacks.terminal.toggle()<CR>",
desc = "Terminal", desc = "Terminal",
keys = { "n", "<leader>t" }, keys = { "n", "<leader>t" },
set = false, set = false,
}, },
{
cmd = ":GitConflicts<CR>",
desc = "Git conflicts to quickfix",
},
{
cmd = ":LastCommitToQuickfix<CR>",
desc = "Last Commit To quickfix",
},
{
cmd = ":ForkToQuickfix<CR>",
desc = "Branch commits to quickfix",
},
{ {
cmd = ":Trouble diagnostics toggle focus=false filter.buf=0<CR>", cmd = ":Trouble diagnostics toggle focus=false filter.buf=0<CR>",
desc = "Diagnostic window (current buffer)", desc = "Diagnostic window (current buffer)",
@ -119,22 +119,9 @@ return {
cmd = ":PackageInfoUpdate<CR>", cmd = ":PackageInfoUpdate<CR>",
desc = "Update package.json dependency", desc = "Update package.json dependency",
}, },
{
cmd = ":CoAuthor<CR>",
desc = "Add Git CoAuthor",
},
{
cmd = ":TailwindConcealToggle<CR>",
desc = "Toggle conceal tailwind classes",
},
{ {
cmd = ":OutputPanel<CR>", cmd = ":OutputPanel<CR>",
desc = "Toggle LSP Output Panel" desc = "Toggle LSP Output Panel"
},
{
cmd = ":KeyAnalyzer",
desc =
"Show diagram of mapped keys under the first parameter key"
} }
}) })

View file

@ -6,12 +6,15 @@ return {
["q"] = "<cmd>DiffviewClose<CR>", ["q"] = "<cmd>DiffviewClose<CR>",
}, },
file_panel = { file_panel = {
["<CR>"] = "<cmd>DiffviewOpenSelected<CR>", -- ["<CR>"] = "<cmd>DiffviewOpenSelected<CR>",
["q"] = "<cmd>DiffviewClose<CR>", ["q"] = "<cmd>DiffviewClose<CR>",
}, },
file_history_panel = { file_history_panel = {
["q"] = "<cmd>DiffviewClose<CR>", ["q"] = "<cmd>DiffviewClose<CR>",
}, },
}, },
} },
init = function()
vim.opt.fillchars:append { diff = "" }
end
} }

View file

@ -1,5 +0,0 @@
return {
"meznaric/key-analyzer.nvim",
opts = {}
}

View file

@ -1,5 +1,20 @@
return { return {
'VidocqH/lsp-lens.nvim', 'VidocqH/lsp-lens.nvim',
opts = {} opts = {
sections = {
definition = function(count)
return "󰀫 Definitions: " .. count
end,
references = function(count)
return "󰈇 References: " .. count
end,
implements = function(count)
return " Implements: " .. count
end,
git_authors = function(latest_author, count)
return "" .. latest_author .. (count - 1 == 0 and "" or (" + " .. count - 1))
end,
}
}
} }

View file

@ -55,10 +55,15 @@ return {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
config = function() config = function()
local lspconfig = require('lspconfig') local lspconfig = require('lspconfig')
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
}
for _, v in ipairs(vim.api.nvim_get_runtime_file('lua/lsp/*', true)) do for _, v in ipairs(vim.api.nvim_get_runtime_file('lua/lsp/*', true)) do
local name = vim.fn.fnamemodify(v, ':t:r') local name = vim.fn.fnamemodify(v, ':t:r')
local cfg = require("lsp/" .. name) local cfg = require("lsp/" .. name)
lspconfig[name].setup(cfg) lspconfig[name].setup(vim.tbl_deep_extend("force", cfg, { capabilities }))
end end
end end
}, },
@ -70,8 +75,8 @@ return {
"lua-language-server", "vtsls", "ruff", "mypy", "black", "lua-language-server", "vtsls", "ruff", "mypy", "black",
"pyright", "tailwindcss-language-server", "pyright", "tailwindcss-language-server",
"eslint-lsp", "lemminx", "gopls", "prettierd", "dotenv-linter", "eslint-lsp", "lemminx", "gopls", "prettierd", "dotenv-linter",
"editorconfig-checker", "proselint", "rust-analyzer", "taplo", "editorconfig-checker", "rust-analyzer", "taplo",
"json-lsp" "json-lsp", "harper-ls", "proselint", "alex"
} }
}, },
config = function(_, opts) config = function(_, opts)
@ -101,7 +106,8 @@ return {
null_ls.builtins.diagnostics.dotenv_linter, null_ls.builtins.diagnostics.dotenv_linter,
null_ls.builtins.diagnostics.editorconfig_checker, null_ls.builtins.diagnostics.editorconfig_checker,
null_ls.builtins.diagnostics.proselint null_ls.builtins.diagnostics.proselint,
null_ls.builtins.diagnostics.alex
}, },
}) })
end end

6
lua/plugins/nvim-ufo.lua Normal file
View file

@ -0,0 +1,6 @@
return {
'kevinhwang91/nvim-ufo',
dependencies = { 'kevinhwang91/promise-async' },
opts = {}
}

View file

@ -0,0 +1,5 @@
return {
"vuki656/package-info.nvim",
dependencies = { "MunifTanjim/nui.nvim" },
opts = {}
}

View file

@ -6,8 +6,16 @@ return { {
opts = { opts = {
notifier = { enabled = true }, notifier = { enabled = true },
terminal = { enabled = true }, terminal = { enabled = true },
indent = { enabled = true, only_scope = true, only_current = false }, indent = {
enabled = true,
only_scope = true,
only_current = false,
chunk = {
enabled = true
}
},
git = { enabled = true }, git = { enabled = true },
gitbrowse = { enabled = true },
bufdelete = { enabled = true }, bufdelete = { enabled = true },
picker = { enabled = true } picker = { enabled = true }
}, },

View file

@ -4,7 +4,14 @@ return {
priority = 1000, priority = 1000,
init = function() init = function()
require("tokyonight").setup({ transparent = true, dim_inactive = true, lualine_bold = true }) require("tokyonight").setup({
vim.cmd("colo tokyonight-night") transparent = false,
end dim_inactive = true,
on_highlights = function(highlights)
-- Make delete sections in diff look better
highlights["DiffDelete"]["fg"] = "#3e415b"
end,
})
vim.cmd.colorscheme "tokyonight-night"
end,
} }

View file

@ -83,7 +83,7 @@ return {
-- * selection_mode: eg 'v' -- * selection_mode: eg 'v'
-- and should return true or false -- and should return true or false
include_surrounding_whitespace = true, include_surrounding_whitespace = true,
}, }
}, },
}) })
end end

View file

@ -1,4 +0,0 @@
return {}
-- return {
-- "tpope/vim-fugitive"
-- }

View file

@ -40,13 +40,49 @@ return {
desc = "Project search" desc = "Project search"
}, },
-- { {
-- "<leader>ds", "<leader>ds",
-- function() function()
-- require("utils.telescope").search_dotfiles() local function pick_cmd_result(picker_opts)
-- end, local git_root = Snacks.git.get_root()
-- desc = "Search dot files 🔭", local function finder(opts, ctx)
-- }, return require("snacks.picker.source.proc").proc({
opts,
{
cmd = picker_opts.cmd,
args = picker_opts.args,
transform = function(item)
-- item.cwd = picker_opts.cwd or git_root
item.file = item.text
end,
},
}, ctx)
end
Snacks.picker.pick {
source = picker_opts.name,
finder = finder,
preview = picker_opts.preview,
title = picker_opts.title,
}
end
local custom_pickers = {}
function custom_pickers.nvim()
pick_cmd_result {
cmd = "fd",
args = { ".", vim.fn.stdpath('config'), "--type", "f" },
name = "nvim config",
title = "Nvim config",
preview = "file",
}
end
custom_pickers.nvim()
end,
desc = "Search dot files 🔭",
},
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "Show documentation" }, { "K", "<cmd>Lspsaga hover_doc<cr>", desc = "Show documentation" },
{ "<C-k>", "<cmd>Lspsaga hover_doc ++keep<cr>", desc = "Show documentation (keep)" }, { "<C-k>", "<cmd>Lspsaga hover_doc ++keep<cr>", desc = "Show documentation (keep)" },
@ -138,6 +174,45 @@ return {
desc = "Git diff current file", desc = "Git diff current file",
}, },
{
"<leader>T",
group = "Tabs"
},
{
"<leader>TT",
"<cmd>tabs<CR>",
desc = "Tabs list"
},
{
"<leader>Tn",
"<cmd>tabnext<CR>",
desc = "Next Tab"
},
{
"<leader>Tp",
"<cmd>tabprevious<CR>",
desc = "Previous Tab"
},
{
"<leader>Tf",
"<cmd>tabfirst<CR>",
desc = "First Tab"
},
{
"<leader>Tl",
"<cmd>tablast<CR>",
desc = "Last Tab"
},
{
"<leader>TN",
"<cmd>tabnew<CR>",
desc = "New Tab"
},
{
"<leader>Tc",
"<cmd>tabclose<CR>",
desc = "Close Tab"
},
{ {
"»", "»",
"]", "]",