diff options
Diffstat (limited to 'nvim/.config/nvim/colors/monochrome.vim')
-rw-r--r-- | nvim/.config/nvim/colors/monochrome.vim | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/nvim/.config/nvim/colors/monochrome.vim b/nvim/.config/nvim/colors/monochrome.vim new file mode 100644 index 0000000..5c4bf00 --- /dev/null +++ b/nvim/.config/nvim/colors/monochrome.vim | |||
@@ -0,0 +1,254 @@ | |||
1 | " Vim color scheme | ||
2 | " | ||
3 | " Name: monochrome.vim | ||
4 | " Maintainer: Xavier Noria <fxn@hashref.com> | ||
5 | " License: MIT | ||
6 | |||
7 | set background=dark | ||
8 | |||
9 | hi clear | ||
10 | if exists('syntax_on') | ||
11 | syntax reset | ||
12 | endif | ||
13 | |||
14 | let g:colors_name = 'monochrome' | ||
15 | |||
16 | let s:white = ['White', 15] | ||
17 | let s:black = ['#0e1111', 16] | ||
18 | let s:bgray = ['#181818', 233] | ||
19 | let s:lgray = ['LightGray', 255] | ||
20 | let s:cgray = ['#737373', 243] | ||
21 | let s:dgray = ['DarkGray', 248] | ||
22 | let s:sblue = ['#778899', 67] | ||
23 | let s:yellow = ['Yellow', 226] | ||
24 | let s:red = ['#b6403a', 160] | ||
25 | let s:green = ['#478226', 28] | ||
26 | |||
27 | let s:default_fg = s:lgray | ||
28 | let s:default_bg = s:black | ||
29 | |||
30 | let s:italic = 'italic' | ||
31 | let s:bold = 'bold' | ||
32 | let s:underline = 'underline' | ||
33 | let s:none = 'NONE' | ||
34 | |||
35 | let s:default_lst = [] | ||
36 | let s:default_str = '' | ||
37 | |||
38 | if !exists("g:monochrome_italic_comments") | ||
39 | let g:monochrome_italic_comments = 0 | ||
40 | endif | ||
41 | let s:comment_attr = g:monochrome_italic_comments ? s:italic : s:none | ||
42 | |||
43 | function! s:hi(...) | ||
44 | let group = a:1 | ||
45 | let fg = get(a:, 2, s:default_fg) | ||
46 | let bg = get(a:, 3, s:default_bg) | ||
47 | let attr = get(a:, 4, s:default_str) | ||
48 | |||
49 | let cmd = ['hi', group] | ||
50 | |||
51 | if fg != s:default_lst | ||
52 | call add(cmd, 'guifg='.fg[0]) | ||
53 | call add(cmd, 'ctermfg='.fg[1]) | ||
54 | endif | ||
55 | |||
56 | if bg != s:default_lst && bg != s:default_bg | ||
57 | call add(cmd, 'guibg='.bg[0]) | ||
58 | call add(cmd, 'ctermbg='.bg[1]) | ||
59 | endif | ||
60 | |||
61 | if attr != s:default_str | ||
62 | call add(cmd, 'gui='.attr) | ||
63 | call add(cmd, 'cterm='.attr) | ||
64 | endif | ||
65 | |||
66 | exec join(cmd, ' ') | ||
67 | endfunction | ||
68 | |||
69 | |||
70 | " | ||
71 | " --- Vim interface ------------------------------------------------------------ | ||
72 | " | ||
73 | |||
74 | call s:hi('Normal') | ||
75 | call s:hi('Cursor', s:black, s:lgray) | ||
76 | call s:hi('CursorLine', s:default_lst, s:bgray, s:none) | ||
77 | call s:hi('CursorLineNr', s:white, s:default_bg, s:bold) | ||
78 | call s:hi('ColorColumn', s:default_fg, s:bgray) | ||
79 | call s:hi('Search', s:white, s:sblue) | ||
80 | call s:hi('Visual', s:white, s:sblue) | ||
81 | call s:hi('ErrorMsg', s:white, s:red) | ||
82 | |||
83 | " Tildes at the bottom of a buffer, etc. | ||
84 | call s:hi('NonText', s:dgray) | ||
85 | |||
86 | " Folding. | ||
87 | call s:hi('FoldColumn', s:dgray) | ||
88 | call s:hi('Folded') | ||
89 | |||
90 | " Line numbers gutter. | ||
91 | call s:hi('LineNr', s:dgray) | ||
92 | |||
93 | " Small arrow used for tabs. | ||
94 | call s:hi('SpecialKey', s:sblue, s:default_bg, s:bold) | ||
95 | |||
96 | " File browsers. | ||
97 | call s:hi('Directory', s:white, s:default_bg, s:bold) | ||
98 | |||
99 | " Help. | ||
100 | call s:hi('helpSpecial') | ||
101 | call s:hi('helpHyperTextJump', s:sblue, s:default_bg, s:underline) | ||
102 | call s:hi('helpNote') | ||
103 | |||
104 | " Popup menu. | ||
105 | call s:hi('Pmenu', s:white, s:sblue) | ||
106 | call s:hi('PmenuSel', s:sblue, s:white) | ||
107 | |||
108 | " Notes. | ||
109 | call s:hi('Todo', s:black, s:yellow, s:bold) | ||
110 | |||
111 | " Signs. | ||
112 | call s:hi('SignColumn') | ||
113 | |||
114 | " | ||
115 | " --- Programming languages ---------------------------------------------------- | ||
116 | " | ||
117 | |||
118 | call s:hi('Statement', s:white, s:default_bg, s:bold) | ||
119 | call s:hi('PreProc', s:white, s:default_bg, s:bold) | ||
120 | call s:hi('String', s:sblue) | ||
121 | call s:hi('Comment', s:cgray, s:default_bg, s:comment_attr) | ||
122 | call s:hi('Constant') | ||
123 | call s:hi('Type', s:white, s:default_bg, s:bold) | ||
124 | call s:hi('Function', s:white) | ||
125 | call s:hi('Identifier') | ||
126 | call s:hi('Special') | ||
127 | call s:hi('MatchParen', s:lgray, s:black, s:underline) | ||
128 | |||
129 | |||
130 | " | ||
131 | " --- VimL --------------------------------------------------------------------- | ||
132 | " | ||
133 | |||
134 | call s:hi('vimOption') | ||
135 | call s:hi('vimGroup') | ||
136 | call s:hi('vimHiClear') | ||
137 | call s:hi('vimHiGroup') | ||
138 | call s:hi('vimHiAttrib') | ||
139 | call s:hi('vimHiGui') | ||
140 | call s:hi('vimHiGuiFgBg') | ||
141 | call s:hi('vimHiCTerm') | ||
142 | call s:hi('vimHiCTermFgBg') | ||
143 | call s:hi('vimSynType') | ||
144 | hi link vimCommentTitle Comment | ||
145 | |||
146 | |||
147 | " | ||
148 | " --- Ruby --------------------------------------------------------------------- | ||
149 | " | ||
150 | |||
151 | call s:hi('rubyConstant') | ||
152 | call s:hi('rubySharpBang', s:cgray) | ||
153 | call s:hi('rubySymbol', s:sblue) | ||
154 | call s:hi('rubyStringDelimiter', s:sblue) | ||
155 | call s:hi('rubyStringEscape', s:sblue) | ||
156 | call s:hi('rubyRegexpEscape', s:sblue) | ||
157 | call s:hi('rubyRegexpAnchor', s:sblue) | ||
158 | call s:hi('rubyRegexpSpecial', s:sblue) | ||
159 | |||
160 | |||
161 | " | ||
162 | " --- Elixir ------------------------------------------------------------------- | ||
163 | " | ||
164 | |||
165 | call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none) | ||
166 | call s:hi('elixirDelimiter', s:sblue) | ||
167 | call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none) | ||
168 | |||
169 | " For ||, ->, etc. | ||
170 | call s:hi('elixirOperator') | ||
171 | |||
172 | " Module attributes like @doc or @type. | ||
173 | hi link elixirVariable Statement | ||
174 | |||
175 | " While rendered as comments in other languages, docstrings are strings, | ||
176 | " experimental. | ||
177 | hi link elixirDocString String | ||
178 | hi link elixirDocTest String | ||
179 | hi link elixirStringDelimiter String | ||
180 | |||
181 | |||
182 | " | ||
183 | " --- Perl --------------------------------------------------------------------- | ||
184 | " | ||
185 | |||
186 | call s:hi('perlSharpBang', s:cgray) | ||
187 | call s:hi('perlStringStartEnd', s:sblue) | ||
188 | call s:hi('perlStringEscape', s:sblue) | ||
189 | call s:hi('perlMatchStartEnd', s:sblue) | ||
190 | |||
191 | |||
192 | " | ||
193 | " --- Python ------------------------------------------------------------------- | ||
194 | " | ||
195 | |||
196 | call s:hi('pythonEscape', s:sblue) | ||
197 | |||
198 | |||
199 | " | ||
200 | " --- JavaScript --------------------------------------------------------------- | ||
201 | " | ||
202 | |||
203 | call s:hi('javaScriptFunction', s:white, s:default_bg, s:bold) | ||
204 | |||
205 | |||
206 | " | ||
207 | " --- Diffs -------------------------------------------------------------------- | ||
208 | " | ||
209 | |||
210 | call s:hi('diffFile', s:cgray) | ||
211 | call s:hi('diffNewFile', s:cgray) | ||
212 | call s:hi('diffIndexLine', s:cgray) | ||
213 | call s:hi('diffLine', s:cgray) | ||
214 | call s:hi('diffSubname', s:cgray) | ||
215 | call s:hi('diffAdded', s:white, s:green) | ||
216 | call s:hi('diffRemoved', s:white, s:red) | ||
217 | |||
218 | |||
219 | " | ||
220 | " --- Markdown ----------------------------------------------------------------- | ||
221 | " | ||
222 | |||
223 | call s:hi('Title', s:white, s:default_bg, s:bold) | ||
224 | call s:hi('markdownHeadingDelimiter', s:white, s:default_bg, s:bold) | ||
225 | call s:hi('markdownHeadingRule', s:white, s:default_bg, s:bold) | ||
226 | call s:hi('markdownLinkText', s:sblue, s:default_bg, s:underline) | ||
227 | |||
228 | |||
229 | " | ||
230 | " --- vim-fugitive ------------------------------------------------------------- | ||
231 | " | ||
232 | |||
233 | call s:hi('gitcommitComment', s:default_fg, s:default_bg, s:none) | ||
234 | call s:hi('gitcommitOnBranch', s:default_fg, s:default_bg, s:none) | ||
235 | call s:hi('gitcommitBranch', s:sblue, s:default_bg, s:none) | ||
236 | call s:hi('gitcommitHeader', s:white, s:default_bg, s:bold) | ||
237 | call s:hi('gitcommitSelected', s:default_fg, s:default_bg, s:none) | ||
238 | call s:hi('gitcommitDiscarded', s:default_fg, s:default_bg, s:none) | ||
239 | call s:hi('gitcommitSelectedType', s:default_fg, s:default_bg, s:none) | ||
240 | call s:hi('gitcommitDiscardedType', s:default_fg, s:default_bg, s:none) | ||
241 | |||
242 | |||
243 | " | ||
244 | " --- NeoMake ------------------------------------------------------------------ | ||
245 | " | ||
246 | |||
247 | call s:hi('NeomakeMessageSign') | ||
248 | call s:hi('NeomakeWarningSign', s:sblue) | ||
249 | call s:hi('NeomakeErrorSign', s:yellow) | ||
250 | call s:hi('NeomakeInfoSign') | ||
251 | call s:hi('NeomakeError', s:yellow) | ||
252 | call s:hi('NeomakeInfo', s:default_fg, s:default_bg, s:bold) | ||
253 | call s:hi('NeomakeMessage') | ||
254 | call s:hi('NeomakeWarning', s:yellow) | ||