diff options
Diffstat (limited to 'lua/lush_template')
| -rw-r--r-- | lua/lush_template/gruvbox.lua | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/lua/lush_template/gruvbox.lua b/lua/lush_template/gruvbox.lua deleted file mode 100644 index f303b25..0000000 --- a/lua/lush_template/gruvbox.lua +++ /dev/null @@ -1,396 +0,0 @@ -local lush = require("lush") -local hsl = lush.hsl --- gruvbox palette -local colors = { - dark0_hard = "#1d2021", - dark0 = "#282828", - dark0_soft = "#32302f", - dark1 = "#3c3836", - dark2 = "#504945", - dark3 = "#665c54", - dark4 = "#7c6f64", - light0_hard = "#f9f5d7", - light0 = "#fbf1c7", - light0_soft = "#f2e5bc", - light1 = "#ebdbb2", - light2 = "#d5c4a1", - light3 = "#bdae93", - light4 = "#a89984", - bright_red = "#fb4934", - bright_green = "#b8bb26", - bright_yellow = "#fabd2f", - bright_blue = "#83a598", - bright_purple = "#d3869b", - bright_aqua = "#8ec07c", - bright_orange = "#fe8019", - neutral_red = "#cc241d", - neutral_green = "#98971a", - neutral_yellow = "#d79921", - neutral_blue = "#458588", - neutral_purple = "#b16286", - neutral_aqua = "#689d6a", - neutral_orange = "#d65d0e", - faded_red = "#9d0006", - faded_green = "#79740e", - faded_yellow = "#b57614", - faded_blue = "#076678", - faded_purple = "#8f3f71", - faded_aqua = "#427b58", - faded_orange = "#af3a03", - gray = "#928374", -} --- options (dark mode by default) -local bg0 = colors.dark0 -local bg1 = colors.dark1 -local bg2 = colors.dark2 -local bg3 = colors.dark3 -local bg4 = colors.dark4 - -local fg0 = colors.light0 -local fg1 = colors.light1 -local fg2 = colors.light2 -local fg3 = colors.light3 -local fg4 = colors.light4 - -local red = colors.bright_red -local green = colors.bright_green -local yellow = colors.bright_yellow -local blue = colors.bright_blue -local purple = colors.bright_purple -local aqua = colors.bright_aqua -local orange = colors.bright_orange -local sign_column = bg1 -local gray = colors.gray - --- global settings -local settings = { - contrast_dark = "medium", - contrart_light = "medium", - bold = true, - italic = true, - undercurl = true, - underline = true, - improved_strings = false, - improved_warnings = false, - invert_signs = false, - invert_selection = true, - invert_tabline = false, - italicize_comments = true, - italicize_strings = false, -} - -local styles = { - italic = "italic", - inverse = "inverse", - bold = "bold", - undercurl = "undercurl", - underline = "underline", -} - --- setting default values -for k, val in pairs(settings) do - local key = "gruvbox_" .. k - if vim.g[key] == nil then - vim.g[key] = val - end -end - --- handle light/dark contrast settings -local bg = vim.o.background -local contrast = vim.g["gruvbox_contrast_" .. bg] -if contrast == "hard" then - bg0 = colors[bg .. "0_hard"] -elseif contrast == "soft" then - bg0 = colors[bg .. "0_soft"] -end - --- swap colors if light mode -if bg == "light" then - bg0 = colors.light0 - bg1 = colors.light1 - bg2 = colors.light2 - bg3 = colors.light3 - bg4 = colors.light4 - fg0 = colors.dark0 - fg1 = colors.dark1 - fg2 = colors.dark2 - fg3 = colors.dark3 - fg4 = colors.dark4 - red = colors.faded_red - green = colors.faded_green - yellow = colors.faded_yellow - blue = colors.faded_blue - purple = colors.faded_purple - aqua = colors.faded_aqua - orange = colors.faded_orange -end - -local hls_cursor = orange -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_cursor] -end - -local hls_highlight = yellow -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_highlight] -end - -local number_column -if vim.g.gruvbox_number_column ~= nil then - number_column = hsl(colors[vim.g.gruvbox_number_column]) -end - -local color_column = bg1 -if vim.g.gruvbox_color_column ~= nil then - color_column = colors[vim.g.gruvbox_color_column] -end - -local vert_split = bg0 -if vim.g.gruvbox_vert_split ~= nil then - vert_split = colors[vim.g.gruvbox_vert_split] -end - -local invert_signs -if vim.g.gruvbox_invert_signs then - invert_signs = styles.inverse -end - -local invert_selection = styles.inverse -if not vim.g.gruvbox_invert_selection then - invert_selection = nil -end - -local invert_tabline -if vim.g.gruvbox_invert_tabline then - invert_tabline = styles.inverse -end - -local tabline_sel = green -if vim.g.gruvbox_tabline_sel then - tabline_sel = colors[vim.g.gruvbox_tabline_sel] -end - -local italic_comments = settings.italic -if not vim.g.gruvbox_italicize_comments then - italic_comments = nil -end - -local italic_strings -if vim.g.gruvbox_italicize_strings then - italic_strings = styles.italic -end - -local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} -local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} -if not vim.g.gruvbox_improved_strings then - special = {fg = hsl(orange)} - special_string = {fg = hsl(green), gui = italic_strings} -end - -local theme = lush(function() - return { - -- EndOfBuffer { }, - -- TermCursor { }, - -- TermCursorNC { }, - -- Substitute { }, - -- MsgArea { }, - -- MsgSeparator { }, - -- Whitespace { }, - -- Base groups - ColorColumn {bg = hsl(bg1)}, - Conceal {bg = hsl(blue)}, - Cursor {gui = styles.inverse}, - lCursor {Cursor}, - CursorIM {Cursor}, - CursorColumn {bg = bg1}, - CursorLine {CursorColumn}, - Directory {fg = hsl(green), gui = styles.bold}, - DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, - DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, - DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, - DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, - ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, - VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, - Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, - FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, - SignColumn {bg = hsl(sign_column)}, - IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, - LineNr {fg = hsl(bg4), bg = number_column}, - CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, - MatchParen {bg = hsl(bg3), gui = styles.bold}, - ModeMsg {fg = hsl(yellow), gui = styles.bold}, - MoreMsg {fg = hsl(yellow), gui = styles.bold}, - NonText {fg = hsl(bg2)}, - Normal {fg = hsl(fg0), bg = hsl(bg0)}, - NormalFloat {Normal}, - NormalNC {Normal}, - Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, - PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, - PmenuSbar {bg = hsl(bg2)}, - PmenuThumb {bg = hsl(bg4)}, - Question {fg = hsl(orange), gui = styles.bold}, - QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, - Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, - SpecialKey {fg = hsl(fg4)}, - SpellRare {gui = styles.undercurl, sep = hsl(purple)}, - SpellBad {fg = hsl(red), gui = styles.underline}, - StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, - StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, - TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, - Title {fg = hsl(green), gui = styles.bold}, - Visual {bg = hsl(bg3), gui = invert_selection}, - VisualNOS {bg = hsl(bg3), gui = invert_selection}, - WarningMsg {fg = hsl(red), gui = styles.bold}, - WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, - Constant {fg = hsl(purple)}, - String {unpack(special_string)}, - Character {fg = hsl(purple)}, - Number {Character}, - Boolean {Character}, - Float {Character}, - Identifier {fg = hsl(blue)}, - Function {fg = hsl(green), gui = styles.bold}, - Statement {fg = hsl(red)}, - Conditional {fg = hsl(red)}, - Repeat {fg = hsl(red)}, - Label {fg = hsl(red)}, - Keyword {fg = hsl(red)}, - Exception {fg = hsl(red)}, - Operator {fg = hsl(fg1)}, - PreProc {fg = hsl(aqua)}, - Include {fg = hsl(aqua)}, - Define {fg = hsl(aqua)}, - Macro {fg = hsl(aqua)}, - PreCondit {fg = hsl(aqua)}, - Type {fg = hsl(yellow)}, - StorageClass {fg = hsl(orange)}, - Structure {fg = hsl(aqua)}, - Typedef {fg = hsl(yellow)}, - Special {unpack(special)}, - SpecialChar {fg = hsl(red)}, - Tag {fg = hsl(aqua), gui = styles.bold}, - Delimiter {fg = hsl(fg0)}, - SpecialComment {fg = hsl(gray), gui = styles.italic}, - Debug {fg = hsl(red)}, - Underlined {gui = styles.underline}, - Bold {gui = styles.bold}, - Italic {gui = styles.italic}, - Ignore {}, - Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles - Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, - - -- LSP - LspDiagnosticsError {Error}, - LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - LspDiagnosticsErrorFloating {LspDiagnosticsError}, - LspDiagnosticsWarning {fg = hsl(yellow)}, - LspDiagnosticsWarningSign { - LspDiagnosticsWarning, - bg = hsl(sign_column), - gui = styles.undercurl, - sp = hsl(yellow), - }, - LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, - LspDiagnosticsInformation {fg = hsl(blue)}, - LspDiagnosticsInformationSign { - LspDiagnosticsInformation, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, - LspDiagnosticsHint {fg = hsl(aqua)}, - LspDiagnosticsHintSign { - LspDiagnosticsHint, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsHintFloating {LspDiagnosticsHint}, - - -- Treesitter - TSNone {}, - TSError {Error}, - TSPunctDelimiter {Delimiter}, - TSPunctBracket {Delimiter}, - TSPunctSpecial {Delimiter}, - TSConstant {Constant}, - TSConstBuiltin {Special}, - TSConstMacro {Define}, - TSString {String}, - TSStringRegex {String}, - TSStringEscape {SpecialChar}, - TSCharacter {Character}, - TSNumber {Number}, - TSBoolean {Boolean}, - TSFloat {Float}, - TSFunction {Function}, - TSFuncBuiltin {Special}, - TSFuncMacro {Macro}, - TSParameter {Identifier}, - TSParameterReference {TSParameter}, - TSMethod {Function}, - TSField {Identifier}, - TSProperty {Identifier}, - TSConstructor {Special}, - TSConditional {Conditional}, - TSRepeat {Repeat}, - TSLabel {Label}, - TSOperator {Operator}, - TSKeyword {Keyword}, - TSKeywordFunction {Keyword}, - TSException {Exception}, - TSType {Type}, - TSTypeBuiltin {Type}, - TSNamespace {Include}, - TSInclude {Include}, - TSAnnotation {PreProc}, - TSText {TSNone}, - TSStrong {gui = styles.bold}, - TSEmphasis {gui = styles.italic}, - TSUnderline {gui = styles.underline}, - TSTitle {Title}, - TSLiteral {String}, - TSURI {Underlined}, - TSVariable {Special}, - TSVariableBuiltin {Special}, - - -- netrw - netrwDir {fg = hsl(aqua)}, - netrwClassify {netrwDir}, - netrwLink {fg = hsl(gray)}, - netrwSymLink {fg = hsl(fg1)}, - netrwExe {fg = hsl(yellow)}, - netrwComment {netrwLink}, - netrwList {fg = hsl(blue)}, - netrwHelpCmd {netrwDir}, - netrwCmdSep {fg = hsl(fg3)}, - netrwVersion {fg = hsl(green)}, - - -- vim-startify - StartifyBracket {fg = hsl(fg3)}, - StartifyFile {fg = hsl(fg1)}, - StartifyNumber {fg = hsl(blue)}, - StartifyPath {fg = hsl(gray)}, - StartifySlash {StartifyPath}, - StartifySection {fg = hsl(yellow)}, - StartifySpecial {fg = hsl(bg2)}, - StartifyHeader {fg = hsl(orange)}, - StartifyFooter {fg = hsl(bg2)}, - - -- vim-signify - SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, - SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, - SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - - -- lua - luaIn {fg = hsl(red)}, - luaFunction {fg = hsl(aqua)}, - luaTable {fg = hsl(orange)}, - - } -end) - -return theme - --- vi:nowrap |
