From fead075335c4a799a057d311b39c9969fb0be2be Mon Sep 17 00:00:00 2001 From: Matt Singleton Date: Thu, 15 Dec 2011 12:35:32 -0500 Subject: updating solarized --- vim/colors/solarized.vim | 1597 +++++++++++++++++++++++++--------------------- 1 file changed, 875 insertions(+), 722 deletions(-) (limited to 'vim/colors') diff --git a/vim/colors/solarized.vim b/vim/colors/solarized.vim index 36d3648..70f5223 100644 --- a/vim/colors/solarized.vim +++ b/vim/colors/solarized.vim @@ -3,32 +3,45 @@ " URL: http://ethanschoonover.com/solarized " (see this url for latest release & screenshots) " License: OSI approved MIT license (see end of this file) +" Created: In the middle of the night +" Modified: 2011 May 05 " " Usage "{{{ " " --------------------------------------------------------------------- " ABOUT: " --------------------------------------------------------------------- -" Solarized is a carefully designed selective contrast colorscheme with dual +" Solarized is a carefully designed selective contrast colorscheme with dual " light and dark modes that runs in both GUI, 256 and 16 color modes. " " See the homepage above for screenshots and details. " " --------------------------------------------------------------------- -" INSTALLATION: +" OPTIONS: " --------------------------------------------------------------------- +" See the "solarized.txt" help file included with this colorscheme (in the +" "doc" subdirectory) for information on options, usage, the Toggle Background +" function and more. If you have already installed Solarized, this is available +" from the Solarized menu and command line as ":help solarized" " +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- " Two options for installation: manual or pathogen -" +" " MANUAL INSTALLATION OPTION: " --------------------------------------------------------------------- -" -" 1. Put the files in the right place! +" +" 1. Download the solarized distribution (available on the homepage above) +" and unarchive the file. " 2. Move `solarized.vim` to your `.vim/colors` directory. -" +" 3. Move each of the files in each subdirectories to the corresponding .vim +" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload +" directory as .vim/autoload/togglebg.vim). +" " RECOMMENDED PATHOGEN INSTALLATION OPTION: " --------------------------------------------------------------------- -" +" " 1. Download and install Tim Pope's Pathogen from: " https://github.com/tpope/vim-pathogen " @@ -42,25 +55,27 @@ " " b. **or move manually into the pathogen bundle directory:** " In the parent directory of vim-colors-solarized: -" +" " $ mv vim-colors-solarized ~/.vim/bundle/ -" +" " MODIFY VIMRC: -" -" After either Option 1 or Option 2 above, put the following two lines in your +" +" After either Option 1 or Option 2 above, put the following two lines in your " .vimrc: -" +" +" syntax enable " set background=dark " colorscheme solarized -" +" " or, for the light background mode of Solarized: -" +" +" syntax enable " set background=light " colorscheme solarized -" -" I like to have a different background in GUI and terminal modes, so I can use -" the following if-then. However, I find vim's background autodetection to be -" pretty good and, at least with MacVim, I can leave this background value +" +" I like to have a different background in GUI and terminal modes, so I can use +" the following if-then. However, I find vim's background autodetection to be +" pretty good and, at least with MacVim, I can leave this background value " assignment out entirely and get the same results. " " if has('gui_running') @@ -68,139 +83,16 @@ " else " set background=dark " endif -" -" See the Solarized homepage at http://ethanschoonover.com/solarized for -" screenshots which will help you select either the light or dark background. " -" Other options are detailed below. -" -" IMPORTANT NOTE FOR TERMINAL USERS: -" -" If you are going to use Solarized in Terminal mode (i.e. not in a GUI -" version like gvim or macvim), **please please please** consider setting your -" terminal emulator's colorscheme to used the Solarized palette. I've included -" palettes for some popular terminal emulator as well as Xdefaults in the -" official Solarized download available from: -" -" http://ethanschoonover.com/solarized -" -" If you use Solarized without these colors, Solarized will by default use an -" approximate set of 256 colors. It isn't bad looking and has been extensively -" tweaked, but it's still not quite the real thing. -" -" If you do use the custom terminal colors, simply add the following line -" *before* the `colorschem solarized` line: -" -" let g:solarized_termcolors=16 -" -" --------------------------------------------------------------------- -" TOGGLE BACKGROUND FUNCTION -" --------------------------------------------------------------------- -" Here's a quick script that toggles the background color, using F5 in this -" example. You can drop this into .vimrc: -" -" function! ToggleBackground() -" if (g:solarized_style=="dark") -" let g:solarized_style="light" -" colorscheme solarized -" else -" let g:solarized_style="dark" -" colorscheme solarized -" endif -" endfunction -" command! Togbg call ToggleBackground() -" nnoremap :call ToggleBackground() -" inoremap :call ToggleBackground()a -" vnoremap :call ToggleBackground() -" -" --------------------------------------------------------------------- -" OPTIONS -" --------------------------------------------------------------------- -" -" Set these in your vimrc file prior to calling the colorscheme. -" -" option name default optional -" ------------------------------------------------ -" g:solarized_termcolors= 256 | 16 -" g:solarized_termtrans = 0 | 1 -" g:solarized_degrade = 0 | 1 -" g:solarized_bold = 1 | 0 -" g:solarized_underline = 1 | 0 -" g:solarized_italic = 1 | 0 -" g:solarized_style = "dark" | "light" -" g:solarized_contrast = "normal"| "high" or "low" -" ------------------------------------------------ -" -" OPTION DETAILS -" -" ------------------------------------------------ -" g:solarized_termcolors= 256 | 16 -" ------------------------------------------------ -" The most important option if you are using vim in terminal (non gui) mode! -" This tells Solarized to use the 256 degraded color mode if running in a 256 -" color capable terminal. Otherwise, if set to `16` it will use the terminal -" emulators colorscheme (best option as long as you've set the emulators colors -" to the Solarized palette). -" -" If you are going to use Solarized in Terminal mode (i.e. not in a GUI -" version like gvim or macvim), **please please please** consider setting your -" terminal emulator's colorscheme to used the Solarized palette. I've included -" palettes for some popular terminal emulator as well as Xdefaults in the -" official Solarized download available from: -" http://ethanschoonover.com/solarized . If you use Solarized without these -" colors, Solarized will by default use an approximate set of 256 colors. It -" isn't bad looking and has been extensively tweaked, but it's still not quite -" the real thing. -" -" ------------------------------------------------ -" g:solarized_termtrans = 0 | 1 -" ------------------------------------------------ -" If you use a terminal emulator with a transparent background and Solarized -" isn't displaying the background color transparently, set this to 1 and -" Solarized will use the default (transparent) background of the terminal -" emulator. *urxvt* required this in my testing; Terminal.app/iTerm2 did not. -" -" ------------------------------------------------ -" g:solarized_degrade = 0 | 1 -" ------------------------------------------------ -" For test purposes only; forces Solarized to use the 256 degraded color mode -" to test the approximate color values for accuracy. -" -" ------------------------------------------------ -" g:solarized_bold = 1 | 0 -" ------------------------------------------------ -" ------------------------------------------------ -" g:solarized_underline = 1 | 0 -" ------------------------------------------------ -" ------------------------------------------------ -" g:solarized_italic = 1 | 0 -" ------------------------------------------------ -" If you wish to stop Solarized from displaying bold, underlined or -" italicized typefaces, simply assign a zero value to the appropriate -" variable, for example: `let g:solarized_italic=0` -" -" ------------------------------------------------ -" g:solarized_style = "dark" | "light" -" ------------------------------------------------ -" Simply another way to force Solarized to use a dark or light background. -" It's better to use `set background=dark` or `set background=light` in your -" .vimrc file. This option is mostly used in scripts (quick background color -" change) or for testing. Note that, if set, g:solarized_style overrides the -" setting for "background". -" -" ------------------------------------------------ -" g:solarized_contrast = "normal"| "high" or "low" -" ------------------------------------------------ -" Stick with normal! It's been carefully tested. Setting this option to high -" or low does use the same Solarized palette but simply shifts some values up -" or down in order to expand or compress the tonal range displayed. +" See the Solarized homepage at http://ethanschoonover.com/solarized for +" screenshots which will help you select either the light or dark background. " " --------------------------------------------------------------------- " COLOR VALUES " --------------------------------------------------------------------- " Download palettes and files from: http://ethanschoonover.com/solarized " -" L\*a\*b values are canonical (White D65, Reference D50), other values are +" L\*a\*b values are canonical (White D65, Reference D50), other values are " matched in sRGB space. " " SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB @@ -237,57 +129,108 @@ " http://vimcasts.org/episodes/creating-colorschemes-for-vim/ " http://www.frexx.de/xterm-256-notes/" " -" " }}} -" Default option values"{{{ -" --------------------------------------------------------------------- -if !exists("g:solarized_termtrans") - let g:solarized_termtrans = 0 -endif -if !exists("g:solarized_degrade") - let g:solarized_degrade = 0 -endif -if !exists("g:solarized_bold") - let g:solarized_bold = 1 -endif -if !exists("g:solarized_underline") - let g:solarized_underline = 1 -endif -if !exists("g:solarized_italic") - let g:solarized_italic = 1 -endif -if !exists("g:solarized_termcolors") - let g:solarized_termcolors = 256 -endif -if !exists("g:solarized_style") && !exists("g:solarized_style") - let g:solarized_style = &background -endif -if !exists("g:solarized_contrast") - let g:solarized_contrast = "normal" +" 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 -"}}} -" Colorscheme basic settings"{{{ + +" }}} +" Default option values"{{{ " --------------------------------------------------------------------- -if g:solarized_style == "dark" - set background=dark -elseif g:solarized_style == "light" - set background=light +" s:options_list is used to autogenerate a list of all non-default options +" using "call SolarizedOptions()" or with the "Generate .vimrc commands" +" Solarized menu option. See the "Menus" section below for the function itself. +let s:options_list=[ + \'" this block of commands has been autogenerated by solarized.vim and', + \'" includes the current, non-default Solarized option values.', + \'" To use, place these commands in your .vimrc file (replacing any', + \'" existing colorscheme commands). See also ":help solarized"', + \'', + \'" ------------------------------------------------------------------', + \'" Solarized Colorscheme Config', + \'" ------------------------------------------------------------------', + \] +let s:colorscheme_list=[ + \'syntax enable', + \'set background='.&background, + \'colorscheme solarized', + \] +let s:defaults_list=[ + \'" ------------------------------------------------------------------', + \'', + \'" The following items are available options, but do not need to be', + \'" included in your .vimrc as they are currently set to their defaults.', + \'' + \] +let s:lazycat_list=[ + \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', + \'" ------------------------------------------------------------------', + \] + +function! s:SetOption(name,default) + if type(a:default) == type(0) + let l:wrap='' + let l:ewrap='' + else + let l:wrap='"' + let l:ewrap='\"' + endif + if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default + exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' + exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' + else + exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' + endif +endfunction + +if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let s:solarized_termtrans_default = 1 else - let g:solarized_style = &background + let s:solarized_termtrans_default = 0 endif +call s:SetOption("termtrans",s:solarized_termtrans_default) +call s:SetOption("degrade",0) +call s:SetOption("bold",1) +call s:SetOption("underline",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("contrast","normal") +call s:SetOption("visibility","normal") +call s:SetOption("diffmode","normal") +call s:SetOption("hitrail",0) +call s:SetOption("menu",1) +"}}} +" Colorscheme initialization "{{{ +" --------------------------------------------------------------------- hi clear if exists("syntax_on") syntax reset endif - let colors_name = "solarized" -"let colors_name = &background -"if background == "light" -" let colors_name = &background -"else -" let colors_name = &background -"endif + "}}} " GUI & CSApprox hexadecimal palettes"{{{ " --------------------------------------------------------------------- @@ -297,462 +240,551 @@ let colors_name = "solarized" " leave the hex values out entirely in that case and include only cterm colors) " We also check to see if user has set solarized (force use of the " neutral gray monotone palette component) -if has("gui_running") && g:solarized_degrade == 0 - let s:g_back = "#002b36" - let s:g_base03 = "#002b36" - let s:g_base02 = "#073642" - let s:g_base01 = "#586e75" - let s:g_base00 = "#657b83" - let s:g_base0 = "#839496" - let s:g_base1 = "#93a1a1" - let s:g_base2 = "#eee8d5" - let s:g_base3 = "#fdf6e3" - let s:g_yellow = "#b58900" - let s:g_orange = "#cb4b16" - let s:g_red = "#dc322f" - let s:g_magenta = "#d33682" - let s:g_violet = "#6c71c4" - let s:g_blue = "#268bd2" - let s:g_cyan = "#2aa198" - let s:g_green = "#859900" +if (has("gui_running") && g:solarized_degrade == 0) + let s:vmode = "gui" + let s:base03 = "#002b36" + let s:base02 = "#073642" + let s:base01 = "#586e75" + let s:base00 = "#657b83" + let s:base0 = "#839496" + let s:base1 = "#93a1a1" + let s:base2 = "#eee8d5" + let s:base3 = "#fdf6e3" + let s:yellow = "#b58900" + let s:orange = "#cb4b16" + let s:red = "#dc322f" + let s:magenta = "#d33682" + let s:violet = "#6c71c4" + let s:blue = "#268bd2" + let s:cyan = "#2aa198" + "let s:green = "#859900" "original + let s:green = "#719e07" "experimental +elseif (has("gui_running") && g:solarized_degrade == 1) + " These colors are identical to the 256 color mode. They may be viewed + " while in gui mode via "let g:solarized_degrade=1", though this is not + " recommened and is for testing only. + let s:vmode = "gui" + let s:base03 = "#1c1c1c" + let s:base02 = "#262626" + let s:base01 = "#4e4e4e" + let s:base00 = "#585858" + let s:base0 = "#808080" + let s:base1 = "#8a8a8a" + let s:base2 = "#d7d7af" + let s:base3 = "#ffffd7" + let s:yellow = "#af8700" + let s:orange = "#d75f00" + let s:red = "#af0000" + let s:magenta = "#af005f" + let s:violet = "#5f5faf" + let s:blue = "#0087ff" + let s:cyan = "#00afaf" + let s:green = "#5f8700" +elseif g:solarized_termcolors != 256 && &t_Co >= 16 + let s:vmode = "cterm" + let s:base03 = "8" + let s:base02 = "0" + let s:base01 = "10" + let s:base00 = "11" + let s:base0 = "12" + let s:base1 = "14" + let s:base2 = "7" + let s:base3 = "15" + let s:yellow = "3" + let s:orange = "9" + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +elseif g:solarized_termcolors == 256 + let s:vmode = "cterm" + let s:base03 = "234" + let s:base02 = "235" + let s:base01 = "239" + let s:base00 = "240" + let s:base0 = "244" + let s:base1 = "245" + let s:base2 = "187" + let s:base3 = "230" + let s:yellow = "136" + let s:orange = "166" + let s:red = "124" + let s:magenta = "125" + let s:violet = "61" + let s:blue = "33" + let s:cyan = "37" + let s:green = "64" else - " these colors are for non-gui vim when CSApprox is installed. CSApprox - " degrades the base colors poorly (bright blues instead of muted gray - " blues) so we set all hex values here to ones which CSApprox will not - " change and which we approve of. Perhaps I should just can the hex values - " and use just the color table values, leaving these blank. Not much - " difference either way and I'd rather be thorough about it. - " They can also be used by setting g:solarized_degrade to 1 in vimrc - let s:g_back = "#1c1c1c" - let s:g_base03 = "#1c1c1c" - let s:g_base02 = "#262626" - let s:g_base01 = "#4e4e4e" - let s:g_base00 = "#585858" - let s:g_base0 = "#808080" - let s:g_base1 = "#8a8a8a" - let s:g_base2 = "#d7d7af" - let s:g_base3 = "#ffffd7" - let s:g_yellow = "#af8700" - let s:g_orange = "#d75f00" - let s:g_red = "#af0000" - let s:g_magenta = "#af005f" - let s:g_violet = "#5f5faf" - let s:g_blue = "#0087ff" - let s:g_cyan = "#00afaf" - let s:g_green = "#5f8700" -endif -"}}} -" 256 Terminal (no CSApprox) and 16 color fallback palettes"{{{ -" --------------------------------------------------------------------- -" We also set this if gui is running as we use the optional formatting -" values that get set here (ou==optional underline, ob==opt bold). -if (has("gui_running") || &t_Co == 256) && g:solarized_termcolors != 16 - let s:c_back = "234" - let s:c_base03 = "234" - let s:c_base02 = "235" - let s:c_base01 = "239" - let s:c_base00 = "240" - let s:c_base0 = "244" - let s:c_base1 = "245" - let s:c_base2 = "187" - let s:c_base3 = "230" - let s:c_yellow = "136" - let s:c_orange = "166" - let s:c_red = "124" - let s:c_magenta = "125" - let s:c_violet = "61" - let s:c_blue = "33" - let s:c_cyan = "37" - let s:c_green = "64" - let s:ou = "" - let s:ob = "" -elseif &t_Co > 8 || g:solarized_termcolors == 16 - " NOTE: this requires terminal colors to be set to solarized standard - " 16 colors (see top of this file for details) - let s:c_back = "NONE" - let s:c_base03 = "8" - let s:c_base02 = "0" - let s:c_base01 = "10" - let s:c_base00 = "11" - let s:c_base0 = "12" - let s:c_base1 = "14" - let s:c_base2 = "7" - let s:c_base3 = "15" - let s:c_green = "2" - let s:c_yellow = "3" - let s:c_orange = "9" - let s:c_red = "1" - let s:c_magenta = "5" - let s:c_violet = "13" - let s:c_blue = "4" - let s:c_cyan = "6" - let s:ou = "" - let s:ob = "" -else " must be in an 8 color or less terminal - let s:c_back = "NONE" - let s:c_base03 = "4" - let s:c_base02 = "darkgrey" - let s:c_base01 = "grey" - let s:c_base00 = "darkgrey" - let s:c_base0 = "6" - let s:c_base1 = "4" - let s:c_base2 = "7" - let s:c_base3 = "7" - let s:c_green = "2" - let s:c_yellow = "3" - let s:c_orange = "3" - let s:c_red = "1" - let s:c_magenta = "5" - let s:c_violet = "5" - let s:c_blue = "4" - let s:c_cyan = "6" - let s:ou = ",underline" - let s:ob = ",bold" + let s:vmode = "cterm" + let s:bright = "* term=bold cterm=bold" +" let s:base03 = "0".s:bright +" let s:base02 = "0" +" let s:base01 = "2".s:bright +" let s:base00 = "3".s:bright +" let s:base0 = "4".s:bright +" let s:base1 = "6".s:bright +" let s:base2 = "7" +" let s:base3 = "7".s:bright +" let s:yellow = "3" +" let s:orange = "1".s:bright +" let s:red = "1" +" let s:magenta = "5" +" let s:violet = "5".s:bright +" let s:blue = "4" +" let s:cyan = "6" +" 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 "}}} -" Formatting options and null values for passthrough effect"{{{ -" --------------------------------------------------------------------- -let s:g_none = "NONE" -let s:c_none = "NONE" -let s:t_none = "NONE" -let s:n = "NONE" -let s:c = ",undercurl" -let s:r = ",reverse" -let s:s = ",standout" +" Formatting options and null values for passthrough effect "{{{ +" --------------------------------------------------------------------- + let s:none = "NONE" + let s:none = "NONE" + let s:t_none = "NONE" + let s:n = "NONE" + let s:c = ",undercurl" + let s:r = ",reverse" + let s:s = ",standout" + let s:ou = "" + let s:ob = "" "}}} -" Alternate light scheme "{{{ +" Background value based on termtrans setting "{{{ " --------------------------------------------------------------------- -if g:solarized_style == "light" - let s:c_temp03 = s:c_base03 - let s:c_temp02 = s:c_base02 - let s:c_temp01 = s:c_base01 - let s:c_temp00 = s:c_base00 - let s:c_base03 = s:c_base3 - let s:c_base02 = s:c_base2 - let s:c_base01 = s:c_base1 - let s:c_base00 = s:c_base0 - let s:c_base0 = s:c_temp00 - let s:c_base1 = s:c_temp01 - let s:c_base2 = s:c_temp02 - let s:c_base3 = s:c_temp03 - let s:c_back = s:c_base03 - let s:g_temp03 = s:g_base03 - let s:g_temp02 = s:g_base02 - let s:g_temp01 = s:g_base01 - let s:g_temp00 = s:g_base00 - let s:g_base03 = s:g_base3 - let s:g_base02 = s:g_base2 - let s:g_base01 = s:g_base1 - let s:g_base00 = s:g_base0 - let s:g_base0 = s:g_temp00 - let s:g_base1 = s:g_temp01 - let s:g_base2 = s:g_temp02 - let s:g_base3 = s:g_temp03 - let s:g_back = s:g_base03 +if (has("gui_running") || g:solarized_termtrans == 0) + let s:back = s:base03 +else + let s:back = "NONE" endif "}}} -" Alternate inverted background scheme "{{{ -" --------------------------------------------------------------------- -if g:solarized_style == "inverted" - let s:c_temp03 = s:c_base03 - let s:c_temp02 = s:c_base02 - let s:c_base03 = s:c_temp02 - let s:c_base02 = s:c_temp03 - let s:c_back = s:c_base03 - let s:g_temp03 = s:g_base03 - let s:g_temp02 = s:g_base02 - let s:g_base03 = s:g_temp02 - let s:g_base02 = s:g_temp03 - let s:g_back = s:g_base03 +" Alternate light scheme "{{{ +" --------------------------------------------------------------------- +if &background == "light" + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 + if (s:back != "NONE") + let s:back = s:base03 + endif endif "}}} " Optional contrast schemes "{{{ " --------------------------------------------------------------------- if g:solarized_contrast == "high" - let s:g_base03 = s:g_base03 - let s:g_base02 = s:g_base02 - let s:g_base01 = s:g_base00 - let s:g_base00 = s:g_base0 - let s:g_base0 = s:g_base1 - let s:g_base1 = s:g_base2 - let s:g_base2 = s:g_base3 - let s:g_base3 = s:g_base3 - let s:g_back = s:g_back + let s:base01 = s:base00 + let s:base00 = s:base0 + let s:base0 = s:base1 + let s:base1 = s:base2 + let s:base2 = s:base3 + let s:back = s:back endif if g:solarized_contrast == "low" - let s:g_back = s:g_base02 - let s:ou = ",underline" + let s:back = s:base02 + let s:ou = ",underline" endif "}}} -" Overrides dependent on user specified values"{{{ +" Overrides dependent on user specified values and environment "{{{ " --------------------------------------------------------------------- -if g:solarized_termtrans == 1 - let s:c_back = "NONE" -endif - -if g:solarized_bold == 1 - let s:b = ",bold" +if (g:solarized_bold == 0 || &t_Co == 8 ) + let s:b = "" + let s:bb = ",bold" else - let s:b = "" + let s:b = ",bold" + let s:bb = "" endif -if g:solarized_underline == 1 - let s:u = ",underline" +if g:solarized_underline == 0 + let s:u = "" else - let s:u = "" + let s:u = ",underline" endif -if g:solarized_italic == 1 - let s:i = ",italic" +if g:solarized_italic == 0 || s:terminal_italic == 0 + let s:i = "" else - let s:i = "" + let s:i = ",italic" endif "}}} " Highlighting primitives"{{{ " --------------------------------------------------------------------- -exe "let s:bg_none = ' ctermbg=".s:c_none ." guibg=".s:g_none ."'" -exe "let s:bg_back = ' ctermbg=".s:c_back ." guibg=".s:g_back ."'" -exe "let s:bg_base03 = ' ctermbg=".s:c_base03 ." guibg=".s:g_base03 ."'" -exe "let s:bg_base02 = ' ctermbg=".s:c_base02 ." guibg=".s:g_base02 ."'" -exe "let s:bg_base01 = ' ctermbg=".s:c_base01 ." guibg=".s:g_base01 ."'" -exe "let s:bg_base00 = ' ctermbg=".s:c_base00 ." guibg=".s:g_base00 ."'" -exe "let s:bg_base0 = ' ctermbg=".s:c_base0 ." guibg=".s:g_base0 ."'" -exe "let s:bg_base1 = ' ctermbg=".s:c_base1 ." guibg=".s:g_base1 ."'" -exe "let s:bg_base2 = ' ctermbg=".s:c_base2 ." guibg=".s:g_base2 ."'" -exe "let s:bg_base3 = ' ctermbg=".s:c_base3 ." guibg=".s:g_base3 ."'" -exe "let s:bg_green = ' ctermbg=".s:c_green ." guibg=".s:g_green ."'" -exe "let s:bg_yellow = ' ctermbg=".s:c_yellow ." guibg=".s:g_yellow ."'" -exe "let s:bg_orange = ' ctermbg=".s:c_orange ." guibg=".s:g_orange ."'" -exe "let s:bg_red = ' ctermbg=".s:c_red ." guibg=".s:g_red ."'" -exe "let s:bg_magenta = ' ctermbg=".s:c_magenta." guibg=".s:g_magenta."'" -exe "let s:bg_violet = ' ctermbg=".s:c_violet ." guibg=".s:g_violet ."'" -exe "let s:bg_blue = ' ctermbg=".s:c_blue ." guibg=".s:g_blue ."'" -exe "let s:bg_cyan = ' ctermbg=".s:c_cyan ." guibg=".s:g_cyan ."'" - -exe "let s:fg_none = ' ctermfg=".s:c_none ." guifg=".s:g_none ."'" -exe "let s:fg_back = ' ctermfg=".s:c_back ." guifg=".s:g_back ."'" -exe "let s:fg_base03 = ' ctermfg=".s:c_base03 ." guifg=".s:g_base03 ."'" -exe "let s:fg_base02 = ' ctermfg=".s:c_base02 ." guifg=".s:g_base02 ."'" -exe "let s:fg_base01 = ' ctermfg=".s:c_base01 ." guifg=".s:g_base01 ."'" -exe "let s:fg_base00 = ' ctermfg=".s:c_base00 ." guifg=".s:g_base00 ."'" -exe "let s:fg_base0 = ' ctermfg=".s:c_base0 ." guifg=".s:g_base0 ."'" -exe "let s:fg_base1 = ' ctermfg=".s:c_base1 ." guifg=".s:g_base1 ."'" -exe "let s:fg_base2 = ' ctermfg=".s:c_base2 ." guifg=".s:g_base2 ."'" -exe "let s:fg_base3 = ' ctermfg=".s:c_base3 ." guifg=".s:g_base3 ."'" -exe "let s:fg_green = ' ctermfg=".s:c_green ." guifg=".s:g_green ."'" -exe "let s:fg_yellow = ' ctermfg=".s:c_yellow ." guifg=".s:g_yellow ."'" -exe "let s:fg_orange = ' ctermfg=".s:c_orange ." guifg=".s:g_orange ."'" -exe "let s:fg_red = ' ctermfg=".s:c_red ." guifg=".s:g_red ."'" -exe "let s:fg_magenta = ' ctermfg=".s:c_magenta." guifg=".s:g_magenta."'" -exe "let s:fg_violet = ' ctermfg=".s:c_violet ." guifg=".s:g_violet ."'" -exe "let s:fg_blue = ' ctermfg=".s:c_blue ." guifg=".s:g_blue ."'" -exe "let s:fg_cyan = ' ctermfg=".s:c_cyan ." guifg=".s:g_cyan ."'" - -exe "let s:sp_none = ' guisp=".s:g_none ."'" -exe "let s:sp_back = ' guisp=".s:g_back ."'" -exe "let s:sp_base03 = ' guisp=".s:g_base03 ."'" -exe "let s:sp_base02 = ' guisp=".s:g_base02 ."'" -exe "let s:sp_base01 = ' guisp=".s:g_base01 ."'" -exe "let s:sp_base00 = ' guisp=".s:g_base00 ."'" -exe "let s:sp_base0 = ' guisp=".s:g_base0 ."'" -exe "let s:sp_base1 = ' guisp=".s:g_base1 ."'" -exe "let s:sp_base2 = ' guisp=".s:g_base2 ."'" -exe "let s:sp_base3 = ' guisp=".s:g_base3 ."'" -exe "let s:sp_green = ' guisp=".s:g_green ."'" -exe "let s:sp_yellow = ' guisp=".s:g_yellow ."'" -exe "let s:sp_orange = ' guisp=".s:g_orange ."'" -exe "let s:sp_red = ' guisp=".s:g_red ."'" -exe "let s:sp_magenta = ' guisp=".s:g_magenta."'" -exe "let s:sp_violet = ' guisp=".s:g_violet ."'" -exe "let s:sp_blue = ' guisp=".s:g_blue ."'" -exe "let s:sp_cyan = ' guisp=".s:g_cyan ."'" - -exe "let s:fmt_none = ' cterm=NONE". " gui=NONE". " term=NONE". "'" -exe "let s:fmt_bold = ' cterm=NONE".s:b." gui=NONE".s:b." term=NONE".s:b."'" -exe "let s:fmt_bldi = ' cterm=NONE".s:b." gui=NONE".s:b.s:i." term=NONE".s:b."'" -exe "let s:fmt_undr = ' cterm=NONE".s:u." gui=NONE".s:u." term=NONE".s:u."'" -exe "let s:fmt_undb = ' cterm=NONE".s:u.s:b." gui=NONE".s:u.s:b. - \" term=NONE".s:u.s:b."'" -exe "let s:fmt_undi = ' cterm=NONE".s:u." gui=NONE".s:u.s:i. - \" term=NONE".s:u."'" -exe "let s:fmt_uopt = ' cterm=NONE".s:ou." gui=NONE".s:ou. - \" term=NONE".s:ou."'" -exe "let s:fmt_bopt = ' cterm=NONE".s:ob." gui=NONE".s:ob. - \" term=NONE".s:ob."'" -exe "let s:fmt_curl = ' cterm=NONE".s:c." gui=NONE".s:c." term=NONE".s:c."'" -exe "let s:fmt_ital = ' cterm=NONE". " gui=NONE".s:i." term=NONE". "'" -exe "let s:fmt_revr = ' cterm=NONE".s:r." gui=NONE".s:r." term=NONE".s:r."'" -exe "let s:fmt_stnd = ' cterm=NONE".s:s." gui=NONE".s:s." term=NONE".s:s."'" +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" +exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" +exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" +exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" +exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" +exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" +exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" +exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" +exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" +exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" +exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" +exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" +exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" +exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" +exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" +exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" +exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" +exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" +exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" + +exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +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_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_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" +" revbb (reverse bold for bright colors) is only set to actual bold in low +" color terminals (t_co=8, such as OS X Terminal.app) and should only be used +" with colors 8-15. +exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" +exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_back = ' guisp=".s:back ."'" + exe "let s:sp_base03 = ' guisp=".s:base03 ."'" + exe "let s:sp_base02 = ' guisp=".s:base02 ."'" + exe "let s:sp_base01 = ' guisp=".s:base01 ."'" + exe "let s:sp_base00 = ' guisp=".s:base00 ."'" + exe "let s:sp_base0 = ' guisp=".s:base0 ."'" + exe "let s:sp_base1 = ' guisp=".s:base1 ."'" + exe "let s:sp_base2 = ' guisp=".s:base2 ."'" + exe "let s:sp_base3 = ' guisp=".s:base3 ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_magenta = ' guisp=".s:magenta."'" + exe "let s:sp_violet = ' guisp=".s:violet ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_cyan = ' guisp=".s:cyan ."'" +else + let s:sp_none = "" + let s:sp_back = "" + let s:sp_base03 = "" + let s:sp_base02 = "" + let s:sp_base01 = "" + let s:sp_base00 = "" + let s:sp_base0 = "" + let s:sp_base1 = "" + let s:sp_base2 = "" + let s:sp_base3 = "" + let s:sp_green = "" + let s:sp_yellow = "" + let s:sp_orange = "" + let s:sp_red = "" + let s:sp_magenta = "" + let s:sp_violet = "" + let s:sp_blue = "" + let s:sp_cyan = "" +endif + "}}} " Basic highlighting"{{{ " --------------------------------------------------------------------- " note that link syntax to avoid duplicate configuration doesn't work with the " exe compiled formats -exe "hi Normal" . s:fg_base0 .s:bg_back .s:fmt_none - -exe "hi Comment" . s:fg_base01 .s:bg_none .s:fmt_ital -" *Comment any comment - -exe "hi Constant" . s:fg_cyan .s:bg_none .s:fmt_none -"exe "hi String" . s:fg_yellow .s:bg_none .s:fmt_none -" *Constant any constant -" String a string constant: "this is a string" -" Character a character constant: 'c', '\n' -" Number a number constant: 234, 0xff -" Boolean a boolean constant: TRUE, false -" Float a floating point constant: 2.3e10 - -exe "hi Identifier" . s:fg_blue .s:bg_none .s:fmt_none -" *Identifier any variable name -" Function function name (also: methods for classes) -" -exe "hi Statement" . s:fg_green .s:bg_none .s:fmt_none -" *Statement any statement -" Conditional if, then, else, endif, switch, etc. -" Repeat for, do, while, etc. -" Label case, default, etc. -" Operator "sizeof", "+", "*", etc. -" Keyword any other keyword -" Exception try, catch, throw - -exe "hi PreProc" . s:fg_orange .s:bg_none .s:fmt_none -" *PreProc generic Preprocessor -" Include preprocessor #include -" Define preprocessor #define -" Macro same as Define -" PreCondit preprocessor #if, #else, #endif, etc. - -exe "hi Type" . s:fg_yellow .s:bg_none .s:fmt_none -" *Type int, long, char, etc. -" StorageClass static, register, volatile, etc. -" Structure struct, union, enum, etc. -" Typedef A typedef - -exe "hi Special" . s:fg_red .s:bg_none .s:fmt_none -" *Special any special symbol -" SpecialChar special character in a constant -" Tag you can use CTRL-] on this -" Delimiter character that needs attention -" SpecialComment special things inside a comment -" Debug debugging statements - -exe "hi Underlined" . s:fg_violet .s:bg_none .s:fmt_none -" *Underlined text that stands out, HTML links - -exe "hi Ignore" . s:fg_none .s:bg_none .s:fmt_none -" *Ignore left blank, hidden |hl-Ignore| - -exe "hi Error" . s:fg_red .s:bg_none .s:fmt_bold -" *Error any erroneous construct - -exe "hi Todo" . s:fg_magenta.s:bg_none .s:fmt_bold -" *Todo anything that needs extra attention; mostly the -" keywords TODO FIXME and XXX -" -"Highlighting groups for various occasions -"----------------------------------------- -exe "hi SpecialKey" . s:fg_red .s:bg_none .s:fmt_none -exe "hi NonText" . s:fg_base02 .s:bg_none .s:fmt_bold -exe "hi Directory" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi ErrorMsg" . s:fg_red .s:bg_none .s:fmt_revr -exe "hi IncSearch" . s:fg_yellow .s:bg_none .s:fmt_revr -exe "hi Search" . s:fg_yellow .s:bg_none .s:fmt_stnd -exe "hi MoreMsg" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi ModeMsg" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi LineNr" . s:fg_base01 .s:bg_base02 .s:fmt_none -exe "hi Question" . s:fg_cyan .s:bg_none .s:fmt_bold -exe "hi StatusLine" . s:fg_base0 .s:bg_base02 .s:fmt_none -exe "hi StatusLineNC" . s:fg_base1 .s:bg_base02 .s:fmt_none -exe "hi VertSplit" . s:fg_base0 .s:bg_base02 .s:fmt_none -exe "hi Title" . s:fg_orange .s:bg_none .s:fmt_bold -exe "hi Visual" . s:fg_none .s:bg_base02 .s:fmt_stnd -exe "hi VisualNOS" . s:fg_none .s:bg_base02 .s:fmt_stnd -exe "hi WarningMsg" . s:fg_red .s:bg_none .s:fmt_bold -exe "hi WildMenu" . s:fg_base1 .s:bg_base02 .s:fmt_none -exe "hi Folded" . s:fg_base0 .s:bg_base02 .s:fmt_undr .s:sp_base03 -exe "hi FoldColumn" . s:fg_base0 .s:bg_base02 .s:fmt_bold -exe "hi DiffAdd" . s:fg_green .s:bg_none .s:fmt_revr -exe "hi DiffChange" . s:fg_yellow .s:bg_none .s:fmt_revr -exe "hi DiffDelete" . s:fg_red .s:bg_none .s:fmt_revr -exe "hi DiffText" . s:fg_blue .s:bg_none .s:fmt_revr -exe "hi SignColumn" . s:fg_base0 .s:bg_base02 .s:fmt_none -exe "hi Conceal" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi SpellBad" . s:fg_none .s:bg_none .s:fmt_curl .s:sp_red -exe "hi SpellCap" . s:fg_none .s:bg_none .s:fmt_curl .s:sp_violet -exe "hi SpellRare" . s:fg_none .s:bg_none .s:fmt_curl .s:sp_cyan -exe "hi SpellLocal" . s:fg_none .s:bg_none .s:fmt_curl .s:sp_yellow -exe "hi Pmenu" . s:fg_base0 .s:bg_base02 .s:fmt_none -exe "hi PmenuSel" . s:fg_base2 .s:bg_base01 .s:fmt_none -exe "hi PmenuSbar" . s:fg_base0 .s:bg_base2 .s:fmt_none -exe "hi PmenuThumb" . s:fg_base03 .s:bg_base0 .s:fmt_none -exe "hi TabLine" . s:fg_base0 .s:bg_base02 .s:fmt_undr .s:sp_base0 -exe "hi TabLineSel" . s:fg_base2 .s:bg_base01 .s:fmt_undr .s:sp_base0 -exe "hi TabLineFill" . s:fg_base0 .s:bg_base02 .s:fmt_undr .s:sp_base0 -exe "hi CursorColumn" . s:fg_none .s:bg_base02 .s:fmt_none -exe "hi CursorLine" . s:fg_none .s:bg_base02 .s:fmt_uopt .s:sp_base1 -exe "hi ColorColumn" . s:fg_none .s:bg_base02 .s:fmt_none -exe "hi Cursor" . s:fg_none .s:bg_none .s:fmt_revr -exe "hi lCursor" . s:fg_none .s:bg_none .s:fmt_stnd -exe "hi MatchParen" . s:fg_red .s:bg_base01 .s:fmt_bold +exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back +exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none +" *Comment any comment + +exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none +" *Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 + +exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none +" *Identifier any variable name +" Function function name (also: methods for classes) +" +exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none +" *Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw + +exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none +" *PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. + +exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none +" *Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef + +exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none +" *Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements + +exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none +" *Underlined text that stands out, HTML links + +exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none +" *Ignore left blank, hidden |hl-Ignore| + +exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none +" *Error any erroneous construct + +exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none +" *Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" "}}} " Extended highlighting "{{{ " --------------------------------------------------------------------- +if (g:solarized_visibility=="high") + exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none +elseif (g:solarized_visibility=="low") + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none +else + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 + exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none +endif +exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb +exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb +exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb +exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none +exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 +exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none +if ( has("gui_running") || &t_Co > 8 ) + exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 +else + exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 +endif +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +if (g:solarized_diffmode=="high") +exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none +exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none +elseif (g:solarized_diffmode=="low") +exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green +exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue +else " normal + if has("gui_running") +exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue + else +exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue + endif +endif +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 +exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red +exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet +exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan +exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow +exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb +exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu +exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 +exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 +hi! link lCursor Cursor +exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 + "}}} " vim syntax highlighting "{{{ " --------------------------------------------------------------------- -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 vimVar Identifier -hi link vimFunc 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 -"exe "hi helpSpecial" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi helpOption" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi helpNote" . s:fg_magenta.s:bg_none .s:fmt_none -exe "hi helpVim" . s:fg_magenta.s:bg_none .s:fmt_none -exe "hi helpHyperTextJump".s:fg_blue .s:bg_none .s:fmt_undr -exe "hi helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none -exe "hi vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none -exe "hi vimSynMtchOpt". s:fg_yellow .s:bg_none .s:fmt_none -exe "hi vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb +"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital +"hi! link vimComment Comment +"hi! link vimLineComment Comment +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +hi! link helpSpecial Special +hi! link vimSet Normal +hi! link vimSetEqual Normal +exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none +exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none +exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none +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 "}}} +" diff highlighting "{{{ +" --------------------------------------------------------------------- +hi! link diffAdded Statement +hi! link diffLine Identifier +"}}} +" git & gitcommit highlighting "{{{ +"git +"exe "hi! gitDateHeader" +"exe "hi! gitIdentityHeader" +"exe "hi! gitIdentityKeyword" +"exe "hi! gitNotesHeader" +"exe "hi! gitReflogHeader" +"exe "hi! gitKeyword" +"exe "hi! gitIdentity" +"exe "hi! gitEmailDelimiter" +"exe "hi! gitEmail" +"exe "hi! gitDate" +"exe "hi! gitMode" +"exe "hi! gitHashAbbrev" +"exe "hi! gitHash" +"exe "hi! gitReflogMiddle" +"exe "hi! gitReference" +"exe "hi! gitStage" +"exe "hi! gitType" +"exe "hi! gitDiffAdded" +"exe "hi! gitDiffRemoved" +"gitcommit +"exe "hi! gitcommitSummary" +exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none +hi! link gitcommitUntracked gitcommitComment +hi! link gitcommitDiscarded gitcommitComment +hi! link gitcommitSelected gitcommitComment +exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none +exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none +hi! link gitcommitNoBranch gitcommitBranch +exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none +"exe "hi! gitcommitUnmergedType" +"exe "hi! gitcommitType" +"exe "hi! gitcommitNoChanges" +"exe "hi! gitcommitHeader" +exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none +exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none +hi! link gitcommitDiscardedArrow gitcommitDiscardedFile +hi! link gitcommitSelectedArrow gitcommitSelectedFile +hi! link gitcommitUnmergedArrow gitcommitUnmergedFile +"exe "hi! gitcommitArrow" +"exe "hi! gitcommitOverflow" +"exe "hi! gitcommitBlank" +" }}} " html highlighting "{{{ " --------------------------------------------------------------------- -exe "hi htmlTag" . s:fg_base01 .s:bg_none .s:fmt_none -exe "hi htmlEndTag" . s:fg_base01 .s:bg_none .s:fmt_none -exe "hi htmlTagN" . s:fg_base1 .s:bg_none .s:fmt_bold -exe "hi htmlTagName" . s:fg_blue .s:bg_none .s:fmt_bold -exe "hi htmlSpecialTagName". s:fg_blue .s:bg_none .s:fmt_ital -exe "hi htmlArg" . s:fg_base00 .s:bg_none .s:fmt_none -exe "hi javaScript" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none +exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none +exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none "}}} " perl highlighting "{{{ " --------------------------------------------------------------------- -exe "hi perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none -exe "hi perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi perlStatementFileDesc" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none +exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none "}}} " tex highlighting "{{{ " --------------------------------------------------------------------- -exe "hi texStatement" . s:fg_cyan .s:bg_back .s:fmt_none -exe "hi texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none "}}} " ruby highlighting "{{{ " --------------------------------------------------------------------- -exe "hi rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold +exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold "rubyInclude "rubySharpBang "rubyAccess @@ -761,22 +793,22 @@ exe "hi rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold "rubyClassVariable "rubyBeginEnd "rubyRepeatModifier -"hi link rubyArrayDelimiter Special " [ , , ] +"hi! link rubyArrayDelimiter Special " [ , , ] "rubyCurlyBlock { , , } -"hi link rubyClass Keyword -"hi link rubyModule Keyword -"hi link rubyKeyword Keyword -"hi link rubyOperator Operator -"hi link rubyIdentifier Identifier -"hi link rubyInstanceVariable Identifier -"hi link rubyGlobalVariable Identifier -"hi link rubyClassVariable Identifier -"hi link rubyConstant Type +"hi! link rubyClass Keyword +"hi! link rubyModule Keyword +"hi! link rubyKeyword Keyword +"hi! link rubyOperator Operator +"hi! link rubyIdentifier Identifier +"hi! link rubyInstanceVariable Identifier +"hi! link rubyGlobalVariable Identifier +"hi! link rubyClassVariable Identifier +"hi! link rubyConstant Type "}}} " haskell syntax highlighting"{{{ " --------------------------------------------------------------------- -" For use with syntax/haskell.vim : Haskell Syntax File +" For use with syntax/haskell.vim : Haskell Syntax File " http://www.vim.org/scripts/script.php?script_id=3034 " See also Steffen Siering's github repository: " http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim @@ -787,172 +819,292 @@ let hs_highlight_boolean=1 " highlight delims, see the plugin referenced above let hs_highlight_delimiters=1 -exe "hi cPreCondit". s:fg_orange.s:bg_none .s:fmt_none - -exe "hi VarId" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi ConId" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi hsImport" . s:fg_magenta.s:bg_none .s:fmt_none -exe "hi hsString" . s:fg_base00 .s:bg_none .s:fmt_none - -exe "hi hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hs_hlFunctionName" . s:fg_blue .s:bg_none -exe "hi hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none -exe "hi hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hsType" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr -exe "hi hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none -hi link hsImportParams Delimiter -hi link hsDelimTypeExport Delimiter -hi link hsModuleStartLabel hsStructure -hi link hsModuleWhereLabel hsModuleStartLabel +exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none + +exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none + +exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none +exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none +exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr +exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none +hi! link hsImportParams Delimiter +hi! link hsDelimTypeExport Delimiter +hi! link hsModuleStartLabel hsStructure +hi! link hsModuleWhereLabel hsModuleStartLabel " following is for the haskell-conceal plugin " the first two items don't have an impact, but better safe -exe "hi hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none "}}} " pandoc markdown syntax highlighting "{{{ " --------------------------------------------------------------------- "PandocHiLink pandocNormalBlock -exe "hi pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital -exe "hi pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none -hi link pandocVerbatimBlockDeep pandocVerbatimBlock -hi link pandocCodeBlock pandocVerbatimBlock -hi link pandocCodeBlockDelim pandocVerbatimBlock -exe "hi pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none -exe "hi pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none +hi! link pandocVerbatimBlockDeep pandocVerbatimBlock +hi! link pandocCodeBlock pandocVerbatimBlock +hi! link pandocCodeBlockDelim pandocVerbatimBlock +exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr " Definitions " --------------------------------------------------------------------- let s:fg_pdef = s:fg_violet -exe "hi pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd -exe "hi pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital -exe "hi pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi -exe "hi pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr -exe "hi pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd +exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none " Tables " --------------------------------------------------------------------- let s:fg_ptable = s:fg_blue -exe "hi pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none -hi link pandocTableStructureTop pandocTableStructre -hi link pandocTableStructureEnd pandocTableStructre -exe "hi pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none -exe "hi pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none -exe "hi pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital -exe "hi pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold -exe "hi pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr -exe "hi pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none +hi! link pandocTableStructureTop pandocTableStructre +hi! link pandocTableStructureEnd pandocTableStructre +exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none +exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none +exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none " Headings " --------------------------------------------------------------------- let s:fg_phead = s:fg_orange -exe "hi pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold -exe "hi pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr -exe "hi pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold +exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr +exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold " Links " --------------------------------------------------------------------- -exe "hi pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr -exe "hi pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb -exe "hi pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr -exe "hi pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi -exe "hi pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 -exe "hi pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 -exe "hi pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb -exe "hi pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr -exe "hi pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold -exe "hi pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb -exe "hi pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none -exe "hi pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr -exe "hi pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb +exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr +exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi +exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 +exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 +exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb +exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr +exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold +exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb +exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none " Main Styles " --------------------------------------------------------------------- -exe "hi pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital -exe "hi pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold -exe "hi pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr -exe "hi pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none -exe "hi pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none - -exe "hi pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold -exe "hi pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr -hi link pandocEscapedCharacter pandocEscapePair -hi link pandocLineBreak pandocEscapePair - -" Embedded Code -" --------------------------------------------------------------------- -exe "hi pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold -hi link pandocMetadataTitle pandocMetadata +exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none +exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none + +exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr +hi! link pandocEscapedCharacter pandocEscapePair +hi! link pandocLineBreak pandocEscapePair + +" Embedded Code +" --------------------------------------------------------------------- +exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold +hi! link pandocMetadataTitle pandocMetadata + +"}}} +" Utility autocommand "{{{ +" --------------------------------------------------------------------- +" In cases where Solarized is initialized inside a terminal vim session and +" then transferred to a gui session via the command `:gui`, the gui vim process +" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` +" related code that sets gui specific values isn't executed. +" +" Currently, Solarized sets only the cterm or gui values for the colorscheme +" depending on gui or terminal mode. It's possible that, if the following +" autocommand method is deemed excessively poor form, that approach will be +" used again and the autocommand below will be dropped. +" +" However it seems relatively benign in this case to include the autocommand +" here. It fires only in cases where vim is transferring from terminal to gui +" mode (detected with the script scope s:vmode variable). It also allows for +" other potential terminal customizations that might make gui mode suboptimal. +" +autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif +"}}} +" Highlight Trailing Space {{{ +" Experimental: Different highlight when on cursorline +function! s:SolarizedHiTrail() + if g:solarized_hitrail==0 + hi! clear solarizedTrailingSpace + else + syn match solarizedTrailingSpace "\s*$" + exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red + endif +endfunction +augroup SolarizedHiTrail + autocmd! + if g:solarized_hitrail==1 + autocmd! Syntax * call s:SolarizedHiTrail() + autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif + endif +augroup END +" }}} +" Menus "{{{ +" --------------------------------------------------------------------- +" Turn off Solarized menu by including the following assignment in your .vimrc: +" +" let g:solarized_menu=0 + +function! s:SolarizedOptions() + new "new buffer + setf vim "vim filetype + let failed = append(0, s:defaults_list) + let failed = append(0, s:colorscheme_list) + let failed = append(0, s:options_list) + let failed = append(0, s:lazycat_list) + 0 "jump back to the top +endfunction +if !exists(":SolarizedOptions") + command SolarizedOptions :call s:SolarizedOptions() +endif + +function! SolarizedMenu() + if exists("g:loaded_solarized_menu") + try + silent! aunmenu Solarized + endtry + endif + let g:loaded_solarized_menu = 1 + + if g:colors_name == "solarized" && g:solarized_menu != 0 + + amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized + amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized + amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized + an &Solarized.&Contrast.-sep- + amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' + + amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized + amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized + amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized + an &Solarized.&Visibility.-sep- + amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' + + amenu &Solarized.&Background.&Toggle\ Background :ToggleBG + amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized + amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized + an &Solarized.&Background.-sep- + amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg + + if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" + if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" + if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" + + amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized + + if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif + exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" + an &Solarized.&Experimental.-sep- + amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' + + an &Solarized.-sep1- + + amenu &Solarized.&Autogenerate\ options :SolarizedOptions + + an &Solarized.-sep2- + + amenu &Solarized.&Help.&Solarized\ Help :help solarized + amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg + amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu + + an 9999.77 &Help.&Solarized\ Colorscheme :help solarized + an 9999.78 &Help.&Toggle\ Background :help togglebg + an 9999.79 &Help.-sep3- + + endif +endfunction + +autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif "}}} " License "{{{ " --------------------------------------------------------------------- " " Copyright (c) 2011 Ethan Schoonover -" +" " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to deal " in the Software without restriction, including without limitation the rights " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell " copies of the Software, and to permit persons to whom the Software is " furnished to do so, subject to the following conditions: -" +" " The above copyright notice and this permission notice shall be included in " all copies or substantial portions of the Software. -" +" " THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -960,5 +1112,6 @@ hi link pandocMetadataTitle pandocMetadata " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN " THE SOFTWARE. -" +" +" vim:foldmethod=marker:foldlevel=0 "}}} -- cgit v1.2.3