feat: add more highlight groups
This commit is contained in:
parent
94c369e1c2
commit
6bb2133e23
6
README.md
Normal file
6
README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# gruber-darker.nvim
|
||||
|
||||
_A port of a [port][gruber-darker] of an [Emacs colorscheme][gruber-dark]_
|
||||
|
||||
[gruber-darker]: https://github.com/rexim/gruber-darker
|
||||
[gruber-dark]: https://github.com
|
7
colors/GruberDarker.lua
Normal file
7
colors/GruberDarker.lua
Normal file
@ -0,0 +1,7 @@
|
||||
for k in pairs(package.loaded) do
|
||||
if k:match(".*gruber-darker.*") then
|
||||
package.loaded[k] = nil
|
||||
end
|
||||
end
|
||||
|
||||
require("gruber-darker").setup()
|
@ -1,7 +1,118 @@
|
||||
local c = require("gruber-darker.colors")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.hello()
|
||||
print("Hello, Gruber!")
|
||||
-- Highlights {{{
|
||||
local highlights = {
|
||||
Comment = { fg = c.default.brown },
|
||||
Cursor = { fg = c.default.none, bg = c.default.yellow },
|
||||
CursorLine = { fg = c.default.none, bg = c.default["bg+1"] },
|
||||
lCursor = { fg = c.default.none, bg = c.default.yellow },
|
||||
CursorIM = { fg = c.default.none, bg = c.default.yellow },
|
||||
LineNr = { fg = c.default["bg+4"] },
|
||||
CursorLineNr = { fg = c.default.yellow },
|
||||
DiffAdd = { fg = c.default.green, bg = c.default.none }, -- diff mode: Added line |diff.txt|
|
||||
-- DiffChange = { bg = c.diff.change }, -- diff mode: Changed line |diff.txt|
|
||||
DiffDelete = { fg = c.default["red+1"], bg = c.default.none }, -- diff mode: Deleted line |diff.txt|
|
||||
-- DiffText = { bg = c.diff.text }, -- diff mode: Changed text within a changed line |diff.txt|
|
||||
|
||||
-- These groups are not listed as default vim groups,
|
||||
-- but they are defacto standard group names for syntax highlighting.
|
||||
-- commented out groups should chain up to their "preferred" group by
|
||||
-- default,
|
||||
-- Uncomment and edit if you want more specific syntax highlighting.
|
||||
|
||||
Constant = { fg = c.default.quartz }, -- (preferred) any constant
|
||||
String = { fg = c.default.green }, -- a string constant: "this is a string"
|
||||
-- Character = { fg = c.green }, -- a character constant: 'c', '\n'
|
||||
-- Number = { }, -- a number constant: 234, 0xff
|
||||
-- Boolean = { }, -- a boolean constant: TRUE, false
|
||||
-- Float = { }, -- a floating point constant: 2.3e10
|
||||
|
||||
-- Identifier = { fg = c.magenta }, -- (preferred) any variable name
|
||||
Function = { fg = c.default.niagara }, -- function name (also: methods for classes)
|
||||
|
||||
-- Statement = { fg = c.magenta }, -- (preferred) any statement
|
||||
-- Conditional = { }, -- if, then, else, endif, switch, etc.
|
||||
-- Repeat = { }, -- for, do, while, etc.
|
||||
-- Label = { }, -- case, default, etc.
|
||||
-- Operator = { fg = c.blue5 }, -- "sizeof", "+", "*", etc.
|
||||
Keyword = { fg = c.default.yellow, bold = true }, -- any other keyword
|
||||
-- Exception = { }, -- try, catch, throw
|
||||
|
||||
PreProc = { fg = c.default.quartz }, -- (preferred) generic Preprocessor
|
||||
-- Include = { }, -- preprocessor #include
|
||||
-- Define = { }, -- preprocessor #define
|
||||
-- Macro = { }, -- same as Define
|
||||
-- PreCondit = { }, -- preprocessor #if, #else, #endif, etc.
|
||||
|
||||
-- Type = { fg = c.blue1 }, -- (preferred) int, long, char, etc.
|
||||
-- StorageClass = { }, -- static, register, volatile, etc.
|
||||
-- Structure = { }, -- struct, union, enum, etc.
|
||||
-- Typedef = { }, -- A typedef
|
||||
|
||||
-- Special = { fg = c.blue1 }, -- (preferred) any special symbol
|
||||
-- SpecialChar = { }, -- special character in a constant
|
||||
-- Tag = { }, -- you can use CTRL-] on this
|
||||
-- Delimiter = { }, -- character that needs attention
|
||||
-- SpecialComment= { }, -- special things inside a comment
|
||||
-- Debug = { }, -- debugging statements
|
||||
|
||||
Underlined = { underline = true }, -- (preferred) text that stands out, HTML links
|
||||
Bold = { bold = true },
|
||||
Italic = { italic = true },
|
||||
|
||||
-- ("Ignore", below, may be invisible...)
|
||||
-- Ignore = { }, -- (preferred) left blank, hidden |hl-Ignore|
|
||||
|
||||
-- Error = { fg = c.error }, -- (preferred) any erroneous construct
|
||||
-- Todo = { bg = c.yellow, fg = c.bg }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
|
||||
}
|
||||
-- }}}
|
||||
|
||||
---Delete GruberDarker autocmds when the
|
||||
---theme changes to something else
|
||||
function M.on_color_scheme()
|
||||
-- vim.api.nvim_del_autocmd("GruberDarker")
|
||||
-- vim.api.nvim_del_augroup_by_name("GruberDarker")
|
||||
vim.cmd([[autocmd! GruberDarker]])
|
||||
vim.cmd([[augroup! GruberDarker]])
|
||||
end
|
||||
|
||||
function M.setup()
|
||||
if vim.g.colors_name then
|
||||
vim.cmd.hi("clear")
|
||||
end
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
vim.g.colors_name = "GruberDarker"
|
||||
|
||||
-- set highlights here...
|
||||
for group, hl in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, group, hl)
|
||||
end
|
||||
|
||||
local gruber_darker_group = vim.api.nvim_create_augroup("GruberDarker", { clear = true })
|
||||
vim.api.nvim_create_autocmd("ColorSchemePre", {
|
||||
group = gruber_darker_group,
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
require("gruber-darker").on_color_scheme()
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
group = gruber_darker_group,
|
||||
pattern = "qf,help",
|
||||
callback = function()
|
||||
vim.cmd.setlocal("winhighlight=Normal:NormalSB,SignColumn:SignColumnSB")
|
||||
end,
|
||||
})
|
||||
|
||||
-- vim.cmd([[augroup GruberDarker]])
|
||||
-- vim.cmd([[ autocmd!]])
|
||||
-- vim.cmd([[ autocmd ColorSchemePre * lua require("gruber-darker").on_color_scheme()]])
|
||||
-- vim.cmd([[ autocmd FileType qf,help setlocal winhighlight=Normal:NormalSB,SignColumn:SignColumnSB]])
|
||||
-- vim.cmd([[augroup end]])
|
||||
end
|
||||
|
||||
return M
|
||||
|
Loading…
Reference in New Issue
Block a user