diff options
| author | Elvis Claros Castro <elvis@claros.ar> | 2025-08-31 09:55:39 -0300 |
|---|---|---|
| committer | Elvis Claros Castro <elvis@claros.ar> | 2025-08-31 09:55:39 -0300 |
| commit | 0b4280dec8fec6ef2e2281ec3616918e7b78d275 (patch) | |
| tree | 7d29fcbd561a75cdd4ad2ba3720c3681013e3aff /lua/config/native-colorscheme.lua | |
| parent | ec011dd9c8d4372f4f8566b87981ecc178675adf (diff) | |
| download | nvim-conf-0b4280dec8fec6ef2e2281ec3616918e7b78d275.tar.gz nvim-conf-0b4280dec8fec6ef2e2281ec3616918e7b78d275.zip | |
feat(ui): reemplaza solarized-osaka y lualine.nvim por esquema de color y barra de estado nativos
- Se eliminaron los plugins externos para el esquema de color (solarized-osaka) y la barra de estado (lualine.nvim).
- Se agregó una implementación nativa inspirada en Solarized Osaka en `config.native-colorscheme`.
- Se agregó una barra de estado nativa en `config.native-statusline` para mejorar el rendimiento y la personalización.
- Se actualizó la configuración para cargar la interfaz nativa y establecer opciones relacionadas desde el inicio.
- Motivación: Reducir dependencias de plugins, mejorar el tiempo de inicio y permitir una personalización más profunda de los elementos de la interfaz.
Diffstat (limited to 'lua/config/native-colorscheme.lua')
| -rw-r--r-- | lua/config/native-colorscheme.lua | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/lua/config/native-colorscheme.lua b/lua/config/native-colorscheme.lua new file mode 100644 index 0000000..029cf43 --- /dev/null +++ b/lua/config/native-colorscheme.lua @@ -0,0 +1,209 @@ +-- ===================================================== +-- Native Solarized Osaka Colorscheme Implementation +-- ===================================================== + +local M = {} + +-- Color palette based on solarized-osaka +local colors = { + -- Base colors + base03 = "#16161e", + base02 = "#1a1a23", + base01 = "#2e3c64", + base00 = "#414868", + base0 = "#565f89", + base1 = "#6183bb", + base2 = "#7aa2f7", + base3 = "#bb9af7", + base4 = "#c0caf5", + + -- Background variants + bg_dark = "#16161e", + bg = "#1a1b26", + bg_highlight = "#292e42", + bg_popup = "#16161e", + bg_sidebar = "#16161e", + bg_statusline = "#16161e", + bg_float = "#1a1a23", + + -- Foreground + fg = "#c0caf5", + fg_dark = "#a9b1d6", + fg_gutter = "#3b4261", + + -- Accent colors + red = "#f7768e", + orange = "#ff9e64", + yellow = "#e0af68", + green = "#9ece6a", + cyan = "#73daca", + blue = "#7aa2f7", + purple = "#bb9af7", + magenta = "#bb9af7", + + -- Enhanced versions + red100 = "#ff7a93", + orange100 = "#ffad7a", + yellow100 = "#e7c664", + green100 = "#b3d882", + cyan100 = "#7dd3c0", + blue100 = "#9bb3f7", + purple100 = "#d2a8ff", + magenta100 = "#d2a8ff", + + red300 = "#f7768e", + orange300 = "#ff9e64", + yellow300 = "#e0af68", + green300 = "#9ece6a", + cyan300 = "#73daca", + blue300 = "#7aa2f7", + purple300 = "#bb9af7", + magenta300 = "#bb9af7", + + -- Special + border = "#27a1b9", + comment = "#565f89", + none = "NONE", +} + +-- Highlight groups +local highlights = { + -- Editor + Normal = { fg = colors.fg, bg = colors.none }, + NormalFloat = { fg = colors.fg, bg = colors.bg_float }, + NormalNC = { fg = colors.fg, bg = colors.none }, + + -- Cursor + Cursor = { fg = colors.bg, bg = colors.fg }, + CursorLine = { bg = "#1e202a" }, + CursorLineNr = { fg = colors.orange, bold = true }, + CursorColumn = { bg = colors.bg_highlight }, + + -- Line numbers + LineNr = { fg = colors.fg_gutter }, + SignColumn = { fg = colors.fg_gutter, bg = colors.none }, + + -- Visual selection + Visual = { bg = "#33467c" }, + VisualNOS = { bg = "#33467c" }, + + -- Search + Search = { bg = colors.yellow, fg = colors.bg_dark }, + IncSearch = { bg = colors.orange, fg = colors.bg_dark }, + + -- Statusline + StatusLine = { fg = colors.fg, bg = colors.bg_statusline }, + StatusLineNC = { fg = colors.comment, bg = colors.bg_statusline }, + + -- Tabs + TabLine = { fg = colors.comment, bg = colors.bg_statusline }, + TabLineFill = { bg = colors.bg_statusline }, + TabLineSel = { fg = colors.fg, bg = colors.bg_highlight }, + + -- Popup menu + Pmenu = { fg = colors.fg, bg = colors.bg_popup }, + PmenuSel = { bg = colors.bg_highlight }, + PmenuSbar = { bg = colors.bg_popup }, + PmenuThumb = { bg = colors.fg_gutter }, + + -- Splits + VertSplit = { fg = colors.border }, + WinSeparator = { fg = colors.border }, + + -- Diagnostics + DiagnosticError = { fg = colors.red }, + DiagnosticWarn = { fg = colors.yellow }, + DiagnosticInfo = { fg = colors.blue }, + DiagnosticHint = { fg = colors.cyan }, + + -- Syntax highlighting + Comment = { fg = colors.comment, italic = true }, + + Constant = { fg = colors.orange, bold = true }, + String = { fg = colors.green }, + Character = { fg = colors.green }, + Number = { fg = colors.orange }, + Boolean = { fg = colors.orange }, + Float = { fg = colors.orange }, + + Identifier = { fg = colors.red }, + Function = { fg = colors.blue, bold = true }, + + Statement = { fg = colors.purple, italic = true }, + Conditional = { fg = colors.purple, italic = true }, + Repeat = { fg = colors.purple, italic = true }, + Label = { fg = colors.purple }, + Operator = { fg = colors.cyan }, + Keyword = { fg = colors.purple, italic = true }, + Exception = { fg = colors.purple }, + + PreProc = { fg = colors.cyan }, + Include = { fg = colors.purple }, + Define = { fg = colors.purple }, + Macro = { fg = colors.purple }, + PreCondit = { fg = colors.cyan }, + + Type = { fg = colors.yellow, bold = true }, + StorageClass = { fg = colors.yellow }, + Structure = { fg = colors.yellow }, + Typedef = { fg = colors.yellow }, + + Special = { fg = colors.blue }, + SpecialChar = { fg = colors.orange }, + Tag = { fg = colors.red }, + Delimiter = { fg = colors.fg }, + SpecialComment = { fg = colors.comment }, + Debug = { fg = colors.orange }, + + -- Git + GitSignsAdd = { fg = colors.green }, + GitSignsChange = { fg = colors.yellow }, + GitSignsDelete = { fg = colors.red }, + + -- Tree-sitter + ["@comment"] = { link = "Comment" }, + ["@keyword"] = { link = "Keyword" }, + ["@keyword.conditional"] = { link = "Conditional" }, + ["@keyword.repeat"] = { link = "Repeat" }, + ["@keyword.function"] = { fg = colors.purple, italic = true }, + ["@function"] = { link = "Function" }, + ["@function.builtin"] = { fg = colors.cyan, bold = true }, + ["@variable"] = { fg = colors.fg }, + ["@variable.builtin"] = { fg = colors.red }, + ["@constant"] = { link = "Constant" }, + ["@constant.builtin"] = { fg = colors.orange, bold = true }, + ["@string"] = { link = "String" }, + ["@number"] = { link = "Number" }, + ["@boolean"] = { link = "Boolean" }, + ["@type"] = { link = "Type" }, + ["@type.builtin"] = { fg = colors.cyan, bold = true }, +} + +function M.setup() + -- Clear existing highlights + vim.cmd("highlight clear") + if vim.fn.exists("syntax_on") then + vim.cmd("syntax reset") + end + + -- Set colorscheme name + vim.g.colors_name = "native-solarized-osaka" + + -- Set terminal colors + if vim.fn.has("termguicolors") == 1 then + vim.opt.termguicolors = true + end + + -- Apply highlights + for group, settings in pairs(highlights) do + vim.api.nvim_set_hl(0, group, settings) + end + + -- Set background + vim.opt.background = "dark" +end + +-- Export colors for use in statusline +M.colors = colors + +return M |