Initial commit

This commit is contained in:
ViViDboarder 2021-09-27 17:41:08 -07:00
commit 29deb8fa68
3 changed files with 403 additions and 0 deletions

25
Readme.md Normal file
View File

@ -0,0 +1,25 @@
# Wombuddy
A wombat colorscheme for Neovim.
This is based on wombat256mod and iTerm2 Wombat. Originally generated with ez.nvim and then later adapted to colorbuddy
## Usage
Packer:
```lua
use {
"<this url>",
requires = "tjdevries/colorbuddy.vim",
}
```
Enable using:
```lua
require("wombuddy").enable()
```
```vimscript
colorscheme wombuddy
```

3
colors/wombuddy.vim Normal file
View File

@ -0,0 +1,3 @@
lua require("wombuddy").enable()
" Some colors don't work correctly when using this method of enabling
" lua require("colorbuddy").colorscheme("wombuddy", false, { disable_defaults = true })

375
lua/wombuddy.lua Normal file
View File

@ -0,0 +1,375 @@
-- Name: Wombuddy
-- Description: Wombat colorscheme for Neovim
-- Author: ViViDboarder
local Color, c, Group, g, s = require("colorbuddy").setup()
local b = s.bold
local i = s.italic
local n = s.inverse
local uc = s.undercurl
local ul = s.underline
local r = s.reverse
local sto = s.standout
local no = s.NONE
local M = {}
function M.enable()
vim.g.colors_name = "wombuddy"
-- TODO: Maybe offer a light variant in the future
vim.o.background = "dark"
-- Create Primary Colors based on iTerm 2 colorscheme
Color.new("Black", "#000000")
Color.new("Red", "#ff786c")
Color.new("DarkRed", c.Red:dark():to_rgb())
Color.new("Green", "#bde97c")
Color.new('DarkGreen', c.Green:dark():to_rgb())
Color.new("Yellow", "#efdeab")
Color.new("DarkYellow", c.yellow:dark():to_rgb())
Color.new("Blue", "#6eb9f8")
Color.new("DarkBlue", c.Blue:dark():to_rgb())
Color.new("Magenta", "#ee87ff")
Color.new("DarkMagenta", c.Magenta:dark():to_rgb())
Color.new("Cyan", "#90fdf8")
Color.new("DarkCyan", c.Cyan:dark():to_rgb())
Color.new("White", "#e4e0d7")
Color.new("Orange", "#e5786d")
Color.new("DarkOrange", c.Orange:dark():to_rgb())
Color.new("Purple", "#d787ff")
Color.new('Violet', "#b294bb")
Color.new("Grey", "#574b49")
Color.new("Aqua", c.Cyan:to_rgb())
Color.new('Pink', c.Red:light():to_rgb())
-- A few grey scales
Color.new("grey_1", "#c3c6ca")
Color.new("grey_2", "#9c998e")
Color.new("grey_3", "#636066")
Color.new("grey_4", "#574b49")
Color.new("grey_5", "#444444")
-- Set some fg/bg colors
Color.new("dark_fg", "#e4e0d7")
Color.new("dark_bg", "#1e1e1e")
-- Override some colors used in colorbuddy plugins
Color.new("GreenBg", c.darkgreen:to_rgb())
Color.new("RedBg", c.darkred:to_rgb())
--[[
-- Mostly based on wombat256mod
Color.new("Red", "#ff5f55")
Color.new("DarkRed", "#e06c75")
Color.new("Blue", "#88b8f6")
Color.new("DarkBlue", "#528bff")
Color.new("Green", "#95e454")
Color.new('DarkGreen', "#50a14f")
Color.new("Orange", "#e5786d")
Color.new("DarkOrange", "#c18401")
Color.new("Yellow", "#cae982")
Color.new("DarkYellow", c.yellow:dark():to_rgb())
Color.new("Purple", "#d787ff")
Color.new('Violet', "#b294bb")
Color.new("Magenta", "#ff80ff")
Color.new("DarkMagenta", "#a626a4")
Color.new("Black", "#242424")
Color.new("Grey", "#a0a8b0")
Color.new("White", "#e3e0d7")
Color.new("Cyan", "#56B6C2")
Color.new("DarkCyan", "#80a0ff")
Color.new("Aqua", "#8ec07c")
Color.new('Pink', "#d291e4")
Color.new("fg", c.white)
Color.new("bg", c.black)
--]]
-- Create palette
-- TODO: Move these refrence groups rather than colors
Color.new("error_red", "#ff2026")
Color.new("line_grey", c.Grey:to_rgb())
Color.new("gutter_fg_grey", "#857b6f")
Color.new("cursor_grey", "#32322f")
Color.new("visual_grey", "#c3c6ca") -- Alternate #554d4b
Color.new("menu_grey", "#444444")
Color.new("special_grey", "#857b6f")
Color.new("special_yellow", c.DarkYellow:to_rgb())
Color.new("vertsplit", "#444444")
-- Determine if we'll use italics
local italics = (function()
if vim.g.wombuddy_disable_italics ~= true then
return i
else
return no
end
end)()
-- Colors
Group.new("Normal", c.dark_fg, c.dark_bg, no)
Group.new("bold", c.none, c.none, b)
Group.new("Comment", c.grey_2, c.none, italics)
Group.new("Constant", c.orange, c.none, no)
Group.new("String", c.green, c.none, no)
Group.new("Character", c.green, c.none, no)
Group.new("Number", c.orange, c.none, no)
Group.new("Boolean", c.blue, c.none, no)
Group.new("Float", c.orange, c.none, no)
Group.new("Identifier", c.yellow, c.none, no)
Group.new("Function", c.yellow, c.none, no)
Group.new("Statement", c.blue, c.none, no)
Group.new("Conditional", c.purple, c.none, no)
Group.new("Repeat", c.purple, c.none, no)
Group.new("Label", c.blue, c.none, no)
Group.new("Operator", c.purple, c.none, no)
Group.new("Keyword", c.blue, c.none, no)
Group.new("Exception", c.purple, c.none, no)
Group.new("PreProc", c.orange, c.none, no)
Group.new("Include", c.purple, c.none, no)
Group.new("Define", c.purple, c.none, no)
Group.new("Title", c.cyan, c.none, no)
Group.new("Macro", c.purple, c.none, no)
Group.new("PreCondit", c.blue, c.none, no)
Group.new("Type", c.blue, c.none, no)
Group.new("StorageClass", c.blue, c.none, no)
Group.new("Structure", c.yellow, c.none, no)
Group.new("Typedef", c.yellow, c.none, no)
Group.new("Special", c.special_yellow, c.none, italics)
Group.new("SpecialComment", c.special_yellow, c.none, no)
Group.new("Error", c.error_red, c.none, b + r)
Group.new("Todo", c.purple, c.none, b + italics)
Group.new("Underlined", c.cyan, c.none, u)
Group.new("Cursor", c.none, c.none, r)
Group.new("ColorColumn", c.none, c.cursor_grey, no)
Group.new("CursorLineNr", c.white, c.none, b)
Group.new("SignColumn", c.none, c.dark_bg:light(), no)
Group.new("Conceal", c.line_grey, c.none, no)
Group.new("CursorColumn", c.none, c.cursor_grey, no)
Group.new("CursorLine", c.none, c.cursor_grey, no)
Group.new("Directory", c.blue, c.none, no)
Group.new("DiffChange", c.yellow, c.none, u)
Group.new("DiffAdd", c.none, c.greenbg, no)
Group.new("DiffDelete", c.none, c.redbg, no)
Group.new("DiffText", c.black, c.yellow, no)
Group.new("ErrorMsg", c.error_red, c.none, no)
Group.new("VertSplit", c.vertsplit, c.none, no)
Group.new("Folded", c.line_grey, c.none, no)
Group.new("FoldColumn", c.none, c.none, no)
Group.new("IncSearch", c.yellow, c.line_grey, no)
Group.new("LineNr", c.gutter_fg_grey, c.none, no)
Group.new("MatchParen", c.blue, c.none, u)
Group.new("NonText", c.special_grey, c.none, no)
Group.new("Pmenu", c.white, c.menu_grey, no)
Group.new("PmenuSel", c.black, c.yellow, no)
Group.new("PmenuSbar", c.none, c.special_grey, no)
Group.new("PmenuThumb", c.none, c.white, no)
Group.new("Question", c.purple, c.none, no)
Group.new("QuickFixLine", c.black, c.yellow, no)
Group.new("Search", c.black, c.yellow, no)
Group.new("SpecialKey", c.special_grey, c.none, no)
Group.new("SpellBad", c.error_red, c.none, u)
Group.new("SpellCap", c.yellow, c.none, no)
Group.new("SpellLocal", c.yellow, c.none, no)
Group.new("SpellRare", c.yellow, c.none, no)
Group.new("StatusLine", c.white, c.cursor_grey, no)
Group.new("StatusLineNC", c.line_grey, c.none, no)
Group.new("StatusLineTerm", c.white, c.cursor_grey, no)
Group.new("StatusLineTermNC", c.cursor_grey, c.none, no)
Group.new("TabLine", c.line_grey, c.none, no)
Group.new("TabLineSel", c.white, c.none, no)
Group.new("TabLineFill", c.none, c.bg, no)
Group.new("Terminal", c.white, c.black, no)
Group.new("Visual", c.none, c.visual_grey, no)
Group.new("VisualNOS", c.visual_grey, c.none, no)
Group.new("WarningMsg", c.yellow, c.none, no)
Group.new("WildMenu", c.black, c.blue, no)
Group.new("EndOfBuffer", c.black, c.none, no)
-- -- Start Treesitter --
-- Misc
Group.new("TSError", c.error_red, c.none, no)
Group.new("TSPunctDelimiter", c.white, c.none, no)
Group.new("TSPunctBracket", c.white, c.none, no)
Group.new("TSPunctSpecial", c.white, c.none, no)
-- Constants
Group.new("TSConstant", c.blue, c.none, no)
Group.new("TSConstBuiltin", c.orange, c.none, no)
-- Not sure about this guy
Group.new("TSConstMacro", c.cyan, c.none, no)
Group.new("TSStringRegex", c.green, c.none, no)
Group.new("TSString", c.green, c.none, no)
Group.new("TSStringEscape", c.cyan, c.none, no)
Group.new("TSCharacter", c.green, c.none, no)
Group.new("TSNumber", c.orange, c.none, no)
Group.new("TSBoolean", c.orange, c.none, no)
Group.new("TSFloat", c.green, c.none, no)
Group.new("TSAnnotation", c.yellow, c.none, no)
Group.new("TSAttribute", c.cyan, c.none, no)
Group.new("TSNamespace", c.purple, c.none, no)
-- Functions
Group.new("TSFuncBuiltin", c.yellow, c.none, no)
Group.new("TSFunction", c.yellow, c.none, no)
Group.new("TSFuncMacro", c.yellow, c.none, no)
Group.new("TSParameter", c.cyan, c.none, no)
Group.new("TSParameterReference", c.cyan, c.none, no)
Group.new("TSMethod", c.blue, c.none, no)
Group.new("TSField", c.red, c.none, no)
Group.new("TSProperty", c.yellow, c.none, no)
Group.new("TSConstructor", c.cyan, c.none, no)
-- Keywords
Group.new("TSConditional", c.purple, c.none, no)
Group.new("TSRepeat", c.purple, c.none, no)
Group.new("TSLabel", c.blue, c.none, no)
-- Does not work for yield and return they should be diff then class and def
Group.new("TSKeyword", c.purple, c.none, no)
Group.new("TSKeywordFunction", c.blue, c.none, no)
Group.new("TSKeywordOperator", c.purple, c.none, no)
Group.new("TSOperator", c.white, c.none, no)
Group.new("TSException", c.purple, c.none, no)
Group.new("TSType", c.blue, c.none, no)
Group.new("TSTypeBuiltin", c.blue, c.none, no)
Group.new("TSStructure", c.purple, c.none, no)
Group.new("TSInclude", c.purple, c.none, no)
-- Variable
Group.new("TSVariable", c.cyan, c.none, no)
Group.new("TSVariableBuiltin", c.yellow, c.none, no)
-- Text
Group.new("TSText", c.pink, c.none, no)
Group.new("TSStrong", c.pink, c.none, no)
Group.new("TSEmphasis", c.pink, c.none, no)
Group.new("TSUnderline", c.pink, c.none, no)
Group.new("TSTitle", c.pink, c.none, no)
Group.new("TSLiteral", c.pink, c.none, no)
Group.new("TSURI", c.pink, c.none, no)
Group.new("TSComment", g.comment, c.none, no)
-- Tags
Group.new("TSTag", c.red, c.none, no)
Group.new("TSTagDelimiter", c.line_grey, c.none, no)
-- -- END Treesitter --
-- -- START Languages --
-- HTML (keep consistent with Markdown, below)
Group.new("htmlArg", c.yellow, c.none, no)
Group.new("htmlBold", c.yellow, c.none, b)
Group.new("htmlEndTag", c.white, c.none, no)
Group.new("htmlH1", c.blue, c.none, no)
Group.new("htmlH2", c.blue:light(), c.none, no)
Group.new("htmlH3", c.blue:light(), c.none, no)
Group.new("htmlH4", c.blue:light(), c.none, no)
Group.new("htmlH5", c.blue:light(), c.none, no)
Group.new("htmlH6", c.blue:light(), c.none, no)
Group.new("htmlItalic", c.purple, c.none, i)
Group.new("htmlLink", c.cyan, c.none, u)
Group.new("htmlSpecialChar", c.yellow, c.none, no)
Group.new("htmlSpecialTagName", c.blue, c.none, no)
Group.new("htmlTag", c.white, c.none, no)
Group.new("htmlTagN", c.blue, c.none, no)
Group.new("htmlTagName", c.blue, c.none, no)
Group.new("htmlTitle", c.white, c.none, no)
-- Markdown
Group.new("markdownBlockquote", c.line_grey, c.none, no)
Group.new("markdownBold", g.htmlBold.fg, g.htmlBold.bg, b)
Group.new("markdownCode", c.green, c.none, no)
Group.new("markdownCodeBlock", c.green, c.none, i)
Group.new("markdownCodeDelimiter", c.green, c.none, i)
Group.new("markdownH1", g.htmlH1.fg, g.htmlH1.bg, b + italics)
Group.new("markdownH2", g.htmlH2.fg, g.htmlH2.bg, b)
Group.new("markdownH3", g.htmlH3.fg, g.htmlH3.bg, italics)
Group.new("markdownH4", g.htmlH4.fg, g.htmlH4.bg, no)
Group.new("markdownH5", g.htmlH5.fg, g.htmlH5.bg, no)
Group.new("markdownH6", g.htmlH6.fg, g.htmlH6.bg, no)
Group.new("markdownHeadingDelimiter", c.red, c.none, no)
Group.new("markdownHeadingRule", c.line_grey, c.none, no)
Group.new("markdownId", c.purple, c.none, no)
Group.new("markdownIdDeclaration", c.blue, c.none, no)
Group.new("markdownIdDelimiter", c.purple, c.none, no)
Group.new("markdownItalic", g.htmlItalic.fg, g.htmlItalic.bg, i)
Group.new("markdownLinkDelimiter", c.purple, c.none, no)
Group.new("markdownLinkText", g.htmlLink.fg, g.htmlLink.bg, no)
Group.new("markdownListMarker", c.red, c.none, no)
Group.new("markdownOrderedListMarker", c.red, c.none, no)
Group.new("markdownRule", c.line_grey, c.none, no)
Group.new("markdownUrl", c.cyan, c.none, u)
-- -- END Languages --
-- -- START CoC --
Group.new("CocExplorerIndentLine", c.line_grey, c.none, no)
Group.new("CocExplorerBufferRoot", c.cyan, c.none, no)
Group.new("CocExplorerFileRoot", c.cyan, c.none, no)
Group.new("CocExplorerBufferFullPath", c.line_grey, c.none, no)
Group.new("CocExplorerFileFullPath", c.line_grey, c.none, no)
Group.new("CocExplorerBufferReadonly", c.purple, c.none, no)
Group.new("CocExplorerBufferModified", c.purple, c.none, no)
Group.new("CocExplorerBufferNameVisible", c.green, c.none, no)
Group.new("CocExplorerFileReadonly", c.purple, c.none, no)
Group.new("CocExplorerFileModified", c.purple, c.none, no)
Group.new("CocExplorerFileHidden", c.line_grey, c.none, no)
Group.new("CocExplorerHelpLine", c.purple, c.none, no)
-- -- END CoC --
-- -- START Easymotion --
Group.new("EasyMotionTarget", c.error_red, c.none, b)
Group.new("EasyMotionTarget2First", c.error_red, c.none, b)
Group.new("EasyMotionTarget2Second", c.error_red, c.none, b)
-- EasyMotionShade: ""
-- EasyMotionIncSearch:
-- EasyMotionMoveHL:
-- -- END Easymotion --
-- -- START Startify --
Group.new("StartifyNumber", c.orange, c.none, no)
Group.new("StartifySelect", c.green, c.none, no)
Group.new("StartifyBracket", c.blue, c.none, no)
Group.new("StartifySpecial", c.cyan, c.none, no)
Group.new("StartifyVar", c.blue, c.none, no)
Group.new("StartifyPath", c.cyan, c.none, no)
Group.new("StartifyFile", c.yellow, c.none, no)
Group.new("StartifySlash", c.white, c.none, no)
Group.new("StartifyHeader", c.green, c.none, no)
Group.new("StartifySection", c.purple, c.none, no)
Group.new("StartifyFooter", c.green, c.none, no)
-- -- END Startify --
-- -- START WhichKey --
Group.new("WhichKey", c.purple, c.none, no)
Group.new("WhichKeySeperator", c.green, c.none, no)
Group.new("WhichKeyGroup", c.blue, c.none, no)
Group.new("WhichKeyDesc", c.blue, c.none, no)
-- -- END WhichKey --
-- old stuff
Group.new("diffAdded", c.green, c.none, no)
Group.new("diffRemoved", c.red, c.none, no)
Group.new("diffFileId", c.blue, c.none, br)
Group.new("diffFile", c.special_grey, c.none, no)
Group.new("diffNewFile", c.green, c.none, no)
Group.new("diffOldFile", c.red, c.none, no)
Group.new("debugPc", c.none, c.cyan, no)
Group.new("debugBreakpoint", c.red, c.none, r)
-- VimWiki
Group.new("VimwikiHeader1", c.orange, c.none, b)
Group.new("VimwikiHeader2", c.green, c.none, b)
Group.new("VimwikiHeader3", c.blue, c.none, b)
Group.new("VimwikiHeader4", c.cyan, c.none, b)
Group.new("VimwikiHeader5", c.yellow, c.none, b)
Group.new("VimwikiHeader6", c.purple, c.none, b)
Group.new("VimwikiLink", c.cyan, c.none, no)
Group.new("VimwikiHeaderChar", c.line_grey, c.none, no)
Group.new("VimwikiHR", c.yellow, c.none, no)
Group.new("VimwikiList", c.orange, c.none, no)
Group.new("VimwikiTag", c.orange, c.none, no)
Group.new("VimwikiMarkers", c.line_grey, c.none, no)
end
-- Return module that allows ren-enabling
return M