A color scheme for those who love the IntelliJ style but prefer the Neovims feel.
|
|
||
|---|---|---|
| colors | ||
| lua/lush_theme | ||
| resources | ||
| README.md | ||
Darcula-solid.nvim
A high-fidelity Neovim color scheme that perfectly matches the official JetBrains Darcula theme. Built with Lush for easy customization and comprehensive plugin support.
✨ Features
- Pixel-perfect JetBrains Darcula colors - Official color palette from IntelliJ IDEA
- Full nvim-treesitter compatibility - Complete support for all modern Tree-sitter capture groups
- LSP Semantic Tokens - Enhanced highlighting with italic/bold modifiers for static, abstract, and readonly
- Extensive plugin support - 20+ popular plugins themed out of the box
- 256 colors - Full true color support
- Backward compatible - Legacy Tree-sitter groups maintained for older versions
🎨 Supported Plugins
- Completion: blink.cmp, nvim-cmp
- File Explorers: nvim-tree, neo-tree
- Fuzzy Finder: Telescope
- Git: GitSigns, Neogit
- UI: Noice, Bufferline, Which-Key
- Utilities: Lazy, Mason, Trouble
- Navigation: Hop, Leap
- Notifications: nvim-notify
- Indentation: indent-blankline
- Dashboard: alpha-nvim
⚡ Requirements
- Neovim 0.8+ (recommended 0.9+)
termguicolorsenabled for true color support- (recommended) nvim-treesitter for enhanced syntax highlighting
- (recommended) LSP server for semantic token highlighting
📦 Installation
lazy.nvim (Recommended)
{
"briones-gabriel/darcula-solid.nvim",
dependencies = { "rktjmp/lush.nvim" },
priority = 1000, -- Load before other plugins
config = function()
vim.cmd("colorscheme darcula-solid")
end,
}
Packer
use {
"briones-gabriel/darcula-solid.nvim",
requires = "rktjmp/lush.nvim"
}
vim-plug
Plug 'rktjmp/lush.nvim'
Plug 'briones-gabriel/darcula-solid.nvim'
🔧 Configuration
Basic Setup
-- init.lua
vim.opt.termguicolors = true
vim.cmd("colorscheme darcula-solid")
Or in Vimscript:
" init.vim
set termguicolors
colorscheme darcula-solid
LSP Semantic Highlighting
For the best experience with semantic tokens (italic static/abstract members, etc.):
-- Ensure your LSP is configured to enable semantic tokens
-- Most LSP servers enable this by default
🎨 Color Palette
The theme uses the official JetBrains Darcula colors:
| Element | Color | Hex |
|---|---|---|
| Background | Dark Gray | #2B2B2B |
| Foreground | Light Gray-Blue | #A9B7C6 |
| Keywords | Orange | #CC7832 |
| Strings | Green | #6A8759 |
| Numbers | Blue | #6897BB |
| Comments | Gray | #808080 |
| Functions | Yellow | #FFC66D |
| Types/Classes | Teal-Blue | #769AA5 |
| Constants | Purple | #9876AA |
| Annotations | Olive-Yellow | #BBB529 |
🛠️ Customization
Because the theme is built with Lush, you can easily customize it to your preferences:
- Create a
colorsdirectory:~/.config/nvim/colors - Create a custom theme file:
~/.config/nvim/colors/darcula-solid-custom.lua - Extend the base theme:
vim.opt.background = 'dark'
vim.g.colors_name = 'darcula-solid-custom'
local lush = require('lush')
local darcula_solid = require('lush_theme.darcula-solid')
local spec = lush.extends({darcula_solid}).with(function()
-- Your modifications go here
local yellow = lush.hsl(37, 100, 71)
return {
-- Override specific highlight groups
Type { fg = yellow },
Function { fg = darcula_solid.Normal.fg },
-- Add more customizations...
}
end)
lush(spec)
- Apply your custom theme:
vim.cmd("colorscheme darcula-solid-custom")
🌟 Highlights
Tree-sitter Support
Full support for all modern nvim-treesitter capture groups including:
- All
@keyword.*variants (coroutine, import, type, modifier, etc.) - Complete
@markup.*groups for Markdown and other markup languages @diff.*groups for version control- LSP semantic tokens with modifiers (static, abstract, readonly, deprecated)
Italic & Bold Refinements
Following JetBrains conventions:
- Bold keywords for better visibility
- Italic for static members, abstract classes, and readonly properties
- Italic documentation comments
- Strikethrough for deprecated items
🙏 Credits
- Original theme inspired by the official JetBrains Darcula theme
- Thanks to @rorystephenson for the customization idea
- Built with Lush by @rktjmp

