Merge commit '7fdec56a189191e3ea013b45d99915e455e533ec'

main
Ethan Schoonover 2011-04-30 15:08:46 -07:00
commit a9ad17cc71
1 changed files with 99 additions and 51 deletions

View File

@ -4,7 +4,7 @@
" (see this url for latest release & screenshots) " (see this url for latest release & screenshots)
" License: OSI approved MIT license (see end of this file) " License: OSI approved MIT license (see end of this file)
" Created: In the middle of the night " Created: In the middle of the night
" Modified: 2011 Apr 29 " Modified: 2011 Apr 30
" "
" Usage "{{{ " Usage "{{{
" "
@ -129,6 +129,33 @@
" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ " http://vimcasts.org/episodes/creating-colorschemes-for-vim/
" http://www.frexx.de/xterm-256-notes/" " http://www.frexx.de/xterm-256-notes/"
" "
" }}}
" Environment Specific Overrides "{{{
" Allow or disallow certain features based on current terminal emulator or
" environment.
" Terminals that support italics
let s:terms_italic=[
\"rxvt",
\"gnome-terminal"
\]
" For reference only, terminals are known to be incomptible.
" Terminals that are in neither list need to be tested.
let s:terms_noitalic=[
\"iTerm.app",
\"Apple_Terminal"
\]
if has("gui_running")
let s:terminal_italic=1 " TODO: could refactor to not require this at all
else
let s:terminal_italic=0 " terminals will be guilty until proven compatible
for term in s:terms_italic
if $TERM_PROGRAM =~ term
let s:terminal_italic=1
endif
endfor
endif
" }}} " }}}
" Default option values"{{{ " Default option values"{{{
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
@ -187,10 +214,10 @@ call s:SetOption("termtrans",s:solarized_termtrans_default)
call s:SetOption("degrade",0) call s:SetOption("degrade",0)
call s:SetOption("bold",1) call s:SetOption("bold",1)
call s:SetOption("underline",1) call s:SetOption("underline",1)
call s:SetOption("italic",1) call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support
call s:SetOption("termcolors",16) call s:SetOption("termcolors",16)
call s:SetOption("contrast","normal") call s:SetOption("contrast","normal")
call s:SetOption("visibility","normal") call s:SetOption("visibility","low")
call s:SetOption("menu",1) call s:SetOption("menu",1)
"}}} "}}}
@ -289,22 +316,39 @@ elseif g:solarized_termcolors == 256
else else
let s:vmode = "cterm" let s:vmode = "cterm"
let s:bright = "* term=bold cterm=bold" let s:bright = "* term=bold cterm=bold"
let s:base03 = "0".s:bright " let s:base03 = "0".s:bright
let s:base02 = "0" " let s:base02 = "0"
let s:base01 = "2".s:bright " let s:base01 = "2".s:bright
let s:base00 = "3".s:bright " let s:base00 = "3".s:bright
let s:base0 = "4".s:bright " let s:base0 = "4".s:bright
let s:base1 = "6".s:bright " let s:base1 = "6".s:bright
let s:base2 = "7" " let s:base2 = "7"
let s:base3 = "7".s:bright " let s:base3 = "7".s:bright
let s:yellow = "3" " let s:yellow = "3"
let s:orange = "1".s:bright " let s:orange = "1".s:bright
let s:red = "1" " let s:red = "1"
let s:magenta = "5" " let s:magenta = "5"
let s:violet = "13" " let s:violet = "5".s:bright
let s:blue = "4" " let s:blue = "4"
let s:cyan = "6" " let s:cyan = "6"
let s:green = "2" " let s:green = "2"
let s:base03 = "DarkGray" " 0*
let s:base02 = "Black" " 0
let s:base01 = "LightGreen" " 2*
let s:base00 = "LightYellow" " 3*
let s:base0 = "LightBlue" " 4*
let s:base1 = "LightCyan" " 6*
let s:base2 = "LightGray" " 7
let s:base3 = "White" " 7*
let s:yellow = "DarkYellow" " 3
let s:orange = "LightRed" " 1*
let s:red = "DarkRed" " 1
let s:magenta = "DarkMagenta" " 5
let s:violet = "LightMagenta" " 5*
let s:blue = "DarkBlue" " 4
let s:cyan = "DarkCyan" " 6
let s:green = "DarkGreen" " 2
endif endif
"}}} "}}}
" Formatting options and null values for passthrough effect "{{{ " Formatting options and null values for passthrough effect "{{{
@ -362,24 +406,24 @@ if g:solarized_contrast == "low"
let s:ou = ",underline" let s:ou = ",underline"
endif endif
"}}} "}}}
" Overrides dependent on user specified values"{{{ " Overrides dependent on user specified values and environment "{{{
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
if g:solarized_bold == 1 if g:solarized_bold == 0
let s:b = ",bold"
else
let s:b = "" let s:b = ""
else
let s:b = ",bold"
endif endif
if g:solarized_underline == 1 if g:solarized_underline == 0
let s:u = ",underline"
else
let s:u = "" let s:u = ""
else
let s:u = ",underline"
endif endif
if g:solarized_italic == 1 if g:solarized_italic == 0 || s:terminal_italic == 0
let s:i = ",italic"
else
let s:i = "" let s:i = ""
else
let s:i = ",italic"
endif endif
"}}} "}}}
" Highlighting primitives"{{{ " Highlighting primitives"{{{
@ -431,7 +475,7 @@ exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
exe "let s:fmt_ital = ' ".s:vmode."=NONE". " term=NONE". "'" exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'"
exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
@ -560,8 +604,8 @@ if (has("gui_running")) || &t_Co > 8
"exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02 "exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02
exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01 exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01
else else
exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base2 exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_blue
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base2 exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02
exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2 exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2
endif endif
exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
@ -606,26 +650,30 @@ exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
"}}} "}}}
" vim syntax highlighting "{{{ " vim syntax highlighting "{{{
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital "exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
exe "hi! vimCommentString".s:fg_violet .s:bg_none .s:fmt_none "hi! link vimComment Comment
"hi! link vimLineComment Comment
hi! link vimVar Identifier hi! link vimVar Identifier
hi! link vimFunc Function hi! link vimFunc Function
hi! link vimUserFunc Function hi! link vimUserFunc Function
exe "hi! vimCommand" . s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! vimCmdSep" . s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! helpExample" . s:fg_base1 .s:bg_none .s:fmt_none
hi! link helpSpecial Special hi! link helpSpecial Special
exe "hi! helpOption" . s:fg_cyan .s:bg_none .s:fmt_none hi! link vimSet Normal
exe "hi! helpNote" . s:fg_magenta.s:bg_none .s:fmt_none hi! link vimSetEqual Normal
exe "hi! helpVim" . s:fg_magenta.s:bg_none .s:fmt_none exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none
exe "hi! helpHyperTextJump" .s:fg_blue .s:bg_none .s:fmt_undr exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none
exe "hi! helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none
exe "hi! vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none
exe "hi! vimSynMtchOpt" . s:fg_yellow .s:bg_none .s:fmt_none exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none
exe "hi! vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none
exe "hi! vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none
exe "hi! vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none
exe "hi! vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none
exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none
exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none
exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none
exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none
"}}} "}}}
" html highlighting "{{{ " html highlighting "{{{
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
@ -866,13 +914,13 @@ autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name |
" let g:solarized_menu=0 " let g:solarized_menu=0
function! s:SolarizedOptions() function! s:SolarizedOptions()
new new "new buffer
setf vim setf vim "vim filetype
let failed = append(0, s:defaults_list) let failed = append(0, s:defaults_list)
let failed = append(0, s:colorscheme_list) let failed = append(0, s:colorscheme_list)
let failed = append(0, s:options_list) let failed = append(0, s:options_list)
let failed = append(0, s:lazycat_list) let failed = append(0, s:lazycat_list)
0 0 "jump back to the top
endfunction endfunction
if !exists(":SolarizedOptions") if !exists(":SolarizedOptions")
command SolarizedOptions :call s:SolarizedOptions() command SolarizedOptions :call s:SolarizedOptions()