From eaf3ff77e97ca6a6ad69b764197a7aa0d40fd3fb Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L de Mello" Date: Wed, 10 Dec 2025 17:51:53 -0300 Subject: [PATCH] feat(plugins): appearance settings and theme --- lua/dot/init.lua | 93 +++++++++++++++++++++++++++++++++++++++++++++ lua/dot/plugins.lua | 55 +++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) diff --git a/lua/dot/init.lua b/lua/dot/init.lua index 2187b31..abefb00 100644 --- a/lua/dot/init.lua +++ b/lua/dot/init.lua @@ -28,6 +28,9 @@ vim.o.breakindent = true vim.o.list = true vim.opt.listchars = { tab = "│ ", trail = ".", nbsp = "␣" } +-- Theme +vim.cmd.colorscheme("catppuccin") + ---- -- Mouse support @@ -86,6 +89,96 @@ vim.diagnostic.config({ require("dot.keymaps") +require("nvim-treesitter.configs").setup({ + auto_install = false, + highlight = { enable = true }, + indent = { enable = true }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "", + node_incremental = "", + scope_incremental = "", + node_decremental = "", + }, + }, + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + ["aa"] = "@parameter.outer", + ["ia"] = "@parameter.inner", + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ac"] = "@class.outer", + ["ic"] = "@class.inner", + }, + }, + move = { + enable = true, + set_jumps = true, + goto_next_start = { + ["]m"] = "@function.outer", + ["]]"] = "@class.outer", + }, + goto_next_end = { + ["]M"] = "@function.outer", + ["]["] = "@class.outer", + }, + goto_previous_start = { + ["[m"] = "@function.outer", + ["[["] = "@class.outer", + }, + goto_previous_end = { + ["[M"] = "@function.outer", + ["[]"] = "@class.outer", + }, + }, + }, + textsubjects = { + enable = true, + prev_selection = ",", + keymaps = { + ["."] = "textsubjects-smart", + [";"] = "textsubjects-container-outer", + ["i;"] = "textsubjects-container-inner", + }, + }, + swap = { + enable = true, + swap_next = { + ["a"] = "@parameter.inner", + }, + swap_previous = { + ["A"] = "@parameter.inner", + }, + }, + playground = { + enable = true, + disable = {}, + updatetime = 25, + persist_queries = false, + keybindings = { + toggle_query_editor = "o", + toggle_hl_groups = "i", + toggle_injected_languages = "t", + toggle_anonymous_nodes = "a", + toggle_language_display = "I", + focus_language = "f", + unfocus_language = "F", + update = "R", + goto_node = "", + show_help = "?", + }, + }, + query_linter = { + enable = true, + use_virtual_text = true, + lint_events = { "BugWrite", "CursorHold" }, + }, +}) + vim.api.nvim_create_autocmd("TextYankPost", { desc = "Highlight when yanking text", group = vim.api.nvim_create_augroup("dot-highlight-yank", { clear = true }), diff --git a/lua/dot/plugins.lua b/lua/dot/plugins.lua index 991624c..66bd160 100644 --- a/lua/dot/plugins.lua +++ b/lua/dot/plugins.lua @@ -249,4 +249,59 @@ lze.load({ event = "BufEnter", }, + -- Treesitter + { + "nvim-treesitter", + dep_of = "indent-blankline.nvim", + on_require = "nvim-treesitter", + }, + { "nvim-treesitter-textobjects", dep_of = "nvim-treesitter" }, + { "nvim-treesitter-textsubjects", dep_of = "nvim-treesitter" }, + + -- Appearance + { + "catppuccin-nvim", + after = function() + require("catppuccin").setup({ + flavour = "mocha", + transparent_background = true, + }) + end, + }, + { + "indent-blankline.nvim", + after = function() + require("ibl").setup() + end, + event = "BufEnter", + }, + + -- Git signs + { + "gitsigns.nvim", + after = function() + require("gitsigns").setup({ + signs = { + add = { text = "+" }, + change = { text = "~" }, + delete = { text = "+" }, + topdelete = { text = "-" }, + changedelete = { text = "~" }, + }, + current_line_blame = false, + current_line_blame_opts = { + delay = 0, + }, + }) + end, + cmd = "Gitsigns", + keys = { + { + "gt", + ":Gitsigns toggle_current_line_blame", + desc = "[Git] Toggle line blame", + }, + }, + lazy = not (#vim.fs.root(0, ".git") > 0), + }, })