Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brenoprata10/nvim-highlight-colors
Highlight colors for neovim
https://github.com/brenoprata10/nvim-highlight-colors
colors neovim nvim plugin vim
Last synced: 11 days ago
JSON representation
Highlight colors for neovim
- Host: GitHub
- URL: https://github.com/brenoprata10/nvim-highlight-colors
- Owner: brenoprata10
- Created: 2022-07-17T11:09:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-21T12:37:47.000Z (6 months ago)
- Last Synced: 2024-05-21T13:49:40.371Z (6 months ago)
- Topics: colors, neovim, nvim, plugin, vim
- Language: Lua
- Homepage:
- Size: 127 KB
- Stars: 486
- Watchers: 5
- Forks: 25
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-neovim - brenoprata10/nvim-highlight-colors - A plugin to highlight colors with Neovim. (Color / PHP)
README
# nvim-highlight-colors
> Highlight colors within Neovim
## Features
- Realtime color highlighting
- Supports hex, rgb, hsl, CSS variables, and Tailwind CSS
- LSP support! For any LSP that supports `textDocument/documentColor` like [tailwindcss](https://github.com/tailwindlabs/tailwindcss-intellisense) and [csslsp](https://github.com/microsoft/vscode-css-languageservice)
- Multiple rendering modes: background, foreground, and virtual text## Usage
Install via your preferred package manager:
```lua
'brenoprata10/nvim-highlight-colors'
```Initialize the plugin:
```lua
-- Ensure termguicolors is enabled if not already
vim.opt.termguicolors = truerequire('nvim-highlight-colors').setup({})
```### `nvim-cmp` integration
```lua
require("cmp").setup({
... other configs
formatting = {
format = require("nvim-highlight-colors").format
}
})
```or
```lua
require("cmp").setup({
... other configs
formatting = {
format = function(entry, item)
item = -- YOUR other configs come first
return require("nvim-highlight-colors").format(entry, item)
end
}
})
```#### `lspkind` integration
The out of the box `format` function does not necessarily play nicely with `lspkind` and potentially other formatters provided by plugins and may require manual intervention. Here is an example of making the integration work nicely with `lspkind`:
```lua
require("cmp").setup({
... other configs
formatting = {
format = function(entry, item)
local color_item = require("nvim-highlight-colors").format(entry, { kind = item.kind })
item = require("lspkind").cmp_format({
-- any lspkind format settings here
})(entry, item)
if color_item.abbr_hl_group then
item.kind_hl_group = color_item.abbr_hl_group
item.kind = color_item.abbr
end
return item
end
}
})
```## Options
```lua
require("nvim-highlight-colors").setup {
---Render style
---@usage 'background'|'foreground'|'virtual'
render = 'background',---Set virtual symbol (requires render to be set to 'virtual')
virtual_symbol = '■',---Set virtual symbol suffix (defaults to '')
virtual_symbol_prefix = '',---Set virtual symbol suffix (defaults to ' ')
virtual_symbol_suffix = ' ',---Set virtual symbol position()
---@usage 'inline'|'eol'|'eow'
---inline mimics VS Code style
---eol stands for `end of column` - Recommended to set `virtual_symbol_suffix = ''` when used.
---eow stands for `end of word` - Recommended to set `virtual_symbol_prefix = ' ' and virtual_symbol_suffix = ''` when used.
virtual_symbol_position = 'inline',---Highlight hex colors, e.g. '#FFFFFF'
enable_hex = true,---Highlight short hex colors e.g. '#fff'
enable_short_hex = true,---Highlight rgb colors, e.g. 'rgb(0 0 0)'
enable_rgb = true,---Highlight hsl colors, e.g. 'hsl(150deg 30% 40%)'
enable_hsl = true,---Highlight CSS variables, e.g. 'var(--testing-color)'
enable_var_usage = true,---Highlight named colors, e.g. 'green'
enable_named_colors = true,---Highlight tailwind colors, e.g. 'bg-blue-500'
enable_tailwind = false,---Set custom colors
---Label must be properly escaped with '%' to adhere to `string.gmatch`
--- :help string.gmatch
custom_colors = {
{ label = '%-%-theme%-primary%-color', color = '#0f1219' },
{ label = '%-%-theme%-secondary%-color', color = '#5a5d64' },
},-- Exclude filetypes or buftypes from highlighting e.g. 'exclude_buftypes = {'text'}'
exclude_filetypes = {},
exclude_buftypes = {}
}
```### Render modes
> Examples shown use `enable_tailwind = true`
**Background**
**Foreground**
**Virtual text**
**nvim-cmp integration**
![image](https://github.com/brenoprata10/nvim-highlight-colors/assets/26099427/0f6858fe-f7e2-4710-a22f-c3b3a455f74b)
## Commands
| Command | Description |
| :------------------------ | :------------------ |
| `:HighlightColors On` | Turn highlights on |
| `:HighlightColors Off` | Turn highlights off |
| `:HighlightColors Toggle` | Toggle highlights |Commands are also available in lua:
```lua
require("nvim-highlight-colors").turnOn()
require("nvim-highlight-colors").turnOff()
require("nvim-highlight-colors").toggle()
```