A color scheme for those who love the IntelliJ style but prefer the Neovims feel.
Find a file
2025-11-15 15:16:43 +02:00
colors refactor!: rename theme from darcula-solid to darcula 2025-11-15 13:10:08 +00:00
lua/lush_theme refactor!: rename theme from darcula-solid to darcula 2025-11-15 13:10:08 +00:00
resources docs: modernize README and update branding 2025-11-15 13:15:04 +00:00
DEBUGGING.md refactor!: rename theme from darcula-solid to darcula 2025-11-15 13:10:08 +00:00
README.md docs: modernize README and update branding 2025-11-15 13:15:04 +00:00

Darcula.nvim

A pixel-perfect Neovim port of the iconic JetBrains Darcula theme

Neovim License

Darcula.nvim

High-fidelity color scheme that matches the official JetBrains Darcula theme. Built with Lush for extensibility and comprehensive plugin support.

Features

  • 🎨 Pixel-perfect colors - Official JetBrains Darcula palette from IntelliJ IDEA
  • 🌳 Full Tree-sitter support - Complete coverage of modern capture groups
  • 🔍 LSP Semantic Tokens - Rich highlighting with italic/bold modifiers
  • 🔌 20+ plugin integrations - Popular plugins themed out of the box
  • 🎯 True color - Full 24-bit color support
  • Fast - Optimized for performance
  • 🛠️ Customizable - Easy to extend with Lush

📸 Preview

Darcula.nvim Preview

🎨 Color Palette

Element Color Preview
Background #2B2B2B #2B2B2B
Foreground #A9B7C6 #A9B7C6
Keywords #CC7832 #CC7832
Strings #6A8759 #6A8759
Numbers #6897BB #6897BB
Comments #808080 #808080
Functions #FFC66D #FFC66D
Types #769AA5 #769AA5
Constants #9876AA #9876AA
Annotations #BBB529 #BBB529

📦 Installation

{
  "briones-gabriel/darcula-solid.nvim",
  dependencies = { "rktjmp/lush.nvim" },
  priority = 1000,
  config = function()
    vim.cmd("colorscheme darcula")
  end,
}

packer.nvim

use {
  "briones-gabriel/darcula-solid.nvim",
  requires = "rktjmp/lush.nvim",
  config = function()
    vim.cmd("colorscheme darcula")
  end,
}

vim-plug

Plug 'rktjmp/lush.nvim'
Plug 'briones-gabriel/darcula-solid.nvim'

Then in your init.vim:

set termguicolors
colorscheme darcula

🚀 Quick Start

-- Minimal setup (init.lua)
vim.opt.termguicolors = true
vim.cmd("colorscheme darcula")

🔌 Supported Plugins

Expand to see all supported plugins

Completion

File Explorers

Fuzzy Finders

Git Integration

UI Enhancements

Development Tools

Navigation

Other

🛠️ Customization

Darcula.nvim is built with Lush, making customization straightforward:

-- ~/.config/nvim/colors/my-darcula.lua
vim.opt.background = 'dark'
vim.g.colors_name = 'my-darcula'

local lush = require('lush')
local darcula = require('lush_theme.darcula')

local spec = lush.extends({darcula}).with(function()
  return {
    -- Customize any highlight group
    Comment { fg = "#888888", gui = "italic" },
    Function { fg = "#FFD700" },
    -- Add your customizations...
  }
end)

lush(spec)

Then apply it:

vim.cmd("colorscheme my-darcula")

🌟 Highlights

Tree-sitter Support

Complete support for modern nvim-treesitter:

  • All @keyword.* variants
  • Full @markup.* groups for Markdown
  • @diff.* groups for version control
  • LSP semantic tokens with modifiers

JetBrains Conventions

Authentic IDE-like styling:

  • Bold keywords for visibility
  • Italic static members, abstract classes, readonly properties
  • Italic documentation comments
  • Strikethrough deprecated items

Language-Specific Features

  • TypeScript/JavaScript: Distinct this keyword (orange vs purple member variables)
  • Angular: Custom component highlighting in templates
  • React/TSX/JSX: Component name highlighting
  • HTML: Web components and custom elements support

🐛 Troubleshooting

Having issues? See the Debugging Guide for detailed troubleshooting.

Quick Fixes

" Reload everything
:colorscheme darcula
:LspRestart
:write | edit

Check what's highlighting an element:

:Inspect

Ensure parsers are installed:

:TSInstall typescript javascript html tsx jsx

💡 Tips

  • LSP Semantic Tokens: Enable for best results (most LSPs enable by default)
  • True Colors: Ensure your terminal supports 24-bit color
  • Font Ligatures: Use a font with ligatures (JetBrains Mono, Fira Code, etc.)

📚 Requirements

  • Neovim ≥ 0.8 (0.9+ recommended)
  • termguicolors enabled
  • nvim-treesitter (recommended)
  • LSP server (recommended)

🤝 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests
  • Improve documentation

📄 License

MIT License - see LICENSE for details

🙏 Credits


Made with ❤️ for Neovim