jb.nvim
jb.nvim copied to clipboard
Color scheme inspired by JetBrains IDEs.
🎨 JB for Neovim
Color scheme for Neovim, inspired by JetBrains IDEs.
| Dark | Light |
|---|---|
|
|
|
Features
- Supports both light and dark themes
- Terminal colors
- Lualine theme included
- Lualine component for a Navigation Bar similar to JetBrains IDEs but only for dir path part
- Generates
ProjectColorhighlight group based on the path - Generates highlights for icons
JBIcon<Kind> - Provides a table with icons visually similar to JB's ones
Supported Languages
| Language | Syntax | Treesitter | Semantic |
|---|---|---|---|
| .ignore Files | n/a | ✅ (gitignore) | n/a |
| ApacheConfig | ✅ | n/a | n/a |
| BibTeX | ⚠️ | ✅ (bibtex) | n/a |
| Blade | n/a | ✅ (EmranMR/tree-sitter-blade) | n/a |
| C/C++ | ⚠️ | ✅ (c,cpp) | n/a |
| CSS | ⚠️ | ✅ (css) | n/a |
| EditorConfig | n/a | ✅ (editorconfig) | n/a |
| Go | ⚠️ | ✅ (go) | ✅ (gopls) |
| Go Template | ⚠️ | ✅ (gotmpl) | n/a |
| GraphQL | ⚠️ | ✅ (graphql) | n/a |
| HTML | ⚠️ | ✅ (html) | n/a |
| Ini | ⚠️ | ✅ (ini) | n/a |
| Java | ⚠️ | ✅ (java, javadoc) | ✅ (jdtls) |
| JavaScript | ⚠️ | ✅ (javascript) | ✅ (ts_ls) |
| JSON | ✅ | ✅ (json) | n/a |
| LaTeX | ⚠️ | ✅ (latex) | n/a |
| Lua | ⚠️ | ✅ (lua,luadoc) | ✅ (lua_ls) |
| Markdown | ⚠️ | ✅ (markdown,markdown_inline) | n/a |
| Nix | ⚠️ | ✅ (nix) | ✅ (nil_lsp) |
| PHP | ⚠️ | ✅ (php,phpdoc) | n/a |
| Python | ⚠️ | ✅ (python) | n/a |
| RegExp | ⚠️ | ✅ (regex) | n/a |
| Ruby | ⚠️ | ✅ (ruby) | ✅ (ruby_lsp) |
| Rust | ⚠️ | ✅ (rust) | n/a |
| Sass/SCSS | ⚠️ | ✅ (scss) | n/a |
| Shell Script | ⚠️ | ✅ (bash) | n/a |
| TOML | ⚠️ | ✅ (toml) | n/a |
| Twig | n/a | ✅ (twig) | n/a |
| TypeScript | ⚠️ | ✅ (typescript) | ✅ (ts_ls) |
| TSX/JSX | ⚠️ | ✅ (tsx) | ✅ (ts_ls) |
| XML | ⚠️ | ✅ (xml) | n/a |
| YAML | ⚠️ | ✅ (yaml) | n/a |
| Zig | ⚠️ | ✅ (zig) | ✅ (zls) |
Supported Plugins
| Plugin | Source |
|---|---|
| avante.nvim | n/a |
| blink.cmp | n/a |
| copilot.vim | n/a |
| diffvie.nvim | n/a |
| fzf-lua | n/a |
| gitsigns.nvim | n/a |
| indent-blankline.nvim | n/a |
| neogit | n/a |
| netrw.vim | n/a |
| nvim-cmp | n/a |
| nvim-notify | n/a |
| nvim-scrollbar | n/a |
| snacks.nvim | n/a |
| supermaven-nvim | n/a |
| telescope.nvim | n/a |
| trouble.nvim | n/a |
Installation
Install the theme with your preferred package manager, such as folke/lazy.nvim:
return {
"nickkadutskyi/jb.nvim",
lazy = false,
priority = 1000,
opts = {},
config = function()
-- require("jb").setup({transparent = true})
vim.cmd("colorscheme jb")
end,
}
Plugin Notes
hrsh7th/nvim-cmp
If you use custom view for entries (opts>view>entries>name) cmp creates
a custom window instead of native built-in popup. To improve the view you
can link highlight groups like this:
window = {
completion = cmp.config.window.bordered({
winhighlight = "Normal:Pmenu,FloatBorder:DialogFloatBorder,CursorLine:PmenuSel,Search:None",
}),
documentation = cmp.config.window.bordered({
winhighlight = "Normal:Pmenu,FloatBorder:DialogFloatBorder,CursorLine:PmenuSel,Search:None",
}),
},
You can have any config just make sure Normal:Pmenu and
CursorLine:PmenuSel is present in winhighlight.
Usage
vim.cmd("colorscheme jb")
colorscheme jb
Change light/dark theme:
vim.o.background = "light"
set background=light
Configuration
[!IMPORTANT] Set the configuration BEFORE loading the color scheme
colorscheme jb.
Default Options
---@class jb.Config
M.defaults = {
-- Disable bold or italic for all highlights
disable_hl_args = {
bold = false,
italic = false,
},
-- Control snacks.nvim related styles
snacks = {
explorer = {
-- Enable folke/snacks.nvim styling for explorer
enabled = true,
},
},
telescope = {
-- Enable telescope.nvim styling
enabled = true,
},
-- Enable this to remove background from Normal and NormalNC
transparent = false,
}
Overriding Colors & Highlight Groups
n/a
Extras
Extra color configs for Kitty, Alacritty, Ghostty can be found in extras. To use them, refer to their respective documentation.
Contributing
n/a