Skip to content

Commit 3347663

Browse files
authored
Merge pull request #12 from doubleloop/customization
Allow for customization
2 parents 684b33e + b7fc232 commit 3347663

File tree

4 files changed

+86
-10
lines changed

4 files changed

+86
-10
lines changed

README.md

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,81 @@ In VimL:
3030
```viml
3131
syntax on
3232
colorscheme monokai
33-
set termguicolors
33+
colorscheme monokai_pro
34+
colorscheme monokai_soda
3435
```
3536

3637
In Lua:
3738

3839
```lua
39-
require('monokai')
40-
vim.cmd('colorscheme monokai')
40+
require('monokai').setup {}
41+
require('monokai').setup { palette = require('monokai').pro }
42+
require('monokai').setup { palette = require('monokai').soda }
43+
```
44+
45+
## Customization
46+
47+
It is possible to customize Monokai theme with `setup` function (only in Lua). Passed argument will override default configuration values witch are:
48+
49+
```lua
50+
{
51+
palette = {
52+
name = 'monokai',
53+
base1 = '#272a30',
54+
base2 = '#26292C',
55+
base3 = '#2E323C',
56+
base4 = '#333842',
57+
base5 = '#4d5154',
58+
base6 = '#9ca0a4',
59+
base7 = '#b1b1b1',
60+
border = '#a1b5b1',
61+
brown = '#504945',
62+
white = '#f8f8f0',
63+
grey = '#8F908A',
64+
black = '#000000',
65+
pink = '#f92672',
66+
green = '#a6e22e',
67+
aqua = '#66d9ef',
68+
yellow = '#e6db74',
69+
orange = '#fd971f',
70+
purple = '#ae81ff',
71+
red = '#e95678',
72+
diff_add = '#3d5213',
73+
diff_remove = '#4a0f23',
74+
diff_change = '#27406b',
75+
diff_text = '#23324d',
76+
},
77+
custom_hlgroups = {},
78+
}
79+
```
80+
81+
An example of this would be as follows:
82+
83+
```lua
84+
local monokai = require('monokai')
85+
local palette = monokai.classic
86+
monokai.setup {
87+
palette = {
88+
diff_text = '#133337',
89+
},
90+
custom_hlgroups = {
91+
TSInclude = {
92+
fg = palette.aqua,
93+
},
94+
GitSignsAdd = {
95+
fg = palette.green,
96+
bg = palette.base2
97+
},
98+
GitSignsDelete = {
99+
fg = palette.pink,
100+
bg = palette.base2
101+
},
102+
GitSignsChange = {
103+
fg = palette.orange,
104+
bg = palette.base2
105+
},
106+
}
107+
}
41108
```
42109

43110
## Extras

colors/monokai_pro.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
lua require('monokai').setup(require('monokai').pro)
1+
lua require('monokai').setup { palette = require('monokai').pro }

colors/monokai_soda.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
lua require('monokai').setup(require('monokai').soda)
1+
lua require('monokai').setup { palette = require('monokai').soda }

lua/monokai.lua

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,22 +591,31 @@ M.load_plugin_syntax = function(palette)
591591
}
592592
end
593593

594-
M.setup = function(palette)
595-
vim.cmd('hi clear')
596-
if vim.fn.exists('syntax_on') then
597-
vim.cmd('syntax reset')
594+
local default_config = {
595+
palette = M.classic,
596+
custom_hlgroups = {},
597+
}
598+
599+
M.setup = function(config)
600+
vim.cmd 'hi clear'
601+
if vim.fn.exists 'syntax_on' then
602+
vim.cmd 'syntax reset'
598603
end
599604
vim.o.background = 'dark'
600605
vim.o.termguicolors = true
601-
local used_palette = palette or M.classic
606+
config = config or {}
607+
config = vim.tbl_deep_extend('keep', config, default_config)
608+
local used_palette = config.palette or M.classic
602609
vim.g.colors_name = used_palette.name
603610
local syntax = M.load_syntax(used_palette)
611+
syntax = vim.tbl_deep_extend('keep', config.custom_hlgroups, syntax)
604612
for group, colors in pairs(syntax) do
605613
M.highlight(group, colors)
606614
end
607615
local async_load_plugin = nil
608616
async_load_plugin = vim.loop.new_async(vim.schedule_wrap(function()
609617
local plugin_syntax = M.load_plugin_syntax(used_palette)
618+
plugin_syntax = vim.tbl_deep_extend('keep', config.custom_hlgroups, plugin_syntax)
610619
for group, colors in pairs(plugin_syntax) do
611620
M.highlight(group, colors)
612621
end

0 commit comments

Comments
 (0)