Skip to content

Commit

Permalink
Rewrite s:Hi() for convenience
Browse files Browse the repository at this point in the history
  • Loading branch information
yous committed Mar 27, 2019
1 parent 6434f1a commit 5e4e747
Showing 1 changed file with 84 additions and 84 deletions.
168 changes: 84 additions & 84 deletions colors/open-color.vim
Original file line number Diff line number Diff line change
Expand Up @@ -10,94 +10,104 @@ set cpoptions&vim

let s:background = &background

function! s:Hi(item, fg, bg)
function! s:Hi(item, fg, bg, ...)
if empty(a:fg) && empty(a:bg) && a:0 == 0
return
endif
let l:hi = printf('highlight %s', a:item)
if !empty(a:fg)
if a:fg !=# 'NONE'
let l:fg_256 = s:rgb_map[a:fg]
let l:fg_gui = printf('#%s', a:fg)
else
let l:fg_256 = a:fg
if type(a:fg) == type('')
let l:fg_gui = a:fg
let l:fg_256 = a:fg
else
let l:fg_gui = a:fg[0]
let l:fg_256 = a:fg[1]
endif
execute printf('highlight %s ctermfg=%s guifg=%s',
\ a:item, l:fg_256, l:fg_gui)
let l:hi = printf('%s ctermfg=%s guifg=%s', l:hi, l:fg_256, l:fg_gui)
endif
if !empty(a:bg)
if a:bg !=# 'NONE'
let l:bg_256 = s:rgb_map[a:bg]
let l:bg_gui = printf('#%s', a:bg)
else
let l:bg_256 = a:bg
if type(a:fg) == type('')
let l:bg_gui = a:bg
let l:bg_256 = a:bg
else
let l:bg_gui = a:bg[0]
let l:bg_256 = a:bg[1]
endif
execute printf('highlight %s ctermbg=%s guibg=%s',
\ a:item, l:bg_256, l:bg_gui)
let l:hi = printf('%s ctermbg=%s guibg=%s', l:hi, l:bg_256, l:bg_gui)
endif
if a:0 > 0
let l:hi .= ' ' . a:1
endif
execute l:hi
endfunction

