90619ab253
subrepo: subdir: "dotfiles/.vim/plugged/lightline.vim" merged: "b1e91b41" upstream: origin: "https://github.com/itchyny/lightline.vim.git" branch: "master" commit: "b1e91b41" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
52 lines
1.5 KiB
VimL
52 lines
1.5 KiB
VimL
" =============================================================================
|
|
" Filename: autoload/lightline/colortable.vim
|
|
" Author: itchyny
|
|
" License: MIT License
|
|
" Last Change: 2020/06/19 11:07:13.
|
|
" =============================================================================
|
|
|
|
let s:save_cpo = &cpo
|
|
set cpo&vim
|
|
|
|
function! s:load() abort
|
|
let rgbfile = $VIMRUNTIME . '/rgb.txt'
|
|
let table = {}
|
|
if filereadable(rgbfile)
|
|
for _ in map(filter(readfile(rgbfile), 'v:val !~# "^!"'), 'matchlist(v:val, "^\\s*\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(.*\\)")[1:4]')
|
|
let table[tolower(_[3])] = _[0:2]
|
|
endfor
|
|
endif
|
|
return table
|
|
endfunction
|
|
|
|
let s:table = s:load()
|
|
|
|
function! lightline#colortable#name_to_rgb(name) abort
|
|
let name = tolower(a:name)
|
|
return has_key(s:table, name) ? s:table[name] : []
|
|
endfunction
|
|
|
|
function! lightline#colortable#gui2cui(rgb, fallback) abort
|
|
let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)')
|
|
if len(rgb) == 0
|
|
let rgb = lightline#colortable#name_to_rgb(a:rgb)
|
|
if len(rgb) == 0
|
|
return a:fallback % 128
|
|
endif
|
|
endif
|
|
let rgb = [rgb[0] > 127 ? 4 : 0, rgb[1] > 127 ? 2 : 0, rgb[2] > 127 ? 1 : 0]
|
|
return rgb[0] + rgb[1] + rgb[2]
|
|
endfunction
|
|
|
|
function! lightline#colortable#gui2cui_palette(palette) abort
|
|
for u in values(a:palette)
|
|
for v in values(u)
|
|
for w in v
|
|
let [w[2], w[3]] = [lightline#colortable#gui2cui(w[0], w[2]), lightline#colortable#gui2cui(w[1], w[3])]
|
|
endfor
|
|
endfor
|
|
endfor
|
|
endfunction
|
|
|
|
let &cpo = s:save_cpo
|
|
unlet s:save_cpo
|