Skip to content

Latest commit

 

History

History
290 lines (224 loc) · 8.14 KB

README.md

File metadata and controls

290 lines (224 loc) · 8.14 KB

NEOMODERN.nvim

modern — simple — unintrusive

Note

With the release of v1, support was dropped for COFFEECAT, DARKFOREST, and DAYLIGHT. See Legacy Support for details.

Table of Contents

Gallery

❄️ ICECLIMBER

A theme with colors inspired from Nintendo's Ice Climbers characters

Dark Variant

image

Light Variant

image

🌱 GYOKURO

A fresh green tea inspired theme

Dark Variant

image

Light Variant

image

🍂 HOJICHA

A roasted green tea inspired theme

Dark Variant

image

Light Variant

image

🌷 ROSEPRIME

Inspired by ThePrimeagen's use of the Rosé-Pine theme

Dark Variant

image

Light Variant

image

Installation

Install via your favorite package manager:

-- Using lazy.nvim
{
  "cdmill/neomodern.nvim",
  lazy = false,
  priority = 1000,
  config = function()
    require("neomodern").setup({
      -- optional configuration here
    })
    require("neomodern").load()
  end,
},

Configuration

There are 4 themes included, each with a light and dark variant. The light theme is used when { variant = "light" } is passed to setup(options) or when vim.o.background = "light".

Default options are given below:

require("neomodern").setup({
  -----MAIN OPTIONS-----
  --
  -- Can be one of: 'iceclimber' | 'gyokuro' | 'hojicha' | 'roseprime'
  theme = "iceclimber",
  -- Can be one of: 'light' | 'dark', or set via vim.o.background
  variant = "dark",
  -- Use an alternate, darker bg
  alt_bg = false,
  -- If true, docstrings will be highlighted like strings, otherwise they will be
  -- highlighted like comments. Note, behavior is dependent on the language server.
  colored_docstrings = true,
  -- If true, highlights the {sign,fold} column the same as cursorline
  cursorline_gutter = true,
  -- If true, highlights the gutter darker than the bg
  dark_gutter = false,
  -- if true favor treesitter highlights over semantic highlights
  favor_treesitter_hl = false,
  -- Don't set background of floating windows. Recommended for when using floating
  -- windows with borders.
  plain_float = false,
  -- Show the end-of-buffer character
  show_eob = true,
  -- If true, enable the vim terminal colors
  term_colors = true,
  -- Keymap (in normal mode) to toggle between light and dark variants.
  toggle_variant_key = nil,
  -- Don't set background
  transparent = false,

  -----DIAGNOSTICS and CODE STYLE-----
  --
  diagnostics = {
    darker = true, -- Darker colors for diagnostic
    undercurl = true, -- Use undercurl for diagnostics
    background = true, -- Use background color for virtual text
  },
  -- The following table accepts values the same as the `gui` option for normal
  -- highlights. For example, `bold`, `italic`, `underline`, `none`.
  code_style = {
    comments = "italic",
    conditionals = "none",
    functions = "none",
    keywords = "none",
    headings = "bold", -- Markdown headings
    operators = "none",
    keyword_return = "none",
    strings = "none",
    variables = "none",
  },

  -----PLUGINS-----
  --
  -- The following options allow for more control over some plugin appearances.
  plugin = {
    lualine = {
      -- Bold lualine_a sections
      bold = true,
      -- Don't set section/component backgrounds. Recommended to not set
      -- section/component separators.
      plain = false,
    },
    cmp = { -- works for nvim.cmp and blink.nvim
      -- Don't highlight lsp-kind items. Only the current selection will be highlighted.
      plain = false,
      -- Reverse lsp-kind items' highlights in blink/cmp menu.
      reverse = false,
    },
  },

  -- CUSTOM HIGHLIGHTS --
  --
  -- Override default colors
  colors = {},
  -- Override highlight groups
  highlights = {},
})
-- Convenience function that simply calls `:colorscheme <theme>` with the theme
-- specified in your config.
require("neomodern").load()

Customization

Example using custom colors and highlights:

require("neomodern").setup {
  colors = {
    orange = '#ff8800', -- define a new color
    keyword = '#817faf', -- redefine an existing color
  },
  highlights = {
    ...
    ["@keyword"] = { fg = "$keyword", fmt = 'bold' },
    ["@function"] = { bg = "$orange", fmt = 'underline,italic' },
    ...
  },
}

See neomodern.palette for color names.

Supported Plugins

Extras

Available here

Legacy Support

With the release of v1, Neomodern dropped support for the legacy themes COFFEECAT, DARKFOREST, and DAYLIGHT. If you would still like to use these themes, you can use the following commit:

{
    "cdmill/neomodern.nvim",
    commit = "8eecbe1",
    opts = {
        -- your settings here
    }
}

Contributing

Pull requests are welcome.

If you are wanting support for a plugin, either open an issue or submit a pull request with your highlight additions in this file.

Inspiration