This is theme is inspired by Inkpot, Jellybeans, Gruvbbox and Tokyonight.
- Neovim >= 0.9.0
- Support for TreeSitter and LSP
- Vim terminal colors
- Support for plugins
- Cmp
- Git Signs
- Flash
- Indent-Blankline
- LSP Diagnostics
- LSP Saga
- LSP Signature
- LSP Trouble
- Mini
- Telescope
- TreeSitter
- Rainbow Delimiters
- WhichKey
You can configure which plugin support you want to enable or disable. See Disabling Plugins below.
Here are code snippets for some common installation methods (use only one):
With folke/lazy.nvim
Github repo | Branch | Code snippet |
---|---|---|
'nightcity.nvim' colorscheme | Main | { 'cryptomilk/nightcity.nvim', version = false }, |
Stable | { 'cryptomilk/nightcity.nvim', version = '*' }, |
With wbthomason/packer.nvim
Github repo | Branch | Code snippet |
---|---|---|
'nightcity.nvim' colorscheme | Main | use 'cryptomilk/nightcity.nvim' |
With junegunn/vim-plug
Github repo | Branch | Code snippet |
---|---|---|
'nightcity.nvim' colorscheme | Main | Plug 'cryptomilk/nightcity.nvim' |
Enable the colorscheme:
vim.cmd.colorscheme('nightcity')
βοΈThe configuration needs to be set BEFORE loading the color scheme with
colorscheme nightcity
-- kabuki or afterlife
style = 'kabuki', -- The theme comes in two styles: kabuki or afterlife
terminal_colors = true, -- Use colors used when opening a `:terminal`
invert_colors = {
-- Invert colors for the following syntax groups
cursor = true,
diff = true,
error = true,
search = true,
selection = false,
signs = false,
statusline = true,
tabline = false,
},
font_style = {
-- Style to be applied to different syntax groups
comments = { italic = true },
keywords = { italic = true },
functions = { bold = true },
variables = {},
search = { bold = true },
},
-- Plugin integrations. Use `default = false` to disable all integrations.
plugins = { default = true },
--- You can override specific highlights to use other groups or a hex color
--- function will be called with a Highlights and ColorScheme table
---@param groups Highlight groups
---@param colors ColorScheme
on_highlights = function(groups, colors) end,
config.plugins
defines for which supported plugins highlight groups will
be created. Limiting number of integrations slightly decreases startup time.
It is a table with boolean (true
/false
) values which are applied as follows:
- If plugin name (as listed in above) has an entry, it is used.
- Otherwise
config.plugins.default
is used.
require('nightcity').setup({
plugins = {
default = true,
['hrsh7th/nvim-cmp'] = false
}
})
With config.on_highlights(highlights, colors)
you can override highlight
groups. This can be used to better match your style or enable certain features
of the LSP you might prefer.
require('nightcity').setup({
on_highlights = function(groups, c)
groups.String = { fg = c.green, bg = c.none }
groups['@lsp.typemod.parameter.readonly'] = { italic = true }
groups['@lsp.typemod.variable.readonly'] = { italic = true }
end
})
In order to show colors and undercurls and underlines in tmux probably you need to adjust your config file and add the following:
set -g default-terminal "tmux-256color"
# Truecolor (RGB) support
set -as terminal-overrides ',*:Tc'
# Undercurl support
# https://github.com/tmux/tmux/issues/1492#issuecomment-427939241
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
# Underscore colors
# https://github.com/tmux/tmux/pull/1771#issuecomment-500906522
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'