A Lua implementation of lighthaus-theme/vim-lighthaus, with added built-in LSP support!
Default (:colorscheme lighthaus
):
Dark (:colorscheme lighthaus_dark
):
Lighthaus.nvim requires termguicolors
.
init.lua
:
vim.opt.termguicolors = true
.vimrc
/init.vim
:
set termguicolors
You can override colors using the Lua API. Calling setup()
will load the colorscheme, so you can omit :colorscheme lighthaus
from
your config when using the Lua API.
require('lighthaus').setup({
-- set true to use dark bg by default
bg_dark = false,
-- see colors.lua to see colors table, set overrides here to be merged with defaults
colors = {},
-- set to 'underline' to replace undercurl with underline
-- or empty string '' to disable
lsp_underline_style = 'undercurl',
-- make background transparent, this overrides `bg_dark`
transparent = false,
-- use an italic font for comments
italic_comments = false,
-- use an italic font for keywords/conditionals
italic_keywords = false,
})
To have undercurls appear properly and in color, add the following to your tmux
config file:
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
- Telescope.nvim
- bufferline.nvim*
- lualine
- neo-tree.nvim
- nvim-tree
- gitsigns
- nvim-treesitter
- nvim-cmp
- lsp_extensions Rust inlay hints**
- ale
- beacon
- coc
- fzf
- NERDTree
- vim-fugitive
- vim-gitgutter
- vim-indent-guides
- vim-plug
- vim-signature
- vim-signify
- vim-startify
- vimtex
- vimwiki
Plus Neovim's built-in LSP. Feel free to create a PR to support other plugins not listed here.
* Bufferline.nvim requires some configuration to integrate nicely with the theme. Recommended bufferline.nvim config:
local colors = require('lighthaus.colors')
require('bufferline').setup({
options = {
separator_style = 'slant',
themable = true,
},
highlights = {
fill = {
guifg = colors.blacker_than_black,
guibg = colors.blacker_than_black,
},
separator = {
guifg = colors.blacker_than_black,
guibg = colors.bg_dark,
},
separator_visible = {
guifg = colors.blacker_than_black,
guibg = colors.bg_dark,
},
separator_selected = {
guifg = colors.blacker_than_black,
guibg = colors.bg_dark,
},
},
})
** lighthaus.nvim
adds a highlight group RustInlayHint
that can be used for the Rust inlay hints added by lsp_extensions
.
You need to specify the highlight group to use in lsp_extensions
config. Example:
require('lsp_extensions').inlay_hints({
highlight = 'RustInlayHint',
enabled = { 'TypeHint', 'ChainingHint', 'ParameterHint' },
})
There are two Lualine themes, 'lighthaus', and 'lighthaus_dark'. Use the one that corresponds to your selected Lighthaus theme.
Setup:
require('lualine').setup({
options = {
-- your other options here
theme = 'lighthaus', -- or theme = 'lighthaus_dark'
},
-- your other lualine config here
})