aboutsummaryrefslogtreecommitdiff
path: root/vim
diff options
context:
space:
mode:
authorMatt Singleton <matt@datadoghq.com>2011-12-15 12:35:32 -0500
committerMatt Singleton <matt@datadoghq.com>2011-12-15 12:35:32 -0500
commitfead075335c4a799a057d311b39c9969fb0be2be (patch)
treeef6221c1fb26406d8f8300f98578c49f6437be51 /vim
parentaea3df2b034e8794c8a0da112abcafa293850fc5 (diff)
updating solarized
Diffstat (limited to 'vim')
-rw-r--r--vim/autoload/togglebg.vim55
-rw-r--r--vim/bitmaps/togglebg.pngbin0 -> 1674 bytes
-rw-r--r--vim/colors/solarized.vim1597
-rw-r--r--vim/doc/solarized.txt254
4 files changed, 1184 insertions, 722 deletions
diff --git a/vim/autoload/togglebg.vim b/vim/autoload/togglebg.vim
new file mode 100644
index 0000000..108511f
--- /dev/null
+++ b/vim/autoload/togglebg.vim
@@ -0,0 +1,55 @@
+" Toggle Background
+" Modified: 2011 Apr 29
+" Maintainer: Ethan Schoonover
+" License: OSI approved MIT license
+
+if exists("g:loaded_togglebg")
+ finish
+endif
+let g:loaded_togglebg = 1
+
+" noremap is a bit misleading here if you are unused to vim mapping.
+" in fact, there is remapping, but only of script locally defined remaps, in
+" this case <SID>TogBG. The <script> argument modifies the noremap scope in
+" this regard (and the noremenu below).
+nnoremap <unique> <script> <Plug>ToggleBackground <SID>TogBG
+inoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>a
+vnoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>gv
+nnoremenu <script> Window.Toggle\ Background <SID>TogBG
+inoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>a
+vnoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>gv
+tmenu Window.Toggle\ Background Toggle light and dark background modes
+nnoremenu <script> ToolBar.togglebg <SID>TogBG
+inoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>a
+vnoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>gv
+tmenu ToolBar.togglebg Toggle light and dark background modes
+noremap <SID>TogBG :call <SID>TogBG()<CR>
+
+function! s:TogBG()
+ let &background = ( &background == "dark"? "light" : "dark" )
+ if exists("g:colors_name")
+ exe "colorscheme " . g:colors_name
+ endif
+endfunction
+
+if !exists(":ToggleBG")
+ command ToggleBG :call s:TogBG()
+endif
+
+function! ToggleBackground()
+ echo "Please update your ToggleBackground mapping. ':help togglebg' for information."
+endfunction
+
+function! togglebg#map(mapActivation)
+ try
+ exe "silent! nmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
+ exe "silent! imap <unique> ".a:mapActivation." <Plug>ToggleBackground"
+ exe "silent! vmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
+ finally
+ return 0
+ endtry
+endfunction
+
+if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground')
+ call togglebg#map("<F5>")
+endif
diff --git a/vim/bitmaps/togglebg.png b/vim/bitmaps/togglebg.png
new file mode 100644
index 0000000..4c7dfef
--- /dev/null
+++ b/vim/bitmaps/togglebg.png
Binary files differ
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 <F5> :call ToggleBackground()<CR>
-" inoremap <F5> <ESC>:call ToggleBackground()<CR>a
-" vnoremap <F5> <ESC>:call ToggleBackground()<CR>
-"
-" ---------------------------------------------------------------------
-" 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<CR>
+ amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized<CR>
+ an &Solarized.&Contrast.-sep- <Nop>
+ amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast'<CR>
+
+ amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized<CR>
+ amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized<CR>
+ an &Solarized.&Visibility.-sep- <Nop>
+ amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility'<CR>
+
+ amenu &Solarized.&Background.&Toggle\ Background :ToggleBG<CR>
+ amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized<CR>
+ amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized<CR>
+ an &Solarized.&Background.-sep- <Nop>
+ amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg<CR>
+
+ 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<CR>"
+ 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<CR>"
+ 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<CR>"
+
+ amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized<CR>
+ amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized<CR>
+ amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized<CR>
+
+ 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<CR>"
+ an &Solarized.&Experimental.-sep- <Nop>
+ amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail'<CR>
+
+ an &Solarized.-sep1- <Nop>
+
+ amenu &Solarized.&Autogenerate\ options :SolarizedOptions<CR>
+
+ an &Solarized.-sep2- <Nop>
+
+ amenu &Solarized.&Help.&Solarized\ Help :help solarized<CR>
+ amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg<CR>
+ amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu<CR>
+
+ an 9999.77 &Help.&Solarized\ Colorscheme :help solarized<CR>
+ an 9999.78 &Help.&Toggle\ Background :help togglebg<CR>
+ an 9999.79 &Help.-sep3- <Nop>
+
+ 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
"}}}
diff --git a/vim/doc/solarized.txt b/vim/doc/solarized.txt
new file mode 100644
index 0000000..93ebd68
--- /dev/null
+++ b/vim/doc/solarized.txt
@@ -0,0 +1,254 @@
+*solarized.vim* for Vim version 7.3 or newer. Modified: 2011 May 05
+
+
+ Solarized Vim Colorscheme by Ethan Schoonover ~
+
+Solarized Colorscheme *solarized*
+ *solarized-help*
+ *solarized-colors*
+ *solarized-colorscheme*
+ *vim-colors-solarized*
+
+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 at http://ethanschoonover.com/solarized for screenshots and
+details.
+
+0. Install |solarized-install|
+1. Solarized Menu |solarized-menu|
+2. Options |solarized-options|
+3. Toggle Background |solarized-togglebg|
+4. Terminal Issues |solarized-term|
+
+==============================================================================
+0. Install *solarized-install*
+
+Note: I recommend using Tim Pope's pathogen plugin to install this
+colorscheme. See https://github.com/tpope/vim-pathogen . If you've installed
+pathogen properly you can install Solarized with the following commands,
+followed by the .vimrc configuration below.
+
+ $ cd ~/.vim/bundle
+ $ git clone https://github.com/altercation/vim-colors-solarized.git
+
+If you aren't using pathogen, you can use the following three steps to install
+Solarized:
+
+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).
+
+
+After installation, place the following 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
+
+==============================================================================
+1. Solarized Menu *solarized-menu*
+
+Solarized makes available a menu when used in Vim GUI mode (gvim, macvim).
+This menu includes many of the options detailed below so that you can test out
+different values quickly without modifying your .vimrc file. If you wish to
+turn off this menu permanently, simply place the following line in your .vimrc
+above the "colorscheme solarized" line.
+
+ let g:solarized_menu=0
+
+==============================================================================
+2. Toggle Background *solarized-togglebg*
+ *toggle-bg* *togglebg*
+ *toggle-background*
+
+Solarized comes with Toggle Background, a simple plugin to switch between
+light and dark background modes and reset the colorscheme. This is most useful
+for colorschemes that support both light and dark modes and in terminals or
+gui vim windows where the background will be properly set.
+
+Toggle Background can be accessed by:
+
+ * the Solarized menu (in Vim gui mode)
+ * the Window menu (in Vim gui mode, even if the Solarized menu is off)
+ * the "yin/yang" toolbar button (in Vim gui mode)
+ * the default mapping of <F5>
+ * custom key mapping you set in your .vimrc (see below)
+ * command line via ":ToggleBG" (no quotes)
+
+Toggle Background starts with a default mapping to function key <F5>. If you
+are already using this in a mapping, Toggle Background will not map itself to
+a default and you will have to map it manually in your .vimrc file, or
+remove/change your existing <F5> mapping to another value. To customize the
+keyboard mapping in your .vimrc file, use the following line, changing the
+"<F5>" value to the key or key combination you wish to use:
+
+ call togglebg#map("<F5>")
+
+Note that you'll want to use a single function key or equivalent if you want
+the plugin to work in all modes (normal, insert, visual).
+
+When using the plugin during normal, visual, or insert mode, there should be
+no interruption in workflow. However, if you activate the plugin during
+REPLACE mode, you will switch to standard insert mode (you will leave the
+overwrite replace mode).
+
+==============================================================================
+3. Solarized Terminal Issues *solarized-term*
+
+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 the Solarized homepage listed at the top of
+this help document. If you use Solarized *without* these colors, Solarized
+will need to be told to degrade its colorscheme to a set compatible with the
+limited 256 terminal palette (whereas by using the terminal's 16 ansi color
+values, you can set the correct, specific values for the Solarized palette).
+
+If you do use the custom terminal colors, solarized.vim should work out of
+the box for you. If you are using a terminal emulator that supports 256
+colors and don't want to use the custom Solarized terminal colors, you will
+need to use the degraded 256 colorscheme. To do so, simply add the following
+line *before* the `colorschem solarized` line:
+
+ let g:solarized_termcolors=256
+
+Again, I recommend just changing your terminal colors to Solarized values
+either manually or via one of the many terminal schemes available for import.
+
+==============================================================================
+4. Solarized Options *solarized-options*
+
+
+AUTOGENERATE OPTIONS
+
+You can easily modify and experiment with Solarized display options using the
+Solarized menu when using Vim in gui mode. Once you have things set to your
+liking, you can autogenerate the current option list in a format ready for
+insertion into your .vimrc file using the Solarized menu "Autogenerate
+Options" command or at the command line with:
+
+ :SolarizedOptions
+
+
+OPTION LIST
+
+Set these in your vimrc file prior to calling the colorscheme.
+
+option name default optional
+------------------------------------------------
+g:solarized_termcolors= 16 | 256
+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_contrast = "normal"| "high" or "low"
+g:solarized_visibility= "normal"| "high" or "low"
+g:solarized_hitrail = 0 | 1
+g:solarized_menu = 1 | 0
+------------------------------------------------
+
+
+OPTION DETAILS
+
+------------------------------------------------
+g:solarized_termcolors= 256 | 16 *'solarized_termcolors'*
+------------------------------------------------
+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 *'solarized_termtrans'*
+------------------------------------------------
+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; iTerm2 did not.
+
+Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
+default as this is almost always the best option. The only exception to this
+is if the working terminfo file supports 256 colors (xterm-256color).
+
+------------------------------------------------
+g:solarized_degrade = 0 | 1 *'solarized_degrade'*
+------------------------------------------------
+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 *'solarized_bold'*
+------------------------------------------------
+------------------------------------------------
+g:solarized_underline = 1 | 0 *'solarized_underline'*
+------------------------------------------------
+------------------------------------------------
+g:solarized_italic = 1 | 0 *'solarized_italic'*
+------------------------------------------------
+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_contrast = "normal"| "high" or "low" *'solarized_contrast'*
+------------------------------------------------
+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.
+
+------------------------------------------------
+g:solarized_visibility = "normal"| "high" or "low" *'solarized_visibility'*
+------------------------------------------------
+Special characters such as trailing whitespace, tabs, newlines, when
+displayed using ":set list" can be set to one of three levels depending on
+your needs.
+
+------------------------------------------------
+g:solarized_hitrail = 0 | 1 *'solarized_hitrail'*
+------------------------------------------------
+Visibility can make listchar entities more visible, but if one has set
+cursorline on, these same listchar values standout somewhat less due to the
+background color of the cursorline. g:solarized_hitrail enables highlighting
+of trailing spaces (only one of the listchar types, but a particularly
+important one) while in the cursoline in a different manner in order to make
+them more visible. This may not work consistently as Solarized is using
+a pattern match than can be overridden by a more encompassing syntax-native
+match such as a comment line.
+
+
+------------------------------------------------
+g:solarized_menu = 1 | 0 *'solarized_menu'*
+------------------------------------------------
+Solarized includes a menu providing access to several of the above
+display related options, including contrast and visibility. This allows
+for an easy method of testing different values quickly before settling
+on a final assignment for your .vimrc. If you wish to turn off this menu,
+assign g:solarized_menu a value of 0.
+
+
+ vim:tw=78:noet:ts=8:ft=help:norl: