CityBear3/jb.nvim

Color scheme inspired by JetBrains IDEs.

โ˜… 0Forks 0GitHub โ†—Compare

README

๐ŸŽจ JB for Neovim

Color scheme for Neovim, inspired by JetBrains IDEs.

Dark Light
dark-js light-js

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 ProjectColor highlight 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

Contributors

nickkadutskyivikulikov

Issues