editor
Slatewave for Neovim
A Lua colorscheme covering TreeSitter, LSP semantic tokens, and a lualine theme.
- Stars
- ★ 1
- Latest release
- 0.0.2 · 2 months ago
- Last commit
- 3 weeks ago
-- lua/slatewave/init.lua
local M = {}
M.opts = {
transparent = false,
italic_comments = true,
italic_keywords = true,
dim_inactive = false,
terminal_colors = true,
}
function M.setup(user_opts)
M.opts = vim.tbl_deep_extend('force', M.opts, user_opts or {})
require('slatewave.theme').load(M.opts)
end
return MAbout this theme
A Neovim colorscheme built as a Lua plugin — TreeSitter @* groups, LSP @lsp.* semantic tokens, and a matching lualine theme. Syntax mapping mirrors the VSCode port so the same code reads the same way in both editors.
Slatewave for Neovim is a proper Lua plugin, not a dropped-in colors
file — palette, editor groups, syntax groups, TreeSitter captures, and
LSP semantic tokens each live in their own module under
lua/slatewave/, with a single setup() entry point for overrides.
Covers core UI (Normal, Pmenu, StatusLine, Visual, Diff, Diagnostics,
LSP references, spell), the full :syntax group set, TreeSitter @*
captures, LSP @lsp.* semantic tokens, and a matching lualine theme.
Terminal ANSI palette mirrors the VSCode theme’s block so embedded
terminals stay on palette.
Verify
After install, switch the theme at runtime — strings should be teal, keywords sky, constants rose:
:colorscheme slatewave
Configure
require("slatewave").setup({...}) accepts these options (defaults
shown). Pass any of them in before the :colorscheme call:
require("slatewave").setup({
transparent = false, -- set Normal bg to NONE so the terminal shows through
italic_comments = true,
italic_keywords = true, -- applies to storage keywords and self / this / super
dim_inactive = false,
terminal_colors = true, -- sets g:terminal_color_0..15 to the Slatewave ANSI palette
}) Install
Don't have the CLI yet? Install the Slatewave CLI →
-
Slatewave CLI
Install with the Slatewave family CLI — one command, every theme.
slatewave install neovim -
lazy.nvim
Drop the plugin spec into your lazy.nvim config. Requires Neovim 0.9+ with termguicolors enabled.
return { "kevinlangleyjr/neovim-slatewave", name = "slatewave", priority = 1000, lazy = false, opts = {}, config = function(_, opts) require("slatewave").setup(opts) vim.cmd.colorscheme("slatewave") end, }- Drop the file under `~/.config/nvim/lua/plugins/` — lazy.nvim auto-imports it
- Run `:Lazy sync` and restart Neovim
-
packer.nvim
Add the use() call to your packer plugin list.
use({ "kevinlangleyjr/neovim-slatewave", as = "slatewave", config = function() require("slatewave").setup({}) vim.cmd.colorscheme("slatewave") end, })- Run `:PackerSync` to install
-
vim-plug
vim-plug has no config callback — call setup() yourself after :PlugInstall.
Plug 'kevinlangleyjr/neovim-slatewave', { 'as': 'slatewave' }- Add the Plug line to your init.vim / .vimrc
- Run `:PlugInstall`
- In init.lua, after the plug list — `require("slatewave").setup({}); vim.cmd.colorscheme("slatewave")`