if !exists('s:rgb_map')
if !exists('s:oc')
let s:oc = {}
let s:oc['gray'] = [
\ 'f8f9fa', 'f1f3f5', 'e9ecef', 'dee2e6', 'ced4da',
\ 'adb5bd', '868e96', '495057', '343a40', '212529']
\ ['#f8f9fa', 15], ['#f1f3f5', 255], ['#e9ecef', 255],
\ ['#dee2e6', 254], ['#ced4da', 252], ['#adb5bd', 249],
\ ['#868e96', 245], ['#495057', 239], ['#343a40', 237],
\ ['#212529', 235]]
let s:oc['red'] = [
\ 'fff5f5', 'ffe3e3', 'ffc9c9', 'ffa8a8', 'ff8787',
\ 'ff6b6b', 'fa5252', 'f03e3e', 'e03131', 'c92a2a']
\ ['#fff5f5', 15], ['#ffe3e3', 224], ['#ffc9c9', 224],
\ ['#ffa8a8', 217], ['#ff8787', 210], ['#ff6b6b', 203],
\ ['#fa5252', 203], ['#f03e3e', 167], ['#e03131', 160],
\ ['#c92a2a', 160]]
let s:oc['pink'] = [
\ 'fff0f6', 'ffdeeb', 'fcc2d7', 'faa2c1', 'f783ac',
\ 'f06595', 'e64980', 'd6336c', 'c2255c', 'a61e4d']
\ ['#fff0f6', 255], ['#ffdeeb', 224], ['#fcc2d7', 218],
\ ['#faa2c1', 218], ['#f783ac', 211], ['#f06595', 204],
\ ['#e64980', 168], ['#d6336c', 161], ['#c2255c', 161],
\ ['#a61e4d', 125]]
let s:oc['grape'] = [
\ 'f8f0fc', 'f3d9fa', 'eebefa', 'e599f7', 'da77f2',
\ 'cc5de8', 'be4bdb', 'ae3ec9', '9c36b5', '862e9c']
\ ['#f8f0fc', 255], ['#f3d9fa', 225], ['#eebefa', 219],
\ ['#e599f7', 213], ['#da77f2', 177], ['#cc5de8', 171],
\ ['#be4bdb', 134], ['#ae3ec9', 128], ['#9c36b5', 127],
\ ['#862e9c', 91]]
let s:oc['violet'] = [
\ 'f3f0ff', 'e5dbff', 'd0bfff', 'b197fc', '9775fa',
\ '845ef7', '7950f2', '7048e8', '6741d9', '5f3dc4']
\ ['#f3f0ff', 255], ['#e5dbff', 189], ['#d0bfff', 183],
\ ['#b197fc', 141], ['#9775fa', 141], ['#845ef7', 99],
\ ['#7950f2', 99], ['#7048e8', 62], ['#6741d9', 57],
\ ['#5f3dc4', 56]]
let s:oc['indigo'] = [
\ 'edf2ff', 'dbe4ff', 'bac8ff', '91a7ff', '748ffc',
\ '5c7cfa', '4c6ef5', '4263eb', '3b5bdb', '364fc7']
\ ['#edf2ff', 255], ['#dbe4ff', 189], ['#bac8ff', 147],
\ ['#91a7ff', 111], ['#748ffc', 69], ['#5c7cfa', 69],
\ ['#4c6ef5', 27], ['#4263eb', 27], ['#3b5bdb', 27],
\ ['#364fc7', 26]]
let s:oc['blue'] = [
\ 'e8f7ff', 'ccedff', 'a3daff', '72c3fc', '4dadf7',
\ '329af0', '228ae6', '1c7cd6', '1b6ec2', '1862ab']
\ ['#e8f7ff', 255], ['#ccedff', 153], ['#a3daff', 153],
\ ['#72c3fc', 75], ['#4dadf7', 75], ['#329af0', 75],
\ ['#228ae6', 32], ['#1c7cd6', 32], ['#1b6ec2', 25],
\ ['#1862ab', 25]]
let s:oc['cyan'] = [
\ 'e3fafc', 'c5f6fa', '99e9f2', '66d9e8', '3bc9db',
\ '22b8cf', '15aabf', '1098ad', '0c8599', '0b7285']
\ ['#e3fafc', 195], ['#c5f6fa', 195], ['#99e9f2', 116],
\ ['#66d9e8', 80], ['#3bc9db', 45], ['#22b8cf', 38],
\ ['#15aabf', 38], ['#1098ad', 31], ['#0c8599', 31],
\ ['#0b7285', 6]]
let s:oc['teal'] = [
\ 'e6fcf5', 'c3fae8', '96f2d7', '63e6be', '38d9a9',
\ '20c997', '12b886', '0ca678', '099268', '087f5b']
\ ['#e6fcf5', 195], ['#c3fae8', 158], ['#96f2d7', 122],
\ ['#63e6be', 79], ['#38d9a9', 43], ['#20c997', 43],
\ ['#12b886', 36], ['#0ca678', 36], ['#099268', 29],
\ ['#087f5b', 29]]
let s:oc['green'] = [
\ 'ebfbee', 'd3f9d8', 'b2f2bb', '8ce99a', '69db7c',
\ '51cf66', '40c057', '37b24d', '2f9e44', '2b8a3e']
\ ['#ebfbee', 195], ['#d3f9d8', 194], ['#b2f2bb', 157],
\ ['#8ce99a', 114], ['#69db7c', 78], ['#51cf66', 77],
\ ['#40c057', 71], ['#37b24d', 71], ['#2f9e44', 35],
\ ['#2b8a3e', 28]]
let s:oc['lime'] = [
\ 'f4fce3', 'e9fac8', 'd8f5a2', 'c0eb75', 'a9e34b',
\ '94d82d', '82c91e', '74b816', '66a80f', '5c940d']
\ ['#f4fce3', 230], ['#e9fac8', 230], ['#d8f5a2', 193],
\ ['#c0eb75', 192], ['#a9e34b', 149], ['#94d82d', 112],
\ ['#82c91e', 112], ['#74b816', 70], ['#66a80f', 70],
\ ['#5c940d', 64]]
let s:oc['yellow'] = [
\ 'fff9db', 'fff3bf', 'ffec99', 'ffe066', 'ffd43b',
\ 'fcc419', 'fab005', 'f59f00', 'f08c00', 'e67700']
\ ['#fff9db', 230], ['#fff3bf', 230], ['#ffec99', 229],
\ ['#ffe066', 221], ['#ffd43b', 220], ['#fcc419', 220],
\ ['#fab005', 214], ['#f59f00', 214], ['#f08c00', 208],
\ ['#e67700', 208]]
let s:oc['orange'] = [
\ 'fff4e6', 'ffe8cc', 'ffd8a8', 'ffc078', 'ffa94d',
\ 'ff922b', 'fd7e14', 'f76707', 'e8590c', 'd9480f']

let s:oc_256 = {
\ 'gray': [15, 255, 255, 254, 252, 249, 245, 239, 237, 235],
\ 'red': [15, 224, 224, 217, 210, 203, 203, 167, 160, 160],
\ 'pink': [255, 224, 218, 218, 211, 204, 168, 161, 161, 125],
\ 'grape': [255, 225, 219, 213, 177, 171, 134, 128, 127, 91],
\ 'violet': [255, 189, 183, 141, 141, 99, 99, 62, 57, 56],
\ 'indigo': [255, 189, 147, 111, 69, 69, 27, 27, 27, 26],
\ 'blue': [255, 153, 153, 75, 75, 75, 32, 32, 25, 25],
\ 'cyan': [195, 195, 116, 80, 45, 38, 38, 31, 31, 6],
\ 'teal': [195, 158, 122, 79, 43, 43, 36, 36, 29, 29],
\ 'green': [195, 194, 157, 114, 78, 77, 71, 71, 35, 28],
\ 'lime': [230, 230, 193, 192, 149, 112, 112, 70, 70, 64],
\ 'yellow': [230, 230, 229, 221, 220, 220, 214, 214, 208, 208],
\ 'orange': [255, 223, 223, 215, 215, 208, 208, 202, 166, 166] }

