vscode.nvim (formerly codedark.nvim
) is a Lua port of vim-code-dark colorscheme for neovim with VScode's light and dark theme
- BarBar
- BufferLine
- Dashboard
- Git Gutter
- Git Signs
- Indent Blankline
- LSP
- Lualine
- Neotest
- Neogit
- NvimTree
- Telescope
- Treesitter
- Trouble
- nvim-cmp
- nvim-compe
- nvim-dap-ui
- vim-illuminate
- rainbow-delimiters
Install via package manager
-- Packer:
use 'Mofiqul/vscode.nvim'
" Vim-Plug:
Plug 'Mofiqul/vscode.nvim'
The theme is manipulating the treesitter highlight queries as follows:
[
"export"
] @keyword.import
[
"break"
] @keyword.repeat
[
"break"
] @keyword.conditional
this mimics the behavior of VSCode's default theme more closely. Be aware that this is not a perfect solution but as far as we know, there is no better way to achieve this and most popular themes are doing the same thing.
-- Lua:
-- For dark theme (neovim's default)
vim.o.background = 'dark'
-- For light theme
vim.o.background = 'light'
local c = require('vscode.colors').get_colors()
require('vscode').setup({
-- Alternatively set style in setup
-- style = 'light'
-- Enable transparent background
transparent = true,
-- Enable italic comment
italic_comments = true,
-- Underline `@markup.link.*` variants
underline_links = true,
-- Disable nvim-tree background color
disable_nvimtree_bg = true,
-- Override colors (see ./lua/vscode/colors.lua)
color_overrides = {
vscLineNumber = '#FFFFFF',
},
-- Override highlight groups (see ./lua/vscode/theme.lua)
group_overrides = {
-- this supports the same val table as vim.api.nvim_set_hl
-- use colors from this colorscheme by requiring vscode.colors!
Cursor = { fg=c.vscDarkBlue, bg=c.vscLightGreen, bold=true },
}
})
-- require('vscode').load()
-- load the theme without affecting devicon colors.
vim.cmd.colorscheme "vscode"
If you are using lualine
, you can also enable the provided theme:
require('lualine').setup({
options = {
-- ...
theme = 'vscode',
-- ...
},
})
nvim-bufferline.lua setup for exact match as screenshots
require("bufferline").setup({
options = {
buffer_close_icon = "",
close_command = "bdelete %d",
close_icon = "",
indicator = {
style = "icon",
icon = " ",
},
left_trunc_marker = "",
modified_icon = "●",
offsets = { { filetype = "NvimTree", text = "EXPLORER", text_align = "center" } },
right_mouse_command = "bdelete! %d",
right_trunc_marker = "",
show_close_icon = false,
show_tab_indicators = true,
},
highlights = {
fill = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "StatusLineNC" },
},
background = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "StatusLine" },
},
buffer_visible = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
buffer_selected = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
separator = {
fg = { attribute = "bg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "StatusLine" },
},
separator_selected = {
fg = { attribute = "fg", highlight = "Special" },
bg = { attribute = "bg", highlight = "Normal" },
},
separator_visible = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "StatusLineNC" },
},
close_button = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "StatusLine" },
},
close_button_selected = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
close_button_visible = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
},
})
:lua require('vscode').load('light')
:lua require('vscode').load('dark')
- Alacritty color scheme
- Foot color scheme
- fzf color scheme
- galaxyline.nvim theme
- i3 and Sway color scheme
- Kitty color scheme
- Linux console color scheme
- WezTerm color scheme
- Windows Terminal color scheme
- Xresources color scheme
- zathura color scheme
Pull requests are welcome! Feel free to send one with an explanation!