(local {: autoload} (require :nfnl.module)) (local utils (autoload :dots.utils)) (local colors (autoload :dots.colors)) (fn setup [] (set vim.g.gruvbox_italics 0) (set vim.g.gruvbox_italicise_strings 0) (set vim.g.gruvbox_filetype_hi_groups 1) (set vim.g.gruvbox_plugin_hi_groups 1) (fn setup-colors [] (utils.highlight-add ["GruvboxBlueSign" "GruvboxAquaSign" "GruvboxRedSign" "GruvboxYellowSign" "GruvboxGreenSign" "GruvboxOrangeSign" "GruvboxPurpleSign"] {:bg "NONE"}) ; hide empty line ~'s (utils.highlight :EndOfBuffer {:bg "NONE" :fg colors.bg_main}) (utils.highlight :LineNr {:bg "NONE"}) (utils.highlight-add :Pmenu {:bg colors.bg_second}) (utils.highlight-add :PmenuSel {:bg colors.bright_aqua}) (utils.highlight-add :PmenuSbar {:bg colors.bg_second}) (utils.highlight-add :PmenuThumb {:bg colors.dark1}) (utils.highlight-add :NormalFloat {:bg colors.bg_second}) (utils.highlight-add :SignColumn {:bg colors.bg_main}) (utils.highlight-add :FloatBorder {:bg colors.bg_second}) (utils.highlight-add :SpecialComment {:fg colors.dark4}) (utils.highlight-add [:LspDiagnosticsSignError :LspDiagnosticsSignWarning :LspDiagnosticsSignInformation :LspDiagnosticsSignHint] {:bg "NONE"}) (utils.highlight-add :DiagnosticError {:fg colors.bright_red}) (utils.highlight-add :DiagnosticWarning {:fg colors.bright_orange}) (utils.highlight-add :DiagnosticInformation {:fg colors.bright_aqua}) (utils.highlight-add :DiagnosticHint {:fg colors.bright_yellow}) (utils.highlight-add :DiagnosticVirtualTextError {:bg "#342828" :fg colors.bright_red}) (utils.highlight-add :DiagnosticVirtualTextWarning {:bg "#473027" :fg colors.bright_orange}) (utils.highlight-add :DiagnosticVirtualTextWarning {:bg "#3b2c28" :fg colors.bright_orange}) (utils.highlight-add :DiagnosticVirtualTextInformation {:bg "#272d2f" :fg colors.bright_aqua}) (utils.highlight-add :DiagnosticVirtualTextHint {:bg "#272d2f" :fg colors.bright_yellow}) (utils.highlight :LspDiagnosticsUnderlineError {:gui "undercurl"}) ;(vim.fn.sign_localine :LspDiagnosticsSignError {:text "◆"}) ;(vim.fn.sign_localine :LspDiagnosticsSignWarning {:text "◆"}) ;(vim.fn.sign_localine :LspDiagnosticsSignHint {:text "◆"}) ;(vim.fn.sign_localine :LspDiagnosticsSignInformation {:text "◆"}) (utils.highlight :StatusLine {:bg colors.dark1 :fg colors.light0}) (vim.cmd "highlight link Function GruvboxGreen") (utils.highlight-add :Function {:gui "NONE"})) (fn setup-telescope-theme [] (local prompt "blacker") (if (= prompt "bright") (let [promptbg "#689d6a"] (utils.highlight-add :TelescopePromptBorder {:bg promptbg :fg promptbg}) (utils.highlight-add :TelescopePromptNormal {:bg promptbg :fg colors.bg_main}) (utils.highlight-add :TelescopePromptTitle {:bg promptbg :fg colors.dark1})) (= prompt "dark") (let [promptbg "#252525"] (utils.highlight-add :TelescopePromptBorder {:bg promptbg :fg promptbg}) (utils.highlight-add :TelescopePromptNormal {:bg promptbg :fg colors.light2}) (utils.highlight-add :TelescopePromptPrefix {:bg promptbg :fg colors.neutral_aqua}) (utils.highlight-add :TelescopePromptTitle {:bg colors.neutral_blue :fg colors.dark1})) (= prompt "black") (let [promptbg "#212526"] (utils.highlight-add :TelescopePromptBorder {:bg promptbg :fg promptbg}) (utils.highlight-add :TelescopePromptNormal {:bg promptbg :fg colors.light2}) (utils.highlight-add :TelescopePromptPrefix {:bg promptbg :fg colors.neutral_aqua}) (utils.highlight-add :TelescopePromptTitle {:bg colors.neutral_green :fg colors.dark1})) (= prompt "blacker") (let [promptbg "#1f2324"] (utils.highlight-add :TelescopePromptBorder {:bg promptbg :fg promptbg}) (utils.highlight-add :TelescopePromptNormal {:bg promptbg :fg colors.light2}) (utils.highlight-add :TelescopePromptPrefix {:bg promptbg :fg colors.neutral_aqua}) (utils.highlight-add :TelescopePromptTitle {:bg colors.neutral_blue :fg colors.dark1}))) (local side "darker") (if (= side "brighter") (let [previewbg "#1f2324"] (utils.highlight-add :TelescopePreviewNormal {:bg previewbg}) (utils.highlight-add :TelescopePreviewBorder {:bg previewbg :fg previewbg})) (= side "darker") (let [previewbg "#1a1e1f"] (utils.highlight-add :TelescopePreviewNormal {:bg previewbg}) (utils.highlight-add :TelescopePreviewBorder {:bg previewbg :fg previewbg}))) (utils.highlight-add :TelescopeBorder {:bg colors.bg_second :fg colors.bg_second}) (utils.highlight-add :TelescopeNormal {:bg colors.bg_second}) (utils.highlight-add :TelescopePreviewTitle {:bg colors.neutral_green :fg colors.dark1}) (utils.highlight-add :TelescopeResultsTitle {:bg colors.neutral_aqua :fg colors.dark1}) (utils.highlight-add :TelescopeSelection {:bg colors.neutral_aqua :fg colors.dark1})) (fn setup-noice-theme [] (utils.highlight-add :NoicePopupmenu {:bg colors.bg_second}) (utils.highlight-add :NoiceCmdline {:bg "#1f2324"}) (utils.highlight-add :NoiceCmdlinePopup {:bg "#1f2324"}) (utils.highlight-add :NoiceCmdlinePrompt {:bg "#1f2324"}) (utils.highlight-add :NoiceCmdlinePopupBorder {:fg colors.bright_aqua}) (utils.highlight-add :NoiceCmdlineIcon {:fg colors.bright_aqua})) (vim.api.nvim_create_autocmd "ColorScheme" {:pattern "*" :callback setup-colors}) (setup-colors) (vim.api.nvim_create_autocmd "ColorScheme" {:pattern "*" :callback setup-telescope-theme}) (setup-telescope-theme) (vim.api.nvim_create_autocmd "ColorScheme" {:pattern "*" :callback setup-noice-theme}) (setup-noice-theme) (vim.api.nvim_create_autocmd "ColorScheme" {:pattern "*" :callback (fn [] (utils.highlight-add "GitSignsAdd" {:gui "NONE" :bg "NONE" :fg colors.bright_aqua}) (utils.highlight-add "GitSignsDelete" {:gui "NONE" :bg "NONE" :fg colors.neutral_red}) (utils.highlight-add "GitSignsChange" {:gui "NONE" :bg "NONE" :fg colors.bright_blue}) (utils.highlight-add "ScrollbarGitAdd" {:gui "NONE" :bg "NONE" :fg colors.bright_aqua}) (utils.highlight-add "ScrollbarGitDelete" {:gui "NONE" :bg "NONE" :fg colors.neutral_red}) (utils.highlight-add "ScrollbarGitChange" {:gui "NONE" :bg "NONE" :fg colors.bright_blue}))}) (if (= "epix" (vim.fn.hostname)) (vim.cmd "colorscheme gruvbox8_hard") (vim.cmd "colorscheme gruvbox8"))) [(utils.plugin :lifepillar/vim-gruvbox8 {:lazy false :priority 1000 :config setup})]