diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/menus/colors.lua | 17 | ||||
| -rw-r--r-- | lua/menus/oil.lua | 101 | ||||
| -rw-r--r-- | lua/pi/completition/blink.lua | 0 | ||||
| -rw-r--r-- | lua/pi/completition/init.lua | 240 | ||||
| -rw-r--r-- | lua/pi/completition/init_new.lua | 0 | ||||
| -rw-r--r-- | lua/pi/dap/configs/javascript.lua | 28 | ||||
| -rw-r--r-- | lua/pi/lsp/default.lua | 1 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/clangd.lua | 2 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/emmet_ls.lua | 2 | ||||
| -rw-r--r-- | lua/plugins/close-buffer.lua | 2 | ||||
| -rw-r--r-- | lua/plugins/codecompanion.lua | 260 | ||||
| -rw-r--r-- | lua/plugins/colorscheme.lua | 176 | ||||
| -rw-r--r-- | lua/plugins/completition.lua | 115 | ||||
| -rw-r--r-- | lua/plugins/dap.lua | 15 | ||||
| -rw-r--r-- | lua/plugins/database.lua | 26 | ||||
| -rw-r--r-- | lua/plugins/deadcolumn.lua | 5 | ||||
| -rw-r--r-- | lua/plugins/dressing.lua | 228 | ||||
| -rw-r--r-- | lua/plugins/duck.lua | 12 | ||||
| -rw-r--r-- | lua/plugins/easy-align.lua | 4 | ||||
| -rw-r--r-- | lua/plugins/llm.lua | 55 | ||||
| -rw-r--r-- | lua/plugins/markview.lua | 3 | ||||
| -rw-r--r-- | lua/plugins/menu.lua | 45 | ||||
| -rw-r--r-- | lua/plugins/minty.lua | 10 | ||||
| -rw-r--r-- | lua/plugins/orgmode.lua | 17 | ||||
| -rw-r--r-- | lua/plugins/vimtex.lua | 17 |
25 files changed, 656 insertions, 725 deletions
diff --git a/lua/menus/colors.lua b/lua/menus/colors.lua new file mode 100644 index 0000000..a2f5553 --- /dev/null +++ b/lua/menus/colors.lua @@ -0,0 +1,17 @@ +return { + { + name = "Shades (explorar paletas)", + cmd = function() + vim.cmd("Shades") + end, + rtxt = "Shades", + }, + + { + name = "Huefy (selector de color)", + cmd = function() + require("minty.huefy").open() + end, + rtxt = "Huefy", + }, +} diff --git a/lua/menus/oil.lua b/lua/menus/oil.lua new file mode 100644 index 0000000..5c7594c --- /dev/null +++ b/lua/menus/oil.lua @@ -0,0 +1,101 @@ +return { + { + name = "Abrir Oil en cwd", + cmd = function() + vim.cmd.Oil() + end, + rtxt = ":Oil", + }, + + { + name = "Abrir Oil flotante", + cmd = function() + local oil = require("oil") + oil.open_float() + end, + rtxt = "float", + }, + + { name = "separator" }, + + { + name = "Refrescar", + cmd = function() + require("oil.actions").refresh.callback() + end, + rtxt = "gr", + }, + + { + name = "Padre (-)", + cmd = function() + require("oil.actions").parent.callback() + end, + rtxt = "-", + }, + + { + name = "Toggle ocultos", + cmd = function() + require("oil.actions").toggle_hidden.callback() + end, + rtxt = "g.", + }, + + { name = "separator" }, + + { + name = "Nueva carpeta", + cmd = function() + require("oil.actions").create.callback() + end, + rtxt = "+d", + }, + { + name = "Renombrar", + cmd = function() + require("oil.actions").rename.callback() + end, + rtxt = "rn", + }, + { + name = "Eliminar", + cmd = function() + require("oil.actions").delete.callback() + end, + rtxt = "dd", + }, + + { name = "separator" }, + + { + name = "Abrir en split", + cmd = function() + require("oil.actions").select_split.callback() + end, + rtxt = "<C-h>", + }, + { + name = "Abrir en vsplit", + cmd = function() + require("oil.actions").select_vsplit.callback() + end, + rtxt = "<C-s>", + }, + { + name = "Abrir en tab", + cmd = function() + require("oil.actions").select_tab.callback() + end, + rtxt = "<C-t>", + }, + + { name = "separator" }, + + { + name = "Terminal aquí", + cmd = function() + require("oil.actions").open_terminal.callback() + end, + }, +} diff --git a/lua/pi/completition/blink.lua b/lua/pi/completition/blink.lua new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lua/pi/completition/blink.lua diff --git a/lua/pi/completition/init.lua b/lua/pi/completition/init.lua index 73f13d1..4f93269 100644 --- a/lua/pi/completition/init.lua +++ b/lua/pi/completition/init.lua @@ -1,238 +1,2 @@ -local cmp = require "cmp" -local lspkind = require "lspkind" -local luasnip = require "luasnip" -local cmp_autopairs = require "nvim-autopairs.completion.cmp" -local compare = require "cmp.config.compare" - -cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } }) - -cmp.setup { - window = { - completion = { - border = "rounded", - -- winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None', - -- winblend = vim.o.pumblend, - -- scrolloff = 0, - -- col_offset = 0, - -- side_padding = 1, - -- scrollbar = true, - }, - documentation = { - -- max_height = math.floor(WIDE_HEIGHT * (WIDE_HEIGHT / vim.o.lines)), - -- max_width = math.floor((WIDE_HEIGHT * 2) * (vim.o.columns / (WIDE_HEIGHT * 2 * 16 / 9))), - border = "rounded", - -- winhighlight = 'FloatBorder:NormalFloat', - -- winblend = vim.o.pumblend, - }, - }, - mapping = { - ["<C-d>"] = cmp.mapping.scroll_docs(-4), - ["<C-f>"] = cmp.mapping.scroll_docs(4), - ["<C-e>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.close() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { "i", "s" }), - ["<C-n>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.choice_active() then - luasnip.change_choice(1) - else - fallback() - end - end, { "i", "s" }), - ["<C-p>"] = cmp.mapping.select_prev_item(), - ["<C-l>"] = cmp.mapping.select_next_item(), - ["<C-y>"] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Insert, - select = true, - }, - ["<c-space>"] = cmp.mapping.complete(), - }, - sources = { - { name = "dictionary", keyword_length = 2 }, - { name = "nvim_lua" }, - { name = "nvim_lsp" }, - { name = "path" }, - { name = "luasnip" }, - { name = "copilot" }, - { name = "vimtex" }, - -- { name = 'cmp_ai' }, - { - name = "html-css", - option = { - spa = { - enable = false, -- SPA mode is disabled by default - entry_file = "index.html", -- if entry_file is omitted, it defaults to index.html in root dir - }, - max_count = {}, -- not ready yet - enable_on = { "html", "css" }, -- set the file types you want the plugin to work on - file_extensions = { "css", "sass", "less" }, -- set the local filetypes from which you want to derive classes - style_sheets = { - -- example of remote styles, only css no js for now - "https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css", - "https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css", - }, - }, - }, - { - name = "buffer", - keyword_length = 4, - option = { - get_bufnrs = function() - local bufs = {} - for _, win in ipairs(vim.api.nvim_list_wins()) do - local bufnr = vim.api.nvim_win_get_buf(win) - local buftype = vim.api.nvim_get_option_value("buftype", { buf = bufnr }) - if buftype ~= "terminal" then - bufs[bufnr] = true - end - end - return vim.tbl_keys(bufs) - end, - }, - }, - }, - - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - - formatting = { - format = function(entry, vim_item) - if entry.source.name == "html-css" then - source_mapping["html-css"] = "[" .. entry.completion_item.provider .. "]" or "[html-css]" - end - local KIND_ICONS = { - Tailwind = "", - Copilot = "", - CodeCompanion = "", - Ollama = "", - Text = "", - Method = "", - Function = "", - Constructor = "", - Field = "", - Variable = "", - Class = "", - Interface = "", - Module = "", - Property = "", - Unit = "", - Value = "", - Enum = "", - Keyword = "", - Snippet = "", - Color = "", - File = "", - Reference = "", - Folder = "", - EnumMember = "", - Constant = "", - Struct = "", - Event = "", - Operator = "", - Codeium = "", - TypeParameter = "", - OpenAI = "", - TinyLlama = "", - LlamaCPP = "", - } - - if vim_item.kind == "Color" and entry.completion_item.documentation then - local _, _, r, g, b = - ---@diagnostic disable-next-line: param-type-mismatch - string.find(entry.completion_item.documentation, "^rgb%((%d+), (%d+), (%d+)") - - if r and g and b then - local color = string.format("%02x", r) .. string.format("%02x", g) .. string.format("%02x", b) - local group = "Tw_" .. color - - if vim.api.nvim_call_function("hlID", { group }) < 1 then - vim.api.nvim_command("highlight" .. " " .. group .. " " .. "guifg=#" .. color) - end - - vim_item.kind = KIND_ICONS.Tailwind - vim_item.kind_hl_group = group - - return vim_item - end - end - - vim_item.kind = KIND_ICONS[vim_item.kind] or vim_item.kind - -- Add maxwidth and ellipsis_char in the middle - local maxwidth = 50 - local ellipsis_char = "..." - if #vim_item.abbr > maxwidth then - local half_width = math.floor((maxwidth - #ellipsis_char) / 2) - vim_item.abbr = string.sub(vim_item.abbr, 1, half_width) - .. ellipsis_char - .. string.sub(vim_item.abbr, -half_width) - end - return vim_item - end, - }, - - sorting = { - priority_weight = 2, - comparators = { - compare.kind, - compare.sort_text, - }, - }, - - experimental = { - native_menu = false, - - ghost_text = false, - }, -} - -vim.api.nvim_set_hl(0, "CmpItemKindCopilot", { fg = "#3426C3" }) -vim.api.nvim_set_hl(0, "CmpItemKindCodeium", { fg = "#2ACDBA" }) -vim.api.nvim_set_hl(0, "CmpItemKindOllama", { fg = "#FDFEFF" }) -vim.api.nvim_set_hl(0, "CmpItemKindOpenAI", { fg = "#080808" }) -vim.api.nvim_set_hl(0, "CmpItemKindTinyLlama", { fg = "#DF468C" }) -vim.api.nvim_set_hl(0, "CmpItemKindLlamaCPP", { fg = "#FF8235" }) - --- Set configuration for specific filetype. -cmp.setup.filetype("gitcommit", { - sources = cmp.config.sources({ - { name = "cmp_git" }, -- You can specify the `cmp_git` source if you were installed it. - }, { - { name = "buffer" }, - }), -}) - --- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline("/", { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = "buffer" }, - }, -}) - --- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline(":", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = "path" }, - }, { - { name = "cmdline" }, - }), -}) - -cmp.setup.filetype({ "sql", "mysql", "plsql" }, { - sources = cmp.config.sources({ - { name = "vim-dadbod-completion" }, - }, { - { name = "buffer" }, - }), -}) +-- Load blink.cmp configuration +require "pi.completition.blink" diff --git a/lua/pi/completition/init_new.lua b/lua/pi/completition/init_new.lua new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lua/pi/completition/init_new.lua diff --git a/lua/pi/dap/configs/javascript.lua b/lua/pi/dap/configs/javascript.lua index ef616f1..30388ac 100644 --- a/lua/pi/dap/configs/javascript.lua +++ b/lua/pi/dap/configs/javascript.lua @@ -1,22 +1,22 @@ -local dap = require('dap') +local dap = require "dap" dap.adapters.firefox = { - type = 'executable', - command = 'firefox-debug-adapter', + type = "executable", + command = "firefox-debug-adapter", } -for _, language in ipairs({ "typescript", "javascript", "javascriptreact", "typescriptreact" }) do +for _, language in ipairs { "typescript", "javascript", "javascriptreact", "typescriptreact" } do dap.configurations[language] = { { - name = 'Debug with Firefox', - type = 'firefox', - request = 'launch', - reAttach = true, - url = 'http://localhost:5173', - webRoot = '${workspaceFolder}', - firefoxExecutable = '/home/elvis/.local/bin/firefox', - -- firefoxArgs = {'-start-debugger-server', '--new-instance'}, - enableCRAWorkaround = true, - liftAccessorsFromPrototypes = 3, + name = "Debug with Firefox", + type = "firefox", + request = "launch", + reAttach = true, + url = "http://localhost:3000", + webRoot = "${workspaceFolder}", + firefoxExecutable = "/home/elvis/App/firefox/firefox", + -- firefoxArgs = {'-start-debugger-server', '--new-instance'}, + enableCRAWorkaround = true, + liftAccessorsFromPrototypes = 3, }, } end diff --git a/lua/pi/lsp/default.lua b/lua/pi/lsp/default.lua index b2020db..01e4d73 100644 --- a/lua/pi/lsp/default.lua +++ b/lua/pi/lsp/default.lua @@ -38,6 +38,7 @@ return { return vim.tbl_deep_extend("force", { on_attach = require"pi.lsp.attach", flags = require "pi.lsp.flags", + capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()), }, options) end, } diff --git a/lua/pi/lsp/servers/clangd.lua b/lua/pi/lsp/servers/clangd.lua index 87633cd..e989cf6 100644 --- a/lua/pi/lsp/servers/clangd.lua +++ b/lua/pi/lsp/servers/clangd.lua @@ -2,7 +2,7 @@ local lsp_attach = require "pi.lsp.attach" local lsp_flags = require "pi.lsp.flags" return function(ops) - local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) + local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) local config = { on_attach = lsp_attach, flags = lsp_flags, diff --git a/lua/pi/lsp/servers/emmet_ls.lua b/lua/pi/lsp/servers/emmet_ls.lua index 717edf8..e79a052 100644 --- a/lua/pi/lsp/servers/emmet_ls.lua +++ b/lua/pi/lsp/servers/emmet_ls.lua @@ -2,7 +2,7 @@ local lsp_attach = require "pi.lsp.attach" local lsp_flags = require "pi.lsp.flags" return function(ops) - local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) + local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) return vim.tbl_extend("force", { on_attach = lsp_attach, flags = lsp_flags, diff --git a/lua/plugins/close-buffer.lua b/lua/plugins/close-buffer.lua index 947f31a..64a6a82 100644 --- a/lua/plugins/close-buffer.lua +++ b/lua/plugins/close-buffer.lua @@ -6,7 +6,7 @@ return { event = "VeryLazy", opts = { -- if a buffer has been inactive for this many minutes, close it - retirementAgeMins = 30, + retirementAgeMins = 120, }, }, } diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua index e5f087f..ddd209b 100644 --- a/lua/plugins/codecompanion.lua +++ b/lua/plugins/codecompanion.lua @@ -1,27 +1,3 @@ --- Choose default model from a list of preferred models. Fall back to first --- available. -local function preferred_model_picker(preferred) - return function(self) - if self == nil then - -- Debug:render() calls Adapter.schema.model.default() but doesn't pass - -- in `self`. Just return an empty string in this case. - return "" - end - - local choices = self.schema.model.choices(self) - - for _, best in ipairs(preferred) do - for _, choice in ipairs(choices) do - if choice:find(best, 1, true) then - return choice - end - end - end - - return choices[1] - end -end - local IS_DEV = false return { { @@ -53,148 +29,112 @@ return { opts = { log_level = "TRACE", -- or "DEBUG" adapters = { - ollama = function() - return require("codecompanion.adapters").extend("ollama", { - name = "tinyllama", - env = { - url = "http://127.0.0.1:11434", - -- api_key = "", - }, - headers = { - ["Content-Type"] = "application/json", - -- ["Authorization"] = "Bearer ${api_key}", - }, - parameters = { - sync = true, - }, - schema = { - model = { - default = preferred_model_picker { - "qwen2.5-coder:14b", - "qwen2.5-coder:7b", - "qwen2.5-coder:3b", - "qwen2.5-coder:1.5b", - "qwen2.5-coder:0.5b", + http = { + ollama = function() + return require("codecompanion.adapters").extend("ollama", { + name = "tinyllama", + env = { + url = "http://127.0.0.1:11434", + -- api_key = "", + }, + headers = { + ["Content-Type"] = "application/json", + -- ["Authorization"] = "Bearer ${api_key}", + }, + parameters = { + sync = true, + }, + schema = { + model = { + default = "qwen2.5-coder:0.5b", }, }, - }, - }) - end, - anthropic = function() - return require("codecompanion.adapters").extend("anthropic", { - env = { - api_key = "cmd:echo $ANTHROPIC_API_KEY", - }, - schema = { - model = { - default = "claude-3-opus-20240229", + }) + end, + anthropic = function() + return require("codecompanion.adapters").extend("anthropic", { + env = { + api_key = "cmd:echo $ANTHROPIC_API_KEY", }, - }, - }) - end, - copilot = function() - return require("codecompanion.adapters").extend("copilot", { - schema = { - model = { - default = "gpt-4.1", + schema = { + model = { + default = "claude-3-opus-20240229", + }, }, - }, - }) - end, - gemini = function() - return require("codecompanion.adapters").extend("gemini", { - env = { - api_key = "cmd:op read op://personal/Gemini_API/credential --no-newline", - }, - }) - end, - openai = function() - return require("codecompanion.adapters").extend("openai", { - env = { - api_key = "cmd:echo $OPENAI_API_KEY", - chat_url = "/v1/chat/completions", - url = "https://api.openai.com", - }, - schema = { - model = { - default = function() - return "gpt-4o-mini" - end, + }) + end, + copilot = function() + return require("codecompanion.adapters").extend("copilot", { + schema = { + model = { + default = "gpt-4.1", + }, }, - }, - }) - end, - openai_compatible = function() - return require("codecompanion.adapters").extend("openai_compatible", { - env = { - api_key = "cmd:echo $OPENAI_API_KEY", - chat_url = "/v1/chat/completions", - url = "http://127.0.0.1:8012", - }, - headers = { - ["Content-Type"] = "application/json", - }, - schema = { - model = { - default = function() - return "davinci" - end, + }) + end, + gemini = function() + return require("codecompanion.adapters").extend("gemini", { + env = { + api_key = "cmd:op read op://personal/Gemini_API/credential --no-newline", }, - }, - }) - end, - xai = function() - return require("codecompanion.adapters").extend("xai", { - env = { - api_key = "cmd:op read op://personal/xAI_API/credential --no-newline", - }, - }) - end, - deepseek = function() - return require("codecompanion.adapters").extend("openai_compatible", { - env = { - api_key = "cmd:echo $AZ_DS_API_KEY", - url = "https://DeepSeek-R1-ajfsk.eastus2.models.ai.azure.com", - }, - schema = { - model = { - default = "deepseek-chat", + }) + end, + openai = function() + return require("codecompanion.adapters").extend("openai", { + env = { + api_key = "cmd:echo $OPENAI_API_KEY", + chat_url = "/v1/chat/completions", + url = "https://api.openai.com", }, - }, - }) - end, - -- deepseek = function() - -- return require("codecompanion.adapters").extend("deepseek", { - -- env = { - -- api_key = "cmd:echo $OPENAI_API_KEY", - -- chat_url = "/v1/chat/completions", - -- url = "http://127.0.0.1:8012", - -- }, - -- headers = { - -- ["Content-Type"] = "application/json", - -- }, - -- schema = { - -- model = { - -- default = function() - -- return "davinci" - -- end, - -- }, - -- }, - -- }) - -- end, - azure_openai = function() - return require("codecompanion.adapters").extend("azure_openai", { - env = { - api_key = "cmd:echo $AZ_DS_API_KEY", - endpoint = "https://DeepSeek-R1-nphob.eastus2.models.ai.azure.com", - }, - schema = { - model = { - default = "DeepSeek-R1-nphob", + schema = { + model = { + default = function() + return "gpt-4o-mini" + end, + }, }, - }, - }) - end, + }) + end, + openai_compatible = function() + return require("codecompanion.adapters").extend("openai_compatible", { + env = { + api_key = "cmd:echo $OPENAI_API_KEY", + chat_url = "/v1/chat/completions", + url = "http://127.0.0.1:8012", + }, + headers = { + ["Content-Type"] = "application/json", + }, + schema = { + model = { + default = function() + return "davinci" + end, + }, + }, + }) + end, + xai = function() + return require("codecompanion.adapters").extend("xai", { + env = { + api_key = "cmd:op read op://personal/xAI_API/credential --no-newline", + }, + }) + end, + azure_openai = function() + return require("codecompanion.adapters").extend("azure_openai", { + env = { + api_key = "cmd:echo $AZ_DS_API_KEY", + endpoint = "https://DeepSeek-R1-nphob.eastus2.models.ai.azure.com", + }, + schema = { + model = { + default = "DeepSeek-R1-nphob", + }, + }, + }) + end, + }, }, display = { diff = { @@ -208,11 +148,15 @@ return { }, inline = { adapter = "copilot" }, agent = { adapter = "copilot" }, + cmd = { adapter = "copilot" }, }, }, config = function(_, options) require("codecompanion").setup(options) require("codecompanion").setup { + opts = { + language = "English", + }, extensions = { mcphub = { callback = "mcphub.extensions.codecompanion", diff --git a/lua/plugins/colorscheme.lua b/lua/plugins/colorscheme.lua index 376feee..aaae1db 100644 --- a/lua/plugins/colorscheme.lua +++ b/lua/plugins/colorscheme.lua @@ -4,78 +4,142 @@ return { priority = 1000, opts = {}, config = function() - - -- Colorscheme Solarized Osaka by Takuya Matsuyama (https://github.com/craftzdog/solarized-osaka.nvim) + -- ===================================================== + -- Solarized Osaka Colorscheme Configuration + -- Enhanced setup with better customization + -- ===================================================== + require("solarized-osaka").setup({ - -- your configuration comes here - -- or leave it empty to use the default settings - transparent = true, -- Enable this to disable setting the background color - terminal_colors = true, -- Configure the colors used when opening a `:terminal` in [Neovim](https://github.com/neovim/neovim) + -- ========== Core Settings ========== + transparent = true, -- Enable transparent background + terminal_colors = true, -- Configure terminal colors + + -- ========== Syntax Highlighting Styles ========== styles = { - -- Style to be applied to different syntax groups - -- Value is any valid attr-list value for `:help nvim_set_hl` comments = { italic = true }, - keywords = { italic = true }, - functions = { italic = true }, - variables = { bold = true}, - -- Background styles. Can be "dark", "transparent" or "normal" - sidebars = "dark", -- style for sidebars, see below - floats = "dark", -- style for floating windows + keywords = { italic = true, bold = false }, + functions = { italic = false, bold = true }, + variables = { bold = false }, + conditionals = { italic = true }, + loops = { italic = true }, + constants = { bold = true }, + strings = { italic = false }, + types = { bold = true }, + + -- ========== UI Element Styles ========== + sidebars = "dark", -- Sidebar style: "dark", "transparent", "normal" + floats = "dark", -- Floating window style + }, + + -- ========== UI Configuration ========== + sidebars = { + "qf", "help", "vista_kind", "terminal", + "packer", "spectre_panel", "toggleterm", + "Trouble", "NvimTree", "neo-tree" }, - sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]` - day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors - hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**. - dim_inactive = false, -- dims inactive windows - lualine_bold = true, -- When `true`, section headers in the lualine theme will be bold + day_brightness = 0.4, -- Better brightness for day variant + hide_inactive_statusline = false, + dim_inactive = true, -- Dim inactive windows for better focus + lualine_bold = true, - --- You can override specific color groups to use other groups or a hex color - --- function will be called with a ColorScheme table + -- ========== Color Customization ========== ---@param colors ColorScheme - on_colors = function(colors) end, + on_colors = function(colors) + -- Enhance base colors for better readability + colors.bg_dark = "#16161e" + colors.bg_float = "#1a1a23" + colors.border = "#27a1b9" + colors.comment = "#565f89" + colors.gitSigns = { + add = "#449dab", + change = "#6183bb", + delete = "#f7768e", + } + end, - --- You can override specific highlights to use other groups or a hex color - --- function will be called with a Highlights and ColorScheme table + -- ========== Highlight Customization ========== ---@param highlights Highlights ---@param colors ColorScheme on_highlights = function(hl, c) + -- ========== Indent Guides ========== hl.IblIndent = { fg = c.base03, nocombine = true } hl.IndentBlanklineChar = { fg = c.blue, nocombine = true } hl.IndentBlanklineContextChar = { fg = c.orange500, nocombine = true } - + + -- ========== Telescope Enhanced Styling ========== local prompt = "#2d3149" - hl.TelescopeNormal = { - bg = c.bg_dark, - fg = c.fg_dark, - } - hl.TelescopeBorder = { - bg = c.bg_dark, - fg = c.bg_dark, - } - hl.TelescopePromptNormal = { - bg = prompt, - } - hl.TelescopePromptBorder = { - bg = prompt, - fg = prompt, - } - hl.TelescopePromptTitle = { - bg = prompt, - fg = prompt, - } - hl.TelescopePreviewTitle = { - bg = c.bg_dark, - fg = c.bg_dark, - } - hl.TelescopeResultsTitle = { - bg = c.bg_dark, - fg = c.bg_dark, - } + local results = "#1f2335" + local preview = "#24283b" + + hl.TelescopeNormal = { bg = c.bg_dark, fg = c.fg_dark } + hl.TelescopeBorder = { bg = c.bg_dark, fg = c.border } + hl.TelescopePromptNormal = { bg = prompt } + hl.TelescopePromptBorder = { bg = prompt, fg = c.border } + h |