let s:rgb_map = {}
for s:color in keys(s:oc)
for s:number in range(len(s:oc[s:color]))
let s:rgb_map[s:oc[s:color][s:number]] = s:oc_256[s:color][s:number]
endfor
endfor
\ ['#fff4e6', 255], ['#ffe8cc', 223], ['#ffd8a8', 223],
\ ['#ffc078', 215], ['#ffa94d', 215], ['#ff922b', 208],
\ ['#fd7e14', 208], ['#f76707', 202], ['#e8590c', 166],
\ ['#d9480f', 166]]
endif

highlight clear
Expand Down Expand Up @@ -126,8 +136,7 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('Float', s:oc['orange'][4], '')

" Identifier
call s:Hi('Identifier', s:oc['yellow'][2], '')
highlight Identifier gui=bold
call s:Hi('Identifier', s:oc['yellow'][2], '', 'gui=bold')

" Statement
call s:Hi('Statement', s:oc['violet'][2], '')
Expand Down Expand Up @@ -159,12 +168,10 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('Cursor', s:oc['gray'][9], s:oc['gray'][2])

" set cursorline
call s:Hi('CursorLine', '', s:oc['gray'][8])
call s:Hi('CursorLineNr', s:oc['yellow'][2], s:oc['gray'][8])
call s:Hi('CursorLine', '', s:oc['gray'][8], 'cterm=NONE')
call s:Hi('CursorLineNr', s:oc['yellow'][2], s:oc['gray'][8], 'cterm=NONE')
" set cursorcolumn
call s:Hi('CursorColumn', '', s:oc['gray'][8])
highlight CursorLine cterm=NONE
highlight CursorLineNr cterm=NONE

call s:Hi('Directory', s:oc['indigo'][3], '')

Expand Down Expand Up @@ -211,11 +218,9 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('StatusLine', s:oc['gray'][8], s:oc['lime'][4])
call s:Hi('StatusLineNC', s:oc['gray'][8], s:oc['gray'][6])
call s:Hi('TabLineFill', s:oc['gray'][7], '')
call s:Hi('TabLineSel', s:oc['gray'][2], s:oc['gray'][6])
call s:Hi('TabLine', s:oc['gray'][6], s:oc['gray'][8])
call s:Hi('TabLineSel', s:oc['gray'][2], s:oc['gray'][6], 'cterm=NONE')
call s:Hi('TabLine', s:oc['gray'][6], s:oc['gray'][8], 'cterm=NONE')
call s:Hi('WildMenu', s:oc['gray'][9], s:oc['lime'][4])
highlight TabLineSel cterm=NONE
highlight TabLine cterm=NONE

" :set all
call s:Hi('Title', s:oc['indigo'][3], '')
Expand Down Expand Up @@ -255,8 +260,7 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('Float', s:oc['orange'][8], '')

" Identifier
call s:Hi('Identifier', s:oc['yellow'][7], '')
highlight Identifier cterm=bold gui=bold
call s:Hi('Identifier', s:oc['yellow'][7], '', 'cterm=bold gui=bold')

" Statement
call s:Hi('Statement', s:oc['violet'][6], '')
Expand Down Expand Up @@ -288,12 +292,10 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('Cursor', s:oc['gray'][1], s:oc['gray'][5])

" set cursorline
call s:Hi('CursorLine', '', s:oc['gray'][0])
call s:Hi('CursorLineNr', s:oc['yellow'][7], s:oc['gray'][0])
call s:Hi('CursorLine', '', s:oc['gray'][0], 'cterm=NONE')
call s:Hi('CursorLineNr', s:oc['yellow'][7], s:oc['gray'][0], 'cterm=NONE')
" set cursorcolumn
call s:Hi('CursorColumn', '', s:oc['gray'][0])
highlight CursorLine cterm=NONE
highlight CursorLineNr cterm=NONE

call s:Hi('Directory', s:oc['indigo'][5], '')

Expand Down Expand Up @@ -340,11 +342,9 @@ if has('gui_running') || &t_Co == 88 || &t_Co == 256
call s:Hi('StatusLine', s:oc['gray'][4], s:oc['lime'][8])
call s:Hi('StatusLineNC', s:oc['gray'][4], s:oc['gray'][6])
call s:Hi('TabLineFill', s:oc['gray'][4], '')
call s:Hi('TabLineSel', s:oc['gray'][1], s:oc['gray'][6])
call s:Hi('TabLine', s:oc['gray'][6], s:oc['gray'][2])
call s:Hi('TabLineSel', s:oc['gray'][1], s:oc['gray'][6], 'cterm=NONE')
call s:Hi('TabLine', s:oc['gray'][6], s:oc['gray'][2], 'cterm=NONE')
call s:Hi('WildMenu', s:oc['gray'][1], s:oc['lime'][8])
highlight TabLineSel cterm=NONE
highlight TabLine cterm=NONE

" :set all
call s:Hi('Title', s:oc['indigo'][5], '')
Expand Down

0 comments on commit 5e4e747

Please sign in to comment.