X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=dotfiles%2Fvim%2F.vim%2Fplugin%2Fguicolorscheme.vim;fp=dotfiles%2Fvim%2F.vim%2Fplugin%2Fguicolorscheme.vim;h=0000000000000000000000000000000000000000;hb=5dc2820d7b5fc1bbe45d5cd2affd433dd801e771;hp=a938b5fe2539c31b39eb75f759192fbab13ff6c1;hpb=332ec90fd451aeb75bb920f6b6704a7426f87ef7;p=shutils.git diff --git a/dotfiles/vim/.vim/plugin/guicolorscheme.vim b/dotfiles/vim/.vim/plugin/guicolorscheme.vim deleted file mode 100644 index a938b5f..0000000 --- a/dotfiles/vim/.vim/plugin/guicolorscheme.vim +++ /dev/null @@ -1,313 +0,0 @@ -" guicolorscheme.vim: Convert GUI only color schems -" -" Maintainer: Aaron Griffin -" Last Modified: Mon Feb 26 22:52:34 UTC 2007 -" Version: 1.2 -" URL: http://www.vim.org/script.php?script_id=39 -" -" Convert a GUI-only colorscheme to support 88 and 256 color terminals -" This should also work on the GUI, so using it 100% of the time, assuming -" you always have a non 8/16 color terminal should work fine - -" conversion functions {{{ -" canibalized from desert256.vim - -function! s:greynum(x) "{{{ - if &t_Co == 88 - if a:x < 23 - return 0 - elseif a:x < 69 - return 1 - elseif a:x < 103 - return 2 - elseif a:x < 127 - return 3 - elseif a:x < 150 - return 4 - elseif a:x < 173 - return 5 - elseif a:x < 196 - return 6 - elseif a:x < 219 - return 7 - elseif a:x < 243 - return 8 - else - return 9 - endif - else - if a:x < 14 - return 0 - else - let l:n = (a:x - 8) / 10 - let l:m = (a:x - 8) % 10 - if l:m < 5 - return l:n - else - return l:n + 1 - endif - endif - endif -endfunction "}}} -function! s:greylvl(n) "{{{ - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 46 - elseif a:n == 2 - return 92 - elseif a:n == 3 - return 115 - elseif a:n == 4 - return 139 - elseif a:n == 5 - return 162 - elseif a:n == 6 - return 185 - elseif a:n == 7 - return 208 - elseif a:n == 8 - return 231 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 8 + (a:n * 10) - endif - endif -endfunction "}}} -function! s:grey(n) "{{{ - if &t_Co == 88 - if a:n == 0 - return 16 - elseif a:n == 9 - return 79 - else - return 79 + a:n - endif - else - if a:n == 0 - return 16 - elseif a:n == 25 - return 231 - else - return 231 + a:n - endif - endif -endfunction "}}} - -function! s:rgbnum(x) "{{{ - if &t_Co == 88 - if a:x < 69 - return 0 - elseif a:x < 172 - return 1 - elseif a:x < 230 - return 2 - else - return 3 - endif - else - if a:x < 75 - return 0 - else - let l:n = (a:x - 55) / 40 - let l:m = (a:x - 55) % 40 - if l:m < 20 - return l:n - else - return l:n + 1 - endif - endif - endif -endfunction "}}} -function! s:rgblvl(n) "{{{ - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 139 - elseif a:n == 2 - return 205 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 55 + (a:n * 40) - endif - endif -endfunction "}}} -function! s:rgb(r, g, b) "{{{ - if &t_Co == 88 - return 16 + (a:r * 16) + (a:g * 4) + a:b - else - return 16 + (a:r * 36) + (a:g * 6) + a:b - endif -endfunction "}}} - -function! s:color(r, g, b) "{{{ - " get the closest grey - let l:gx = s:greynum(a:r) - let l:gy = s:greynum(a:g) - let l:gz = s:greynum(a:b) - - " get the closest color - let l:x = s:rgbnum(a:r) - let l:y = s:rgbnum(a:g) - let l:z = s:rgbnum(a:b) - - let l:level = (a:r * a:r) + (a:g * a:g) + (a:b * a:b) - if l:gx == l:gy && l:gy == l:gz - " there are two possibilities - let l:dgr = s:greylvl(l:gx) - let l:dgg = s:greylvl(l:gy) - let l:dgb = s:greylvl(l:gz) - let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) - l:level - - let l:dr = s:rgblvl(l:gx) - let l:dg = s:rgblvl(l:gy) - let l:db = s:rgblvl(l:gz) - let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) - l:level - - if l:dgrey < l:drgb - " use the grey - return s:grey(l:gx) - else - " use the color - return s:rgb(l:x, l:y, l:z) - endif - else - " only one possibility - return s:rgb(l:x, l:y, l:z) - endif -endfunction "}}} -function! s:cindex(rgb) "{{{ - "convert RRGGBB to a terminal (numeric) index - let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 - let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 - let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 - - return s:color(l:r, l:g, l:b) -endfunction "}}} - -function! s:HL(group, fg, bg, attr) "{{{ - "The main highlight (HL) function - exec "hi clear " . a:group - if a:fg != "" - exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . s:cindex(a:fg) - endif - if a:bg != "" - exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . s:cindex(a:bg) - endif - if a:attr != "" - exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr - endif -endfunction "}}} - -"}}} - -" Completion Helpers {{{ -function! s:Colorscheme_Complete(A,L,P) - let l:files = split(globpath(&runtimepath, "colors/" . a:A . "*"), "\n") - let l:retlist = [] - for file in l:files - let l:basename = substitute(file, ".*/", "", "") - let l:basename = substitute(l:basename, "\.vim", "", "") - call add(l:retlist, l:basename) - endfor - return l:retlist -endfunction - -function! s:GetColorschemeFile(fname) - let l:files = split(globpath(&runtimepath, "colors/" . a:fname . ".vim"), "\n") - if len(l:files) == 0 - echoerr "Colorscheme ".a:fname." not found" - return "" - else - return l:files[0] - endif -endfunction - -command! -complete=customlist,s:Colorscheme_Complete -nargs=1 GuiColorScheme :call s:GuiColorScheme("") -" }}} - -function! s:GuiColorScheme(fname) - let l:file = s:GetColorschemeFile(a:fname) - if l:file == "" - return 1 - endif - - if has("gui_running") - exec "colorscheme " . l:file - return 0 - endif - - for line in readfile(l:file) - if line =~ '\s*hi' - let l:name = "" - let l:fg = "" - let l:bg = "" - let l:attr = "" - - " get highlight name - let l:start = match(line, "hi") - let l:end = match(line, "[ \t]", l:start) - let l:start = l:end +1 - let l:end = match(line, "[ \t]", l:start) - let l:name = strpart(line, l:start, l:end - l:start) - - " strip foreground color - let l:start = match(line, "guifg=") - if l:start != -1 - let l:start = l:start + 6 "strlen(guifg=) - let l:end = match(line, "[ \t]", l:start) - if l:end == -1 - let l:fg = strpart(line, l:start) - else - let l:fg = strpart(line, l:start, l:end - l:start) - endif - if strpart(l:fg, 0, 1) == "#" - let l:fg = strpart(l:fg, 1) - endif - endif - - " strip background color - let l:start = match(line, "guibg=") - if l:start != -1 - let l:start = l:start + 6 "strlen(guibg=) - let l:end = match(line, "[ \t]", l:start) - if l:end == -1 - let l:bg = strpart(line, l:start) - else - let l:bg = strpart(line, l:start, l:end - l:start) - endif - if strpart(l:bg, 0, 1) == "#" - let l:bg = strpart(l:bg, 1) - endif - endif - - " strip attribute - let l:start = match(line, "gui=") - if l:start != -1 - let l:start = l:start + 4 "strlen(gui=) - let l:end = match(line, "[ \t]", l:start) - if l:end == -1 - let l:attr = strpart(line, l:start) - else - let l:attr = strpart(line, l:start, l:end - l:start) - endif - endif - - call s:HL(l:name, l:fg, l:bg, l:attr) - endif - endfor -endfunction - -" vim:ft=vim:fdl=0:fdm=marker:ts=4:sw=4