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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user