mrtnvgr / everforest-nvim

A Lua port of the Everforest colour scheme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Everforest.nvim

A Lua port of the everforest colour scheme. For screenshots, please see the everforest repo.

Features

  • 100% Lua, supports Treesitter & LSP
  • Vim terminal colours
  • Lualine theme

Installation

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' }

Usage

" 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.
  }
})

LspSaga information

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

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.

This is the default config:

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. Options are 0, 1 or 2.
  -- Default is 0.
  --
  -- 2 will have more UI components be transparent (e.g. status line
  -- background).
  transparent_background_level = 0,
  -- Whether italics should be used for keywords, builtin types 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,
})

Plugin support

See the wiki for the full list of plugins that have highlights.

Still TODO

  • 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"

Inspiration

About

A Lua port of the Everforest colour scheme


Languages

Language:Lua 99.8%Language:Makefile 0.2%