mirror of
https://github.com/lifepillar/vim-solarized8.git
synced 2025-12-10 15:57:02 +00:00
The content of this file is adapted from the original Solarized theme. The color palette is exactly the same, but I have removed some cruft and made some adjustments here and there (see the comments) to better suit my taste. For example, I can't stand dark text on a red background, so I have changed ErrorMsg to use a white foreground even in dark mode. I have not removed *all* the bullshit Solarized source, as the [Flattened](https://github.com/romainl/flattened.git) theme does, because I like the possibility of using different contrast levels (besides Solarized's low, normal, and high contrast modes, I have even added my own). Although this file may be used as it is, I plan to use it to generate eight "presets", four with a dark background and four with a light background, one for each contrast level. Then, I'll keep this in a development branch, but I plan to remove it from master. I have started this project because recent Vim versions support true color terminals, i.e., they use gui color definitions. The original Solarized does not define guifg and guibg when used by terminal Vim. This project works in true color terminals out of the box (tested with iTerm), besides working in GUI Vim (of course), and in terminals using Solarized 16-color palette. The degraded 256-color version of Solarized has been removed, because it is ugly and useless (for me). It's called Solarized8 because true color support will make its way into the upcoming Vim 8 release. I have added an option to set the background color of the active status line to the same color as the inactive status line (g:solarized_statusline). Besides, I have added a few highlight groups: NormalMode InsertMode VisualMode CommandMode ReplaceMode I need these changes for my own status line (whose color changes according to the current mode). Other users may safely ignore them.
655 lines
33 KiB
VimL
655 lines
33 KiB
VimL
" Name: Solarized vim colorscheme for Vim 8
|
|
" Author: Lifepillar <lifepillar@lifepillar.me>
|
|
" License: OSI approved MIT license (see end of this file)
|
|
|
|
hi clear
|
|
if exists("syntax_on")
|
|
syntax reset
|
|
endif
|
|
let colors_name = "solarized8"
|
|
|
|
let g:solarized_contrast = get(g:, 'solarized_contrast', 'normal') " low, normal, lifepillar, high
|
|
let g:solarized_visibility = get(g:, 'solarized_visibility', 'normal') " low, normal, high
|
|
let g:solarized_diffmode = get(g:, 'solarized_diffmode', 'normal') " low, normal, high
|
|
let g:solarized_statusline = get(g:, 'solarized_statusline', 'normal') " low, normal
|
|
|
|
let s:base03 = ["8" , "#002b36"]
|
|
let s:base02 = ["0" , "#073642"]
|
|
let s:base01 = ["10", "#586e75"]
|
|
let s:base00 = ["11", "#657b83"]
|
|
let s:base0 = ["12", "#839496"]
|
|
let s:base1 = ["14", "#93a1a1"]
|
|
let s:base2 = ["7" , "#eee8d5"]
|
|
let s:base3 = ["15", "#fdf6e3"]
|
|
let s:yellow = ["3" , "#b58900"]
|
|
let s:orange = ["9" , "#cb4b16"]
|
|
let s:red = ["1" , "#dc322f"]
|
|
let s:magenta = ["5" , "#d33682"]
|
|
let s:violet = ["13", "#6c71c4"]
|
|
let s:blue = ["4" , "#268bd2"]
|
|
let s:cyan = ["6" , "#2aa198"]
|
|
"let s:green = ["2" , "#859900"] " original
|
|
let s:green = ["2" , "#719e07"] " experimental
|
|
let s:c = ",undercurl"
|
|
let s:r = ",reverse"
|
|
let s:s = ",standout"
|
|
let s:ou = ""
|
|
let s:ob = ""
|
|
let s:back = s:base03
|
|
let s:b = ",bold"
|
|
let s:i = ",italic"
|
|
let s:u = ""
|
|
|
|
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
|
|
let s:back = s:base03
|
|
endif
|
|
|
|
if g:solarized_contrast == "high"
|
|
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
|
|
endif
|
|
if g:solarized_contrast == "low"
|
|
let s:back = s:base02
|
|
let s:ou = ",underline"
|
|
endif
|
|
if g:solarized_contrast == "lifepillar"
|
|
let s:ou = ",underline"
|
|
endif
|
|
exe "let s:bg_none = ' ctermbg=NONE guibg=NONE'"
|
|
exe "let s:bg_back = ' ctermbg=".s:back[0] "guibg=".s:back[1] "'"
|
|
exe "let s:bg_base03 = ' ctermbg=".s:base03[0] "guibg=".s:base03[1] "'"
|
|
exe "let s:bg_base02 = ' ctermbg=".s:base02[0] "guibg=".s:base02[1] "'"
|
|
exe "let s:bg_base01 = ' ctermbg=".s:base01[0] "guibg=".s:base01[1] "'"
|
|
exe "let s:bg_base00 = ' ctermbg=".s:base00[0] "guibg=".s:base00[1] "'"
|
|
exe "let s:bg_base0 = ' ctermbg=".s:base0[0] "guibg=".s:base0[1] "'"
|
|
exe "let s:bg_base1 = ' ctermbg=".s:base1[0] "guibg=".s:base1[1] "'"
|
|
exe "let s:bg_base2 = ' ctermbg=".s:base2[0] "guibg=".s:base2[1] "'"
|
|
exe "let s:bg_base3 = ' ctermbg=".s:base3[0] "guibg=".s:base3[1] "'"
|
|
exe "let s:bg_green = ' ctermbg=".s:green[0] "guibg=".s:green[1] "'"
|
|
exe "let s:bg_yellow = ' ctermbg=".s:yellow[0] "guibg=".s:yellow[1] "'"
|
|
exe "let s:bg_orange = ' ctermbg=".s:orange[0] "guibg=".s:orange[1] "'"
|
|
exe "let s:bg_red = ' ctermbg=".s:red[0] "guibg=".s:red[1] "'"
|
|
exe "let s:bg_magenta = ' ctermbg=".s:magenta[0] "guibg=".s:magenta[1] "'"
|
|
exe "let s:bg_violet = ' ctermbg=".s:violet[0] "guibg=".s:violet[1] "'"
|
|
exe "let s:bg_blue = ' ctermbg=".s:blue[0] "guibg=".s:blue[1] "'"
|
|
exe "let s:bg_cyan = ' ctermbg=".s:cyan[0] "guibg=".s:cyan[1] "'"
|
|
|
|
exe "let s:fg_none = ' ctermfg=NONE guifg=NONE'"
|
|
exe "let s:fg_back = ' ctermfg=".s:back[0] "guifg=".s:back[1] "'"
|
|
exe "let s:fg_base03 = ' ctermfg=".s:base03[0] "guifg=".s:base03[1] "'"
|
|
exe "let s:fg_base02 = ' ctermfg=".s:base02[0] "guifg=".s:base02[1] "'"
|
|
exe "let s:fg_base01 = ' ctermfg=".s:base01[0] "guifg=".s:base01[1] "'"
|
|
exe "let s:fg_base00 = ' ctermfg=".s:base00[0] "guifg=".s:base00[1] "'"
|
|
exe "let s:fg_base0 = ' ctermfg=".s:base0[0] "guifg=".s:base0[1] "'"
|
|
exe "let s:fg_base1 = ' ctermfg=".s:base1[0] "guifg=".s:base1[1] "'"
|
|
exe "let s:fg_base2 = ' ctermfg=".s:base2[0] "guifg=".s:base2[1] "'"
|
|
exe "let s:fg_base3 = ' ctermfg=".s:base3[0] "guifg=".s:base3[1] "'"
|
|
exe "let s:fg_green = ' ctermfg=".s:green[0] "guifg=".s:green[1] "'"
|
|
exe "let s:fg_yellow = ' ctermfg=".s:yellow[0] "guifg=".s:yellow[1] "'"
|
|
exe "let s:fg_orange = ' ctermfg=".s:orange[0] "guifg=".s:orange[1] "'"
|
|
exe "let s:fg_red = ' ctermfg=".s:red[0] "guifg=".s:red[1] "'"
|
|
exe "let s:fg_magenta = ' ctermfg=".s:magenta[0] "guifg=".s:magenta[1] "'"
|
|
exe "let s:fg_violet = ' ctermfg=".s:violet[0] "guifg=".s:violet[1] "'"
|
|
exe "let s:fg_blue = ' ctermfg=".s:blue[0] "guifg=".s:blue[1] "'"
|
|
exe "let s:fg_cyan = ' ctermfg=".s:cyan[0] "guifg=".s:cyan[1] "'"
|
|
|
|
exe "let s:fmt_none = ' cterm=NONE gui=NONE" "'"
|
|
exe "let s:fmt_bold = ' cterm=NONE".s:b "gui=NONE".s:b "'"
|
|
exe "let s:fmt_bldi = ' cterm=NONE".s:b "gui=NONE".s:b "'"
|
|
exe "let s:fmt_undr = ' cterm=NONE".s:u "gui=NONE".s:u "'"
|
|
exe "let s:fmt_undb = ' cterm=NONE".s:u.s:b "gui=NONE".s:u.s:b "'"
|
|
exe "let s:fmt_undi = ' cterm=NONE".s:u "gui=NONE".s:u "'"
|
|
exe "let s:fmt_uopt = ' cterm=NONE".s:ou "gui=NONE".s:ou "'"
|
|
exe "let s:fmt_curl = ' cterm=NONE".s:c "gui=NONE".s:c "'"
|
|
exe "let s:fmt_ital = ' cterm=NONE" "gui=NONE".s:i "'"
|
|
exe "let s:fmt_stnd = ' cterm=NONE".s:s "gui=NONE".s:s "'"
|
|
exe "let s:fmt_revr = ' cterm=NONE".s:r "gui=NONE".s:r "'"
|
|
exe "let s:fmt_revb = ' cterm=NONE".s:r.s:b "gui=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 = ' cterm=NONE".s:r "gui=NONE".s:r "'"
|
|
exe "let s:fmt_revbbu = ' cterm=NONE".s:r.s:u "gui=NONE".s:r.s:u "'"
|
|
|
|
exe "let s:sp_none = ' guisp=NONE'"
|
|
exe "let s:sp_back = ' guisp=".s:back[1] "'"
|
|
exe "let s:sp_base03 = ' guisp=".s:base03[1] "'"
|
|
exe "let s:sp_base02 = ' guisp=".s:base02[1] "'"
|
|
exe "let s:sp_base01 = ' guisp=".s:base01[1] "'"
|
|
exe "let s:sp_base00 = ' guisp=".s:base00[1] "'"
|
|
exe "let s:sp_base0 = ' guisp=".s:base0[1] "'"
|
|
exe "let s:sp_base1 = ' guisp=".s:base1[1] "'"
|
|
exe "let s:sp_base2 = ' guisp=".s:base2[1] "'"
|
|
exe "let s:sp_base3 = ' guisp=".s:base3[1] "'"
|
|
exe "let s:sp_green = ' guisp=".s:green[1] "'"
|
|
exe "let s:sp_yellow = ' guisp=".s:yellow[1] "'"
|
|
exe "let s:sp_orange = ' guisp=".s:orange[1] "'"
|
|
exe "let s:sp_red = ' guisp=".s:red[1] "'"
|
|
exe "let s:sp_magenta = ' guisp=".s:magenta[1] "'"
|
|
exe "let s:sp_violet = ' guisp=".s:violet[1] "'"
|
|
exe "let s:sp_blue = ' guisp=".s:blue[1] "'"
|
|
exe "let s:sp_cyan = ' guisp=".s:cyan[1] "'"
|
|
|
|
"}}}
|
|
" Lifepillar's mode highlighting {{{
|
|
if &background == "dark"
|
|
exe "hi! NormalMode" s:fmt_none s:fg_base0 s:bg_base3 s:fmt_revbb
|
|
exe "hi! InsertMode" s:fmt_none s:fg_cyan s:bg_base3 s:fmt_revbb
|
|
exe "hi! ReplaceMode" s:fmt_none s:fg_orange s:bg_base3 s:fmt_revbb
|
|
exe "hi! VisualMode" s:fmt_none s:fg_magenta s:bg_base3 s:fmt_revbb
|
|
exe "hi! CommandMode" s:fmt_none s:fg_magenta s:bg_base3 s:fmt_revbb
|
|
else
|
|
exe "hi! NormalMode" s:fmt_none s:fg_base1 s:bg_base03 s:fmt_revbb
|
|
exe "hi! InsertMode" s:fmt_none s:fg_cyan s:bg_base03 s:fmt_revbb
|
|
exe "hi! ReplaceMode" s:fmt_none s:fg_orange s:bg_base03 s:fmt_revbb
|
|
exe "hi! VisualMode" s:fmt_none s:fg_magenta s:bg_base03 s:fmt_revbb
|
|
exe "hi! CommandMode" s:fmt_none s:fg_magenta s:bg_base03 s:fmt_revbb
|
|
endif
|
|
" }}}
|
|
" Basic highlighting"{{{
|
|
" ---------------------------------------------------------------------
|
|
" note that link syntax to avoid duplicate configuration doesn't work with the
|
|
" exe compiled formats
|
|
|
|
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
|
|
|
|
" Changed by Lifepillar: avoid red on dark background, use orange instead:
|
|
exe "hi! Special" .s:fmt_none .s:fg_orange .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") " visibility
|
|
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") " visibility
|
|
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
|
|
if g:solarized_statusline == 'low'
|
|
if &background == "dark"
|
|
exe "hi! StatusLine" .s:fmt_none .s:fg_base01 "ctermbg=7" "guibg=#eee8d5" .s:fmt_revbb
|
|
else
|
|
exe "hi! StatusLine" .s:fmt_none .s:fg_base01 "ctermbg=15" "guibg=#fdf6e3" .s:fmt_revbb
|
|
endif
|
|
else
|
|
if &background == "dark"
|
|
" Changed by Lifepillar: slightly darker status line, light foreground
|
|
exe "hi! StatusLine" .s:fmt_none .s:fg_base0 .s:bg_base02.s:fmt_revbb
|
|
else
|
|
exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02.s:fmt_revbb
|
|
endif
|
|
endif
|
|
if g:solarized_contrast == "lifepillar"
|
|
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base01 s:fmt_revbb
|
|
else
|
|
" Changed by Lifepillar: lighter colors for disabled status line
|
|
if &background == "dark"
|
|
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base01 .s:bg_base1 .s:fmt_revbb
|
|
else
|
|
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base01 .s:bg_base02 .s:fmt_revbb
|
|
endif
|
|
endif
|
|
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
|
|
" Changed by Lifepillar: ErrorMsg is always white on red, never black on red (pesky)
|
|
exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red "ctermbg=15" "guibg=#fdf6e3"
|
|
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 g:solarized_contrast == "lifepillar"
|
|
exe "hi! VertSplit" .s:fmt_none .s:fg_base02 .s:bg_base02
|
|
else
|
|
" Changed by Lifepillar: lighter vertical bars:
|
|
exe "hi! VertSplit" .s:fmt_none .s:fg_base01 .s:bg_base01
|
|
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") " diffmode
|
|
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
|
|
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
|
|
endif
|
|
" Changed by Lifepillar: set s:bg_none for SignColumn:
|
|
exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_none
|
|
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
|
|
if g:solarized_contrast == 'lifepillar'
|
|
exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base03 .s:sp_base1
|
|
else
|
|
exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
|
|
endif
|
|
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
|
|
" Changed by Lifepillar: better (in my opinion) highlighting for MatchParen:
|
|
if &background == 'dark'
|
|
exe "hi! MatchParen" .s:fmt_bold .s:fg_base3 .s:bg_base02
|
|
else
|
|
exe "hi! MatchParen" .s:fmt_bold .s:fg_base03 .s:bg_base00
|
|
endif
|
|
"}}}
|
|
" vim syntax highlighting "{{{
|
|
" ---------------------------------------------------------------------
|
|
"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: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
|
|
|
|
"}}}
|
|
" 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
|
|
"}}}
|
|
" ruby highlighting "{{{
|
|
" ---------------------------------------------------------------------
|
|
exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
|
|
"rubyInclude
|
|
"rubySharpBang
|
|
"rubyAccess
|
|
"rubyPredefinedVariable
|
|
"rubyBoolean
|
|
"rubyClassVariable
|
|
"rubyBeginEnd
|
|
"rubyRepeatModifier
|
|
"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
|
|
"}}}
|
|
" haskell syntax highlighting"{{{
|
|
" ---------------------------------------------------------------------
|
|
" 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
|
|
" ---------------------------------------------------------------------
|
|
"
|
|
" Treat True and False specially, see the plugin referenced above
|
|
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
|
|
|
|
" 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
|
|
|
|
"}}}
|
|
" 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
|
|
|
|
" 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
|
|
|
|
" 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
|
|
|
|
" 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
|
|
|
|
" 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
|
|
|
|
" 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
|
|
|
|
"}}}
|
|
" 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
|
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
" 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
|
|
"}}}
|