Merge pull request #3 from brianpooe/claude/match-jetbrains-darcula-theme-01DqS4D8akyP5Y8wUkaq3Xbm
feat: add comprehensive plugin support and improve LSP semantic highl…
This commit is contained in:
commit
110867de7d
2 changed files with 385 additions and 31 deletions
140
README.md
140
README.md
|
|
@ -1,48 +1,107 @@
|
||||||

|

|
||||||
# Darcula-solid.nvim
|
# Darcula-solid.nvim
|
||||||
A color-scheme that was heavily inspired by the JetBrains IntelliJ IDEA default theme, but was carefully refined to bring a more pleasant, aesthetic, and contrasting experience to our beloved Neovim.
|
A high-fidelity Neovim color scheme that perfectly matches the official JetBrains Darcula theme. Built with [Lush](https://github.com/rktjmp/lush.nvim) for easy customization and comprehensive plugin support.
|
||||||
|
|
||||||
## ✨ Features
|
## ✨ Features
|
||||||
* [Treesitter](https://github.com/nvim-treesitter/nvim-treesitter) support
|
* **Pixel-perfect JetBrains Darcula colors** - Official color palette from IntelliJ IDEA
|
||||||
* [NvimTree](https://github.com/kyazdani42/nvim-tree.lua) support
|
* **Full nvim-treesitter compatibility** - Complete support for all modern Tree-sitter capture groups
|
||||||
* 256 colors
|
* **LSP Semantic Tokens** - Enhanced highlighting with italic/bold modifiers for static, abstract, and readonly
|
||||||
* Beautiful contrasting (IntelliJ like) colors
|
* **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](https://github.com/Saghen/blink.cmp), [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
|
||||||
|
* **File Explorers**: [nvim-tree](https://github.com/nvim-tree/nvim-tree.lua), [neo-tree](https://github.com/nvim-neo-tree/neo-tree.nvim)
|
||||||
|
* **Fuzzy Finder**: [Telescope](https://github.com/nvim-telescope/telescope.nvim)
|
||||||
|
* **Git**: [GitSigns](https://github.com/lewis6991/gitsigns.nvim), [Neogit](https://github.com/TimUntersberger/neogit)
|
||||||
|
* **UI**: [Noice](https://github.com/folke/noice.nvim), [Bufferline](https://github.com/akinsho/bufferline.nvim), [Which-Key](https://github.com/folke/which-key.nvim)
|
||||||
|
* **Utilities**: [Lazy](https://github.com/folke/lazy.nvim), [Mason](https://github.com/williamboman/mason.nvim), [Trouble](https://github.com/folke/trouble.nvim)
|
||||||
|
* **Navigation**: [Hop](https://github.com/phaazon/hop.nvim), [Leap](https://github.com/ggandor/leap.nvim)
|
||||||
|
* **Notifications**: [nvim-notify](https://github.com/rcarriga/nvim-notify)
|
||||||
|
* **Indentation**: [indent-blankline](https://github.com/lukas-reineke/indent-blankline.nvim)
|
||||||
|
* **Dashboard**: [alpha-nvim](https://github.com/goolord/alpha-nvim)
|
||||||
|
|
||||||
## ⚡ Requirements
|
## ⚡ Requirements
|
||||||
|
* Neovim 0.8+ (recommended 0.9+)
|
||||||
* `termguicolors` enabled for true color support
|
* `termguicolors` enabled for true color support
|
||||||
* (recommended) [Neovim 0.5](https://github.com/neovim/neovim/releases)
|
* (recommended) [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) for enhanced syntax highlighting
|
||||||
* (recommended) [Treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
|
* (recommended) LSP server for semantic token highlighting
|
||||||
|
|
||||||
## 📦 Instalation
|
## 📦 Installation
|
||||||
With [Packer](https://github.com/wbthomason/packer.nvim)
|
|
||||||
|
### [lazy.nvim](https://github.com/folke/lazy.nvim) (Recommended)
|
||||||
```lua
|
```lua
|
||||||
use { "briones-gabriel/darcula-solid.nvim", requires = "rktjmp/lush.nvim" }
|
{
|
||||||
|
"briones-gabriel/darcula-solid.nvim",
|
||||||
|
dependencies = { "rktjmp/lush.nvim" },
|
||||||
|
priority = 1000, -- Load before other plugins
|
||||||
|
config = function()
|
||||||
|
vim.cmd("colorscheme darcula-solid")
|
||||||
|
end,
|
||||||
|
}
|
||||||
```
|
```
|
||||||
With [Plug](https://github.com/junegunn/vim-plug)
|
|
||||||
|
### [Packer](https://github.com/wbthomason/packer.nvim)
|
||||||
```lua
|
```lua
|
||||||
Plug 'briones-gabriel/darcula-solid.nvim'
|
use {
|
||||||
|
"briones-gabriel/darcula-solid.nvim",
|
||||||
|
requires = "rktjmp/lush.nvim"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### [vim-plug](https://github.com/junegunn/vim-plug)
|
||||||
|
```vim
|
||||||
Plug 'rktjmp/lush.nvim'
|
Plug 'rktjmp/lush.nvim'
|
||||||
|
Plug 'briones-gabriel/darcula-solid.nvim'
|
||||||
```
|
```
|
||||||
Or you can use your favorite plugin manager.
|
|
||||||
|
|
||||||
## 🔧 Configuration
|
## 🔧 Configuration
|
||||||
In your `init.vim`:
|
|
||||||
```vim
|
|
||||||
colorscheme darcula-solid
|
|
||||||
set termguicolors
|
|
||||||
```
|
|
||||||
|
|
||||||
Or in `init.lua`:
|
### Basic Setup
|
||||||
```lua
|
```lua
|
||||||
vim.cmd 'colorscheme darcula-solid'
|
-- init.lua
|
||||||
vim.cmd 'set termguicolors'
|
vim.opt.termguicolors = true
|
||||||
|
vim.cmd("colorscheme darcula-solid")
|
||||||
```
|
```
|
||||||
And because the plugin is build with [Lush](https://github.com/rktjmp/lush.nvim), you can freely copy and edit the color-scheme to fit your needs.
|
|
||||||
|
|
||||||
## How to customize
|
Or in Vimscript:
|
||||||
1. Create a `colors` directory if it doesn't exist at `~/.config/nvim/colors`.
|
```vim
|
||||||
2. Create a file for the modified theme: e.g `~/.config/nvim/colors/darcula-solid-custom`.
|
" init.vim
|
||||||
3. Set your modifications:
|
set termguicolors
|
||||||
|
colorscheme darcula-solid
|
||||||
|
```
|
||||||
|
|
||||||
|
### LSP Semantic Highlighting
|
||||||
|
For the best experience with semantic tokens (italic static/abstract members, etc.):
|
||||||
|
```lua
|
||||||
|
-- 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](https://github.com/rktjmp/lush.nvim), you can easily customize it to your preferences:
|
||||||
|
|
||||||
|
1. Create a `colors` directory: `~/.config/nvim/colors`
|
||||||
|
2. Create a custom theme file: `~/.config/nvim/colors/darcula-solid-custom.lua`
|
||||||
|
3. Extend the base theme:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
vim.opt.background = 'dark'
|
vim.opt.background = 'dark'
|
||||||
vim.g.colors_name = 'darcula-solid-custom'
|
vim.g.colors_name = 'darcula-solid-custom'
|
||||||
|
|
@ -50,24 +109,45 @@ vim.g.colors_name = 'darcula-solid-custom'
|
||||||
local lush = require('lush')
|
local lush = require('lush')
|
||||||
local darcula_solid = require('lush_theme.darcula-solid')
|
local darcula_solid = require('lush_theme.darcula-solid')
|
||||||
local spec = lush.extends({darcula_solid}).with(function()
|
local spec = lush.extends({darcula_solid}).with(function()
|
||||||
-- Your modifications go here...
|
-- Your modifications go here
|
||||||
-- Pallete copied from https://github.com/briones-gabriel/darcula-solid.nvim/blob/main/lua/lush_theme/darcula-solid.lua
|
|
||||||
local yellow = lush.hsl(37, 100, 71)
|
local yellow = lush.hsl(37, 100, 71)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
-- Override specific highlight groups
|
||||||
Type { fg = yellow },
|
Type { fg = yellow },
|
||||||
Function { fg = darcula_solid.Normal.fg },
|
Function { fg = darcula_solid.Normal.fg },
|
||||||
|
-- Add more customizations...
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
lush(spec)
|
lush(spec)
|
||||||
```
|
```
|
||||||
4. In your config file (e.g. ~/.config/nvim/init.lua) set the theme to your custom one as follows:
|
|
||||||
|
4. Apply your custom theme:
|
||||||
```lua
|
```lua
|
||||||
vim.cmd("colorscheme darcula-solid-custom")
|
vim.cmd("colorscheme darcula-solid-custom")
|
||||||
```
|
```
|
||||||
|
|
||||||
A big thanks to [@rorystephenson](https://github.com/rorystephenson) for suggesting this amazing idea! ♥️
|
## 🌟 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](https://github.com/rorystephenson) for the customization idea
|
||||||
|
- Built with [Lush](https://github.com/rktjmp/lush.nvim) by [@rktjmp](https://github.com/rktjmp)
|
||||||
|
|
||||||
## Preview
|
## Preview
|
||||||

|

|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,13 @@ return lush(function()
|
||||||
["@lsp.mod.deprecated"] = { gui = "strikethrough" },
|
["@lsp.mod.deprecated"] = { gui = "strikethrough" },
|
||||||
["@lsp.mod.readonly"] = { gui = "italic" },
|
["@lsp.mod.readonly"] = { gui = "italic" },
|
||||||
["@lsp.mod.static"] = { gui = "italic" },
|
["@lsp.mod.static"] = { gui = "italic" },
|
||||||
|
["@lsp.mod.abstract"] = { gui = "italic" },
|
||||||
|
["@lsp.mod.async"] = {},
|
||||||
|
["@lsp.mod.declaration"] = {},
|
||||||
|
["@lsp.mod.defaultLibrary"] = { gui = "italic" },
|
||||||
|
["@lsp.mod.definition"] = {},
|
||||||
|
["@lsp.mod.modification"] = {},
|
||||||
|
["@lsp.mod.documentation"] = {},
|
||||||
|
|
||||||
-- == LSP Diagnostics == --
|
-- == LSP Diagnostics == --
|
||||||
DiagnosticError({ fg = p.error }),
|
DiagnosticError({ fg = p.error }),
|
||||||
|
|
@ -485,11 +492,20 @@ return lush(function()
|
||||||
TelescopeNormal({ bg = p.bg_light, fg = p.fg }),
|
TelescopeNormal({ bg = p.bg_light, fg = p.fg }),
|
||||||
TelescopeBorder({ fg = p.border, bg = p.bg_light }),
|
TelescopeBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
TelescopePromptBorder({ fg = p.border, bg = p.bg_light }),
|
TelescopePromptBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
TelescopeResultsBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
TelescopePreviewBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
TelescopePromptTitle({ fg = p.keyword, bg = p.bg_light, gui = "bold" }),
|
TelescopePromptTitle({ fg = p.keyword, bg = p.bg_light, gui = "bold" }),
|
||||||
|
TelescopeResultsTitle({ fg = p.function_call, bg = p.bg_light, gui = "bold" }),
|
||||||
|
TelescopePreviewTitle({ fg = p.number, bg = p.bg_light, gui = "bold" }),
|
||||||
TelescopePromptPrefix({ fg = p.keyword }),
|
TelescopePromptPrefix({ fg = p.keyword }),
|
||||||
|
TelescopePromptCounter({ fg = p.fg_dark }),
|
||||||
TelescopeSelection({ bg = p.bg_visual, fg = p.fg }),
|
TelescopeSelection({ bg = p.bg_visual, fg = p.fg }),
|
||||||
TelescopeSelectionCaret({ fg = p.keyword, bg = p.bg_visual }),
|
TelescopeSelectionCaret({ fg = p.keyword, bg = p.bg_visual }),
|
||||||
|
TelescopeMultiSelection({ bg = p.bg_darker, fg = p.fg }),
|
||||||
|
TelescopeMultiIcon({ fg = p.keyword }),
|
||||||
TelescopeMatching({ fg = p.function_call, gui = "bold" }),
|
TelescopeMatching({ fg = p.function_call, gui = "bold" }),
|
||||||
|
TelescopePreviewLine({ bg = p.bg_visual }),
|
||||||
|
TelescopePreviewMatch({ fg = p.function_call, gui = "bold" }),
|
||||||
|
|
||||||
-- GitSigns
|
-- GitSigns
|
||||||
GitSignsAdd({ fg = p.hint }),
|
GitSignsAdd({ fg = p.hint }),
|
||||||
|
|
@ -500,6 +516,264 @@ return lush(function()
|
||||||
GitSignsDeleteLn({ bg = p.diff_delete }),
|
GitSignsDeleteLn({ bg = p.diff_delete }),
|
||||||
GitSignsCurrentLineBlame({ fg = p.fg_comment }),
|
GitSignsCurrentLineBlame({ fg = p.fg_comment }),
|
||||||
|
|
||||||
|
-- Blink.cmp (Completion Menu)
|
||||||
|
BlinkCmpMenu({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
BlinkCmpMenuBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
BlinkCmpMenuSelection({ bg = p.bg_visual, fg = p.fg }),
|
||||||
|
BlinkCmpLabel({ fg = p.fg }),
|
||||||
|
BlinkCmpLabelDeprecated({ fg = p.fg_dark, gui = "strikethrough" }),
|
||||||
|
BlinkCmpLabelMatch({ fg = p.function_call, gui = "bold" }),
|
||||||
|
BlinkCmpLabelDetail({ fg = p.fg_comment }),
|
||||||
|
BlinkCmpLabelDescription({ fg = p.fg_comment }),
|
||||||
|
BlinkCmpKind({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindText({ fg = p.fg }),
|
||||||
|
BlinkCmpKindMethod({ fg = p.function_call }),
|
||||||
|
BlinkCmpKindFunction({ fg = p.function_call }),
|
||||||
|
BlinkCmpKindConstructor({ fg = p.function_call }),
|
||||||
|
BlinkCmpKindField({ fg = p.member_variable }),
|
||||||
|
BlinkCmpKindVariable({ fg = p.fg }),
|
||||||
|
BlinkCmpKindClass({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindInterface({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindModule({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindProperty({ fg = p.member_variable }),
|
||||||
|
BlinkCmpKindUnit({ fg = p.number }),
|
||||||
|
BlinkCmpKindValue({ fg = p.constant }),
|
||||||
|
BlinkCmpKindEnum({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindKeyword({ fg = p.keyword }),
|
||||||
|
BlinkCmpKindSnippet({ fg = p.string }),
|
||||||
|
BlinkCmpKindColor({ fg = p.number }),
|
||||||
|
BlinkCmpKindFile({ fg = p.fg }),
|
||||||
|
BlinkCmpKindReference({ fg = p.number }),
|
||||||
|
BlinkCmpKindFolder({ fg = p.number }),
|
||||||
|
BlinkCmpKindEnumMember({ fg = p.constant }),
|
||||||
|
BlinkCmpKindConstant({ fg = p.constant }),
|
||||||
|
BlinkCmpKindStruct({ fg = p.type_name }),
|
||||||
|
BlinkCmpKindEvent({ fg = p.keyword }),
|
||||||
|
BlinkCmpKindOperator({ fg = p.fg }),
|
||||||
|
BlinkCmpKindTypeParameter({ fg = p.type_name }),
|
||||||
|
BlinkCmpDoc({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
BlinkCmpDocBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
BlinkCmpDocCursorLine({ bg = p.bg_current_line }),
|
||||||
|
BlinkCmpSignatureHelp({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
BlinkCmpSignatureHelpBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
BlinkCmpSignatureHelpActiveParameter({ fg = p.function_call, gui = "bold" }),
|
||||||
|
|
||||||
|
-- nvim-cmp (Alternative Completion)
|
||||||
|
CmpItemAbbr({ fg = p.fg }),
|
||||||
|
CmpItemAbbrDeprecated({ fg = p.fg_dark, gui = "strikethrough" }),
|
||||||
|
CmpItemAbbrMatch({ fg = p.function_call, gui = "bold" }),
|
||||||
|
CmpItemAbbrMatchFuzzy({ fg = p.function_call }),
|
||||||
|
CmpItemKind({ fg = p.type_name }),
|
||||||
|
CmpItemKindText({ fg = p.fg }),
|
||||||
|
CmpItemKindMethod({ fg = p.function_call }),
|
||||||
|
CmpItemKindFunction({ fg = p.function_call }),
|
||||||
|
CmpItemKindConstructor({ fg = p.function_call }),
|
||||||
|
CmpItemKindField({ fg = p.member_variable }),
|
||||||
|
CmpItemKindVariable({ fg = p.fg }),
|
||||||
|
CmpItemKindClass({ fg = p.type_name }),
|
||||||
|
CmpItemKindInterface({ fg = p.type_name }),
|
||||||
|
CmpItemKindModule({ fg = p.type_name }),
|
||||||
|
CmpItemKindProperty({ fg = p.member_variable }),
|
||||||
|
CmpItemKindUnit({ fg = p.number }),
|
||||||
|
CmpItemKindValue({ fg = p.constant }),
|
||||||
|
CmpItemKindEnum({ fg = p.type_name }),
|
||||||
|
CmpItemKindKeyword({ fg = p.keyword }),
|
||||||
|
CmpItemKindSnippet({ fg = p.string }),
|
||||||
|
CmpItemKindColor({ fg = p.number }),
|
||||||
|
CmpItemKindFile({ fg = p.fg }),
|
||||||
|
CmpItemKindReference({ fg = p.number }),
|
||||||
|
CmpItemKindFolder({ fg = p.number }),
|
||||||
|
CmpItemKindEnumMember({ fg = p.constant }),
|
||||||
|
CmpItemKindConstant({ fg = p.constant }),
|
||||||
|
CmpItemKindStruct({ fg = p.type_name }),
|
||||||
|
CmpItemKindEvent({ fg = p.keyword }),
|
||||||
|
CmpItemKindOperator({ fg = p.fg }),
|
||||||
|
CmpItemKindTypeParameter({ fg = p.type_name }),
|
||||||
|
CmpItemMenu({ fg = p.fg_comment }),
|
||||||
|
|
||||||
|
-- Bufferline
|
||||||
|
BufferLineFill({ bg = p.bg_gutter }),
|
||||||
|
BufferLineBackground({ bg = p.bg_gutter, fg = p.fg_dark }),
|
||||||
|
BufferLineBufferVisible({ bg = p.bg_gutter, fg = p.fg }),
|
||||||
|
BufferLineBufferSelected({ bg = p.bg, fg = p.fg, gui = "bold" }),
|
||||||
|
BufferLineTab({ bg = p.bg_gutter, fg = p.fg_dark }),
|
||||||
|
BufferLineTabSelected({ bg = p.bg, fg = p.keyword, gui = "bold" }),
|
||||||
|
BufferLineTabSeparator({ fg = p.bg_gutter, bg = p.bg_gutter }),
|
||||||
|
BufferLineTabSeparatorSelected({ fg = p.bg, bg = p.bg }),
|
||||||
|
BufferLineIndicatorSelected({ fg = p.keyword, bg = p.bg }),
|
||||||
|
BufferLineCloseButton({ bg = p.bg_gutter, fg = p.fg_dark }),
|
||||||
|
BufferLineCloseButtonVisible({ bg = p.bg_gutter, fg = p.fg }),
|
||||||
|
BufferLineCloseButtonSelected({ bg = p.bg, fg = p.error }),
|
||||||
|
BufferLineModified({ bg = p.bg_gutter, fg = p.warning }),
|
||||||
|
BufferLineModifiedVisible({ bg = p.bg_gutter, fg = p.warning }),
|
||||||
|
BufferLineModifiedSelected({ bg = p.bg, fg = p.warning }),
|
||||||
|
BufferLineDuplicate({ bg = p.bg_gutter, fg = p.fg_dark, gui = "italic" }),
|
||||||
|
BufferLineDuplicateVisible({ bg = p.bg_gutter, fg = p.fg, gui = "italic" }),
|
||||||
|
BufferLineDuplicateSelected({ bg = p.bg, fg = p.fg, gui = "bold,italic" }),
|
||||||
|
BufferLineSeparator({ fg = p.bg_gutter, bg = p.bg_gutter }),
|
||||||
|
BufferLineSeparatorVisible({ fg = p.bg_gutter, bg = p.bg_gutter }),
|
||||||
|
BufferLineSeparatorSelected({ fg = p.bg, bg = p.bg }),
|
||||||
|
BufferLineError({ bg = p.bg_gutter, fg = p.error }),
|
||||||
|
BufferLineErrorDiagnostic({ bg = p.bg_gutter, fg = p.error }),
|
||||||
|
BufferLineWarning({ bg = p.bg_gutter, fg = p.warning }),
|
||||||
|
BufferLineWarningDiagnostic({ bg = p.bg_gutter, fg = p.warning }),
|
||||||
|
BufferLineInfo({ bg = p.bg_gutter, fg = p.info }),
|
||||||
|
BufferLineInfoDiagnostic({ bg = p.bg_gutter, fg = p.info }),
|
||||||
|
BufferLineHint({ bg = p.bg_gutter, fg = p.hint }),
|
||||||
|
BufferLineHintDiagnostic({ bg = p.bg_gutter, fg = p.hint }),
|
||||||
|
|
||||||
|
-- Noice (Command Line UI)
|
||||||
|
NoicePopup({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
NoicePopupBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
NoiceCmdline({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
NoiceCmdlinePopup({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
NoiceCmdlinePopupBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
NoiceCmdlinePopupTitle({ fg = p.keyword, bg = p.bg_light, gui = "bold" }),
|
||||||
|
NoiceCmdlineIcon({ fg = p.keyword }),
|
||||||
|
NoiceCmdlineIconSearch({ fg = p.function_call }),
|
||||||
|
NoiceConfirm({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
NoiceConfirmBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
NoiceSplit({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
NoiceSplitBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
|
||||||
|
-- Lazy (Plugin Manager)
|
||||||
|
LazyNormal({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
LazyButton({ bg = p.bg_darker, fg = p.fg }),
|
||||||
|
LazyButtonActive({ bg = p.bg_visual, fg = p.fg, gui = "bold" }),
|
||||||
|
LazyH1({ fg = p.keyword, gui = "bold" }),
|
||||||
|
LazyH2({ fg = p.function_call }),
|
||||||
|
LazyComment({ fg = p.fg_comment, gui = "italic" }),
|
||||||
|
LazyCommit({ fg = p.number }),
|
||||||
|
LazyCommitType({ fg = p.keyword }),
|
||||||
|
LazyDimmed({ fg = p.fg_dark }),
|
||||||
|
LazyProp({ fg = p.member_variable }),
|
||||||
|
LazyValue({ fg = p.string }),
|
||||||
|
LazyDir({ fg = p.number }),
|
||||||
|
LazyUrl({ fg = p.blue, gui = "underline" }),
|
||||||
|
LazySpecial({ fg = p.function_call }),
|
||||||
|
LazyReasonPlugin({ fg = p.keyword }),
|
||||||
|
LazyReasonRuntime({ fg = p.type_name }),
|
||||||
|
LazyReasonCmd({ fg = p.function_call }),
|
||||||
|
LazyReasonSource({ fg = p.number }),
|
||||||
|
LazyReasonFt({ fg = p.string }),
|
||||||
|
LazyReasonKeys({ fg = p.constant }),
|
||||||
|
LazyReasonEvent({ fg = p.warning }),
|
||||||
|
LazyReasonStart({ fg = p.hint }),
|
||||||
|
LazyProgressDone({ fg = p.hint, gui = "bold" }),
|
||||||
|
LazyProgressTodo({ fg = p.fg_dark }),
|
||||||
|
|
||||||
|
-- Which-Key
|
||||||
|
WhichKey({ fg = p.keyword, gui = "bold" }),
|
||||||
|
WhichKeyGroup({ fg = p.function_call }),
|
||||||
|
WhichKeyDesc({ fg = p.fg }),
|
||||||
|
WhichKeySeparator({ fg = p.fg_dark }),
|
||||||
|
WhichKeyFloat({ bg = p.bg_light }),
|
||||||
|
WhichKeyBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
WhichKeyValue({ fg = p.string }),
|
||||||
|
|
||||||
|
-- Indent Blankline
|
||||||
|
IndentBlanklineChar({ fg = p.bg_darker }),
|
||||||
|
IndentBlanklineContextChar({ fg = p.fg_dark }),
|
||||||
|
IndentBlanklineContextStart({ gui = "underline", sp = p.fg_dark }),
|
||||||
|
IndentBlanklineSpaceChar({ fg = p.bg_darker }),
|
||||||
|
IndentBlanklineSpaceCharBlankline({ fg = p.bg_darker }),
|
||||||
|
IblIndent({ fg = p.bg_darker }),
|
||||||
|
IblScope({ fg = p.fg_dark }),
|
||||||
|
IblWhitespace({ fg = p.bg_darker }),
|
||||||
|
|
||||||
|
-- Neo-tree
|
||||||
|
NeoTreeNormal({ bg = p.bg, fg = p.fg }),
|
||||||
|
NeoTreeNormalNC({ bg = p.bg, fg = p.fg }),
|
||||||
|
NeoTreeDirectoryIcon({ fg = p.number }),
|
||||||
|
NeoTreeDirectoryName({ fg = p.fg }),
|
||||||
|
NeoTreeFileName({ fg = p.fg }),
|
||||||
|
NeoTreeFileNameOpened({ fg = p.number, gui = "bold" }),
|
||||||
|
NeoTreeFloatBorder({ fg = p.border, bg = p.bg_light }),
|
||||||
|
NeoTreeFloatTitle({ fg = p.keyword, bg = p.bg_light, gui = "bold" }),
|
||||||
|
NeoTreeGitAdded({ fg = p.hint }),
|
||||||
|
NeoTreeGitConflict({ fg = p.error }),
|
||||||
|
NeoTreeGitDeleted({ fg = p.error }),
|
||||||
|
NeoTreeGitIgnored({ fg = p.fg_dark }),
|
||||||
|
NeoTreeGitModified({ fg = p.warning }),
|
||||||
|
NeoTreeGitUnstaged({ fg = p.warning }),
|
||||||
|
NeoTreeGitUntracked({ fg = p.hint }),
|
||||||
|
NeoTreeGitStaged({ fg = p.hint }),
|
||||||
|
NeoTreeIndentMarker({ fg = p.bg_darker }),
|
||||||
|
NeoTreeRootName({ fg = p.keyword, gui = "bold" }),
|
||||||
|
NeoTreeSymbolicLinkTarget({ fg = p.blue }),
|
||||||
|
NeoTreeTitleBar({ fg = p.keyword, bg = p.bg_light, gui = "bold" }),
|
||||||
|
NeoTreeWindowsHidden({ fg = p.fg_dark }),
|
||||||
|
|
||||||
|
-- Trouble
|
||||||
|
TroubleNormal({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
TroubleText({ fg = p.fg }),
|
||||||
|
TroubleCount({ fg = p.constant, gui = "bold" }),
|
||||||
|
TroubleCode({ fg = p.fg_comment }),
|
||||||
|
TroubleFile({ fg = p.number }),
|
||||||
|
TroubleDirectory({ fg = p.type_name }),
|
||||||
|
TroubleSource({ fg = p.fg_comment }),
|
||||||
|
TroubleLocation({ fg = p.fg_dark }),
|
||||||
|
TroubleIndent({ fg = p.bg_darker }),
|
||||||
|
TroubleFoldIcon({ fg = p.fg_dark }),
|
||||||
|
TroubleSignError({ fg = p.error }),
|
||||||
|
TroubleSignWarning({ fg = p.warning }),
|
||||||
|
TroubleSignInformation({ fg = p.info }),
|
||||||
|
TroubleSignHint({ fg = p.hint }),
|
||||||
|
TroubleError({ fg = p.error }),
|
||||||
|
TroubleWarning({ fg = p.warning }),
|
||||||
|
TroubleInformation({ fg = p.info }),
|
||||||
|
TroubleHint({ fg = p.hint }),
|
||||||
|
|
||||||
|
-- Mason
|
||||||
|
MasonNormal({ bg = p.bg_light, fg = p.fg }),
|
||||||
|
MasonHeader({ fg = p.keyword, bg = p.bg_darker, gui = "bold" }),
|
||||||
|
MasonHeaderSecondary({ fg = p.function_call, bg = p.bg_darker, gui = "bold" }),
|
||||||
|
MasonHighlight({ fg = p.function_call }),
|
||||||
|
MasonHighlightBlock({ fg = p.bg, bg = p.function_call }),
|
||||||
|
MasonHighlightBlockBold({ fg = p.bg, bg = p.function_call, gui = "bold" }),
|
||||||
|
MasonHighlightSecondary({ fg = p.number }),
|
||||||
|
MasonHighlightBlockSecondary({ fg = p.bg, bg = p.number }),
|
||||||
|
MasonHighlightBlockBoldSecondary({ fg = p.bg, bg = p.number, gui = "bold" }),
|
||||||
|
MasonMuted({ fg = p.fg_dark }),
|
||||||
|
MasonMutedBlock({ fg = p.bg, bg = p.fg_dark }),
|
||||||
|
MasonMutedBlockBold({ fg = p.bg, bg = p.fg_dark, gui = "bold" }),
|
||||||
|
MasonError({ fg = p.error }),
|
||||||
|
MasonWarning({ fg = p.warning }),
|
||||||
|
MasonHeading({ fg = p.keyword, gui = "bold" }),
|
||||||
|
|
||||||
|
-- Alpha/Dashboard
|
||||||
|
AlphaHeader({ fg = p.function_call, gui = "bold" }),
|
||||||
|
AlphaButtons({ fg = p.keyword }),
|
||||||
|
AlphaShortcut({ fg = p.number, gui = "bold" }),
|
||||||
|
AlphaFooter({ fg = p.fg_comment, gui = "italic" }),
|
||||||
|
|
||||||
|
-- Hop/Leap (Jump Navigation)
|
||||||
|
HopNextKey({ fg = p.error, gui = "bold" }),
|
||||||
|
HopNextKey1({ fg = p.function_call, gui = "bold" }),
|
||||||
|
HopNextKey2({ fg = p.number }),
|
||||||
|
HopUnmatched({ fg = p.fg_dark }),
|
||||||
|
LeapMatch({ fg = p.error, gui = "bold,underline" }),
|
||||||
|
LeapLabelPrimary({ fg = p.error, gui = "bold" }),
|
||||||
|
LeapLabelSecondary({ fg = p.function_call, gui = "bold" }),
|
||||||
|
LeapBackdrop({ fg = p.fg_dark }),
|
||||||
|
|
||||||
|
-- Notify
|
||||||
|
NotifyERRORBorder({ fg = p.error }),
|
||||||
|
NotifyWARNBorder({ fg = p.warning }),
|
||||||
|
NotifyINFOBorder({ fg = p.info }),
|
||||||
|
NotifyDEBUGBorder({ fg = p.fg_dark }),
|
||||||
|
NotifyTRACEBorder({ fg = p.constant }),
|
||||||
|
NotifyERRORIcon({ fg = p.error }),
|
||||||
|
NotifyWARNIcon({ fg = p.warning }),
|
||||||
|
NotifyINFOIcon({ fg = p.info }),
|
||||||
|
NotifyDEBUGIcon({ fg = p.fg_dark }),
|
||||||
|
NotifyTRACEIcon({ fg = p.constant }),
|
||||||
|
NotifyERRORTitle({ fg = p.error, gui = "bold" }),
|
||||||
|
NotifyWARNTitle({ fg = p.warning, gui = "bold" }),
|
||||||
|
NotifyINFOTitle({ fg = p.info, gui = "bold" }),
|
||||||
|
NotifyDEBUGTitle({ fg = p.fg_dark, gui = "bold" }),
|
||||||
|
NotifyTRACETitle({ fg = p.constant, gui = "bold" }),
|
||||||
|
|
||||||
-- Diff
|
-- Diff
|
||||||
DiffAdd({ bg = p.diff_add }),
|
DiffAdd({ bg = p.diff_add }),
|
||||||
DiffChange({ bg = p.diff_modified }),
|
DiffChange({ bg = p.diff_modified }),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue