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 = {}
 | 
					local M = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function M.hello()
 | 
					-- Highlights {{{
 | 
				
			||||||
  print("Hello, Gruber!")
 | 
					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
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
return M
 | 
					return M
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user