A Lua port of the everforest colour scheme. For screenshots, please see the everforest repo.
- 100% Lua, supports Treesitter & LSP
- Vim terminal colours
- Lualine theme
Using lazy.nvim:
require("lazy").setup({
"neanias/everforest-nvim",
version = false,
lazy = false,
priority = 1000, -- make sure to load this before all the other start plugins
-- Optional; default configuration will be used if setup isn't called.
config = function()
require("everforest").setup({
-- Your config here
})
end,
})
Using packer.nvim:
use({
"neanias/everforest-nvim",
-- Optional; default configuration will be used if setup isn't called.
config = function()
require("everforest").setup()
end,
})
Using vim-plug:
Plug 'neanias/everforest-nvim', { 'branch': 'main' }
" In VimL
" This has both light & dark modes to match your background setting.
colorscheme everforest
-- In Lua
vim.cmd([[colorscheme everforest]])
-- Alternatively
require("everforest").load()
To enable the everforest theme for LuaLine, you can specify it as such:
require("lualine").setup({
options = {
-- ... other configuration
theme = "everforest", -- Can also be "auto" to detect automatically.
}
})
Please note that LspSaga uses Diagnostic{Warning,Error,Info,Hint}
highlight
groups to define its borders for diagnostic pop-ups, especially in
diagnostic_jump_{next,prev}
. As discussed in the Sonokai
repo, this is not a good idea
and there is no plan to change core highlights for one plugin.
To prevent the problem of squiggly lines in LspSaga diagnostic windows,
please set the diagnostic.border_follow
configuration option to false
.
Configuration options aren't as comprehensive as the original everforest theme yet.
This colour scheme has a light and a dark mode which are configured using the
vim background setting: :set background=light
or vim.o.background=dark
as
appropriate.
The default configuration used by the colour scheme
require("everforest").setup({
---Controls the "hardness" of the background. Options are "soft", "medium" or "hard".
---Default is "medium".
background = "medium",
---How much of the background should be transparent. 2 will have more UI
---components be transparent (e.g. status line background)
transparent_background_level = 0,
---Whether italics should be used for keywords and more.
italics = false,
---Disable italic fonts for comments. Comments are in italics by default, set
---this to `true` to make them _not_ italic!
disable_italic_comments = false,
---By default, the colour of the sign column background is the same as the as normal text
---background, but you can use a grey background by setting this to `"grey"`.
sign_column_background = "none",
---The contrast of line numbers, indent lines, etc. Options are `"high"` or
---`"low"` (default).
ui_contrast = "low",
---Dim inactive windows. Only works in Neovim. Can look a bit weird with Telescope.
---
---When this option is used in conjunction with show_eob set to `false`, the
---end of the buffer will only be hidden inside the active window. Inside
---inactive windows, the end of buffer filler characters will be visible in
---dimmed symbols. This is due to the way Vim and Neovim handle `EndOfBuffer`.
dim_inactive_windows = false,
---Some plugins support highlighting error/warning/info/hint texts, by
---default these texts are only underlined, but you can use this option to
---also highlight the background of them.
diagnostic_text_highlight = false,
---Which colour the diagnostic text should be. Options are `"grey"` or `"coloured"` (default)
diagnostic_virtual_text = "coloured",
---Some plugins support highlighting error/warning/info/hint lines, but this
---feature is disabled by default in this colour scheme.
diagnostic_line_highlight = false,
---By default, this color scheme won't colour the foreground of |spell|, instead
---colored under curls will be used. If you also want to colour the foreground,
---set this option to `true`.
spell_foreground = false,
---Whether to show the EndOfBuffer highlight.
show_eob = true,
---You can override specific highlights to use other groups or a hex colour.
---This function will be called with the highlights and colour palette tables.
---@param highlight_groups Highlights
---@param palette Palette
on_highlights = function(highlight_groups, palette) end,
---You can override colours in the palette to use different hex colours.
---This function will be called once the base and background colours have
---been mixed on the palette.
---@param palette Palette
colours_override = function(palette) end,
})
To find all possible palette colours, please see colours.lua
.
For example, you could override the Diagnostic group of highlights to remove the undercurl:
require("everforest").setup({
on_highlights = function (hl, palette)
hl.DiagnosticError = { fg = palette.none, bg = palette.none, sp = palette.red }
hl.DiagnosticWarn = { fg = palette.none, bg = palette.none, sp = palette.yellow }
hl.DiagnosticInfo = { fg = palette.none, bg = palette.none, sp = palette.blue }
hl.DiagnosticHint = { fg = palette.none, bg = palette.none, sp = palette.green }
end
})
To clear any highlight groups, simply set them to {}
:
require("everforest").setup({
on_highlights = function (hl, palette)
hl.TSDanger = {}
end
})
To find the existing palette colours, please see colours.lua
.
For instance, if you use a dark background and want to use a darker hue for red, you could use the following configuration:
require("everforest").setup({
colours_override = function (palette)
palette.red = "#b86466"
end
})
- ALE
- Barbar
- BufferLine
- Coc.nvim
- Dashboard
- Git Gutter
- Git Signs
- Hop
- Incline.nvim
- Indent Blankline
- LSP Diagnostics
- LSP Saga
- LSP Trouble
- Leap
- Lualine
- Mini
- Neo-tree.nvim
- Neogit
- Neomake
- Neotest
- Noice
- NvimTree
- Octo.nvim
- Scrollbar
- Telescope
- TreeSitter
- Trouble
- WhichKey
- aerial.nvim
- blamer.nvim
- fzf.vim
- fsread.nvim
- lightspeed.nvim
- nvim-cmp
- nvim-dap-ui
- nvim-navic
- nvim-notify
- nvim-ts-rainbow
- nvim-ts-rainbow2
- packer.nvim
- symbols-outline.nvim
- undotree
- vim-floaterm
- vim-matchup
- vim-plug
- vim-sneak
- yanky.nvim
See the wiki for the full list of plugins that have highlights.
- Colour scheme configuration
-
background
-
transparent_background
-
dim_inactive_windows
-
disable_italic_comments
-
enable_italic
-
cursor
-
sign_column_background
-
spell_foreground
-
ui_contrast
-
show_eob
-
current_word
-
diagnostic_text_highlight
-
diagnostic_line_highlight
-
diagnostic_virtual_text
-
disable_terminal_colours
-
colours_override
-
- Transparent backgrounds
- Different colour scheme "weights"
- everforest (obviously)
- NeoSolarized.nvim
- Tokyo Night