├── LICENSE.md ├── README.md └── colors └── NeoSolarized.vim /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2011 Ethan Schoonover 4 | Copyright (c) 2016 iCyMind 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NeoSolarized 2 | Another solarized color theme for truecolor neovim / vim. 3 | ![Screenshot-dark](http://ww3.sinaimg.cn/large/5d4db8f9gw1f88o0e8r6mj21kw11hqcx.jpg) 4 | ![Screenshot-light](http://ww3.sinaimg.cn/large/5d4db8f9gw1f8bkj8fnghj21kw11n7et.jpg) 5 | Fork from [vim-colors-solarized](https://github.com/altercation/vim-colors-solarized), Features: 6 | - truecolor support for neovim/vim terminal, and works well in Gvim/MacVim. 7 | - define color for neovim's embed terminal. 8 | - define color for [Neomake](https://github.com/neomake/neomake), [GitGutter](https://github.com/airblade/vim-gitgutter), [ALE](https://github.com/w0rp/ale) 9 | 10 | ## Requirements 11 | - A [terminal](https://gist.github.com/XVilka/8346728) which supports truecolor 12 | - neovim or Gvim/MacVim or vim ≥ 7.4.1799 13 | - The following line in your `init.vim` or `.vimrc` file: 14 | 15 | ```vim 16 | set termguicolors 17 | ``` 18 | 19 | ## Installation 20 | - Manual install 21 | Move NeoSolarized.vim to your vim RunTimePath directory: 22 | 23 | ```bash 24 | cd NeoSolarized/colors 25 | mv NeoSolarized.vim ~/.config/nvim/colors/ 26 | ``` 27 | or for vim 28 | ```bash 29 | cd NeoSolarized/colors 30 | mv NeoSolarized.vim ~/.vim/colors/ 31 | ``` 32 | - Plugin managers: [vim-plug](https://github.com/junegunn/vim-plug): 33 | - Add `Plug 'overcache/NeoSolarized'` to your `init.vim` or `.vimrc` file. 34 | - Run `:PlugInstall` after resourcing/relaunching. 35 | 36 | After the installation, configure it as your colorscheme by putting the following line into your `init.vim` or `.vimrc` file: 37 | ```vim 38 | colorscheme NeoSolarized 39 | ``` 40 | ## Options 41 | Some options of the original solarized theme were removed or renamed to avoid config conflicts. 42 | Make sure to put configuration before the line `colorscheme NeoSolarized` in `init.vim` or `.vimrc`. 43 | 44 | ```vim 45 | " Default value is "normal", Setting this option to "high" or "low" does use the 46 | " same Solarized palette but simply shifts some values up or down in order to 47 | " expand or compress the tonal range displayed. 48 | let g:neosolarized_contrast = "normal" 49 | 50 | " Special characters such as trailing whitespace, tabs, newlines, when displayed 51 | " using ":set list" can be set to one of three levels depending on your needs. 52 | " Default value is "normal". Provide "high" and "low" options. 53 | let g:neosolarized_visibility = "normal" 54 | 55 | " I make vertSplitBar a transparent background color. If you like the origin 56 | " solarized vertSplitBar style more, set this value to 0. 57 | let g:neosolarized_vertSplitBgTrans = 1 58 | 59 | " If you wish to enable/disable NeoSolarized from displaying bold, underlined 60 | " or italicized" typefaces, simply assign 1 or 0 to the appropriate variable. 61 | " Default values: 62 | let g:neosolarized_bold = 1 63 | let g:neosolarized_underline = 1 64 | let g:neosolarized_italic = 0 65 | 66 | " Used to enable/disable "bold as bright" in Neovim terminal. If colors of bold 67 | " text output by commands like `ls` aren't what you expect, you might want to 68 | " try disabling this option. Default value: 69 | let g:neosolarized_termBoldAsBright = 1 70 | ``` 71 | 72 | 73 | To enable the dark version of the theme add the line 74 | ```vim 75 | set background=dark 76 | ``` 77 | For more information check out the documentation in `NeoSolarized.vim`. 78 | 79 | 80 | ## More info 81 | ### Plugins used in the screenshot 82 | 83 | - [NERDTree](https://github.com/scrooloose/nerdtree) 84 | - [vim-airline](https://github.com/vim-airline/vim-airline) 85 | - [neomake](https://github.com/neomake/neomake) 86 | - [vim-gitgutter](https://github.com/airblade/vim-gitgutter) (make sure you have: `let g:gitgutter_override_sign_column_highlight = 0` in your init.vim/.vimrc) 87 | - [vim-signature](https://github.com/kshenoy/vim-signature) 88 | 89 | ### Truecolor test 90 | You can run this script to test if your terminal is supported. If the colors blend smoothly like: ![colortest](http://ww3.sinaimg.cn/large/5d4db8f9gw1f8into8gvgj20hf00o0sv.jpg), then you know that you have True Color support. 91 | ```bash 92 | awk 'BEGIN{ 93 | s="/\\/\\/\\/\\/\\"; s=s s s s s s s s; 94 | for (colnum = 0; colnum<77; colnum++) { 95 | r = 255-(colnum*255/76); 96 | g = (colnum*510/76); 97 | b = (colnum*255/76); 98 | if (g>255) g = 510-g; 99 | printf "\033[48;2;%d;%d;%dm", r,g,b; 100 | printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b; 101 | printf "%s\033[0m", substr(s,colnum+1,1); 102 | } 103 | printf "\n"; 104 | }' 105 | ``` 106 | ### Tmux 107 | You may need the same hack to make vim work well in tmux. Put these lines into your .vimrc: 108 | ```vim 109 | set t_8f=^[[38;2;%lu;%lu;%lum 110 | set t_8b=^[[48;2;%lu;%lu;%lum 111 | ``` 112 | The '^[' represent the escape char. You should press Ctrl-v + Esc to input actual escape. If the ^[ is two characters (^ and [), it's wrong. If it is one character, it's okay. When you delete the character with backspace, you will find that ^[ is deleted at once. Please also check 113 | :help c_CTRL-V (and :help i_CTRL-V). 114 | check [issue](https://github.com/vim/vim/issues/993#issuecomment-241676971) and [issue](https://github.com/vim/vim/issues/981#issuecomment-242893385) for more information. 115 | 116 | 117 | neovim works perfect without this config. If you encounter a color issue using tmux, make sure that: 118 | - you are using the latest version of tmux (v2.2) 119 | - your $TERM variable is set to "xterm-256color" 120 | - add the line below to your .tmux.conf file: 121 | 122 | ```tmux 123 | set-option -ga terminal-overrides ",xterm-256color:Tc" 124 | ``` 125 | 126 | See this [article](https://deductivelabs.com/blog/tech/using-true-color-vim-tmux/) for more details on tmux. 127 | -------------------------------------------------------------------------------- /colors/NeoSolarized.vim: -------------------------------------------------------------------------------- 1 | " Name: NeoSolarized: Colorscheme for truecolor vim 2 | " Author: iCyMind 3 | " URL: https://github.com/iCyMind/NeoSolarized 4 | " License: MIT 5 | " Modified: Wed Jun 12 18:41:42 PDT 2016 6 | 7 | " Usage "{{{ 8 | " 9 | " --------------------------------------------------------------------- 10 | " ABOUT: 11 | " --------------------------------------------------------------------- 12 | " Solarized is a carefully designed selective contrast colorscheme with dual 13 | " light and dark modes that runs in both GUI, 256 and 16 color modes. 14 | " 15 | " But the origin solarized does not support truecolor terminal. NeoSolarized 16 | " is a fixed colorscheme for neovim/vim which running in truecolor supported 17 | " terminal. 18 | " 19 | " --------------------------------------------------------------------- 20 | " OPTIONS: 21 | " --------------------------------------------------------------------- 22 | " Font styles: 23 | " g:neosolarized_bold 24 | " g:neosolarized_italic 25 | " g:neosolarized_underline 26 | " 27 | " Appearance: 28 | " g:neosolarized_contrast 29 | " g:neosolarized_diffmode 30 | " g:neosolarized_termBoldAsBright 31 | " g:neosolarized_termtrans 32 | " g:neosolarized_vertSplitBgTrans 33 | " g:neosolarized_visibility 34 | " 35 | " --------------------------------------------------------------------- 36 | " INSTALLATION: 37 | " --------------------------------------------------------------------- 38 | " move the NeoSolarized.vim to your VIMRUNTIME by manual or plugin manager 39 | " 40 | " MODIFY VIMRC: 41 | " 42 | " After either Option 1 or Option 2 above, put the following two lines in your 43 | " .vimrc: 44 | " 45 | " syntax enable 46 | " set background=dark 47 | " colorscheme NeoSolarized 48 | " 49 | " or, for the light background mode of Solarized: 50 | " 51 | " syntax enable 52 | " set background=light 53 | " colorscheme NeoSolarized 54 | " 55 | " I like to have a different background in GUI and terminal modes, so I can use 56 | " the following if-then. However, I find vim's background autodetection to be 57 | " pretty good and, at least with MacVim, I can leave this background value 58 | " assignment out entirely and get the same results. 59 | " 60 | " if has('gui_running') 61 | " set background=light 62 | " else 63 | " set background=dark 64 | " endif 65 | " 66 | " See the Solarized homepage at http://ethanschoonover.com/solarized for 67 | " screenshots which will help you select either the light or dark background. 68 | " 69 | " --------------------------------------------------------------------- 70 | " COLOR VALUES 71 | " --------------------------------------------------------------------- 72 | " Download palettes and files from: http://ethanschoonover.com/solarized 73 | " 74 | " L\*a\*b values are canonical (White D65, Reference D50), other values are 75 | " matched in sRGB space. 76 | " 77 | " SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB 78 | " --------- ------- ---- ------- ----------- ---------- ----------- ----------- 79 | " base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 80 | " base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 81 | " base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 82 | " base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 83 | " base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 84 | " base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 85 | " base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 86 | " base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 87 | " yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 88 | " orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 89 | " red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 90 | " magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 91 | " violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 92 | " blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 93 | " cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 94 | " green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 95 | " 96 | " --------------------------------------------------------------------- 97 | " COLORSCHEME HACKING 98 | " --------------------------------------------------------------------- 99 | " 100 | " Useful commands for testing colorschemes: 101 | " :source $VIMRUNTIME/syntax/hitest.vim 102 | " :help highlight-groups 103 | " :help cterm-colors 104 | " :help group-name 105 | " 106 | " Useful links for developing colorschemes: 107 | " http://www.vim.org/scripts/script.php?script_id=2937 108 | " http://vimcasts.org/episodes/creating-colorschemes-for-vim/ 109 | " http://www.frexx.de/xterm-256-notes/" 110 | " 111 | " }}} 112 | 113 | " Default option values"{{{ 114 | " --------------------------------------------------------------------- 115 | 116 | " Font styles: 117 | let g:neosolarized_bold = get(g:, "neosolarized_bold", 1) 118 | let g:neosolarized_italic = get(g:, "neosolarized_italic", 0) 119 | let g:neosolarized_underline = get(g:, "neosolarized_underline", 1) 120 | 121 | " Appearance: 122 | let g:neosolarized_contrast = get(g:, "neosolarized_contrast", "normal") 123 | let g:neosolarized_diffmode = get(g:, "neosolarized_diffmode", "normal") 124 | let g:neosolarized_termBoldAsBright = get(g:, "neosolarized_termBoldAsBright", 1) 125 | let g:neosolarized_termtrans = get(g:, "neosolarized_termtrans", 0) 126 | let g:neosolarized_visibility = get(g:, "neosolarized_visibility", "normal") 127 | let g:neosolarized_vertSplitBgTrans = get(g:, "neosolarized_vertSplitBgTrans", 1) 128 | 129 | "}}} 130 | 131 | " Colorscheme initialization "{{{ 132 | " --------------------------------------------------------------------- 133 | hi clear 134 | if exists("syntax_on") 135 | syntax reset 136 | endif 137 | let colors_name = "NeoSolarized" 138 | 139 | "}}} 140 | 141 | " GUI & CSApprox hexadecimal palettes"{{{ 142 | " --------------------------------------------------------------------- 143 | " 144 | " Set gui and terminal at the same time. 145 | let s:gui_mode = "gui" 146 | let s:gui_base03 = "#002b36" 147 | let s:gui_base02 = "#073642" 148 | let s:gui_base01 = "#586e75" 149 | let s:gui_base00 = "#657b83" 150 | let s:gui_base0 = "#839496" 151 | let s:gui_base1 = "#93a1a1" 152 | let s:gui_base2 = "#eee8d5" 153 | let s:gui_base3 = "#fdf6e3" 154 | let s:gui_yellow = "#b58900" 155 | let s:gui_orange = "#cb4b16" 156 | let s:gui_red = "#dc322f" 157 | let s:gui_magenta = "#d33682" 158 | let s:gui_violet = "#6c71c4" 159 | let s:gui_blue = "#268bd2" 160 | let s:gui_cyan = "#2aa198" 161 | let s:gui_green = "#719e07" "experimental 162 | "let s:green = "#859900" "original 163 | 164 | let s:term_mode = "cterm" 165 | let s:term_base03 = "8" 166 | let s:term_base02 = "0" 167 | let s:term_base01 = "10" 168 | let s:term_base00 = "11" 169 | let s:term_base0 = "12" 170 | let s:term_base1 = "14" 171 | let s:term_base2 = "7" 172 | let s:term_base3 = "15" 173 | let s:term_yellow = "3" 174 | let s:term_orange = "9" 175 | let s:term_red = "1" 176 | let s:term_magenta = "5" 177 | let s:term_violet = "13" 178 | let s:term_blue = "4" 179 | let s:term_cyan = "6" 180 | let s:term_green = "2" 181 | 182 | "}}} 183 | 184 | " Formatting options and null values for passthrough effect "{{{ 185 | " --------------------------------------------------------------------- 186 | let s:gui_none = "NONE" 187 | let s:term_none = "NONE" 188 | let s:n = "NONE" 189 | let s:c = ",undercurl" 190 | let s:r = ",reverse" 191 | let s:s = ",standout" 192 | let s:ou = "" 193 | let s:ob = "" 194 | "}}} 195 | 196 | " Background value based on termtrans setting "{{{ 197 | " --------------------------------------------------------------------- 198 | if (has("gui_running") || g:neosolarized_termtrans == 0) 199 | let s:gui_back = s:gui_base03 200 | let s:term_back = s:term_base03 201 | else 202 | let s:gui_back = "NONE" 203 | let s:term_back = "NONE" 204 | endif 205 | "}}} 206 | 207 | " Alternate light scheme "{{{ 208 | " --------------------------------------------------------------------- 209 | if &background == "light" 210 | " GUI 211 | let s:gui_temp03 = s:gui_base03 212 | let s:gui_temp02 = s:gui_base02 213 | let s:gui_temp01 = s:gui_base01 214 | let s:gui_temp00 = s:gui_base00 215 | let s:gui_base03 = s:gui_base3 216 | let s:gui_base02 = s:gui_base2 217 | let s:gui_base01 = s:gui_base1 218 | let s:gui_base00 = s:gui_base0 219 | let s:gui_base0 = s:gui_temp00 220 | let s:gui_base1 = s:gui_temp01 221 | let s:gui_base2 = s:gui_temp02 222 | let s:gui_base3 = s:gui_temp03 223 | if (s:gui_back != "NONE") 224 | let s:gui_back = s:gui_base03 225 | endif 226 | 227 | " terminal 228 | let s:term_temp03 = s:term_base03 229 | let s:term_temp02 = s:term_base02 230 | let s:term_temp01 = s:term_base01 231 | let s:term_temp00 = s:term_base00 232 | let s:term_base03 = s:term_base3 233 | let s:term_base02 = s:term_base2 234 | let s:term_base01 = s:term_base1 235 | let s:term_base00 = s:term_base0 236 | let s:term_base0 = s:term_temp00 237 | let s:term_base1 = s:term_temp01 238 | let s:term_base2 = s:term_temp02 239 | let s:term_base3 = s:term_temp03 240 | if (s:term_back != "NONE") 241 | let s:term_back = s:term_base03 242 | endif 243 | endif 244 | "}}} 245 | 246 | " Optional contrast schemes "{{{ 247 | " --------------------------------------------------------------------- 248 | if g:neosolarized_contrast == "high" 249 | let s:gui_base01 = s:gui_base00 250 | let s:gui_base00 = s:gui_base0 251 | let s:gui_base0 = s:gui_base1 252 | let s:gui_base1 = s:gui_base2 253 | let s:gui_base2 = s:gui_base3 254 | let s:gui_back = s:gui_back 255 | 256 | let s:term_base01 = s:term_base00 257 | let s:term_base00 = s:term_base0 258 | let s:term_base0 = s:term_base1 259 | let s:term_base1 = s:term_base2 260 | let s:term_base2 = s:term_base3 261 | let s:term_back = s:term_back 262 | endif 263 | if g:neosolarized_contrast == "low" 264 | let s:gui_back = s:gui_base02 265 | let s:term_back = s:term_base02 266 | let s:ou = ",underline" 267 | endif 268 | "}}} 269 | 270 | " Overrides dependent on user specified values and environment "{{{ 271 | " --------------------------------------------------------------------- 272 | if (g:neosolarized_bold == 0 || &t_Co == 8 ) 273 | let s:b = "" 274 | let s:bb = ",bold" 275 | else 276 | let s:b = ",bold" 277 | let s:bb = "" 278 | endif 279 | 280 | if g:neosolarized_underline == 0 281 | let s:u = "" 282 | else 283 | let s:u = ",underline" 284 | endif 285 | 286 | if g:neosolarized_italic == 0 287 | let s:i = "" 288 | else 289 | let s:i = ",italic" 290 | endif 291 | "}}} 292 | 293 | " Highlighting primitives"{{{ 294 | " --------------------------------------------------------------------- 295 | 296 | exe "let s:bg_none = ' " . "guibg=".s:gui_none . " ctermbg=".s:term_none . "'" 297 | exe "let s:bg_back = ' " . "guibg=".s:gui_back . " ctermbg=".s:term_back . "'" 298 | exe "let s:bg_base03 = ' " . "guibg=".s:gui_base03 . " ctermbg=".s:term_base03 . "'" 299 | exe "let s:bg_base02 = ' " . "guibg=".s:gui_base02 . " ctermbg=".s:term_base02 . "'" 300 | exe "let s:bg_base01 = ' " . "guibg=".s:gui_base01 . " ctermbg=".s:term_base01 . "'" 301 | exe "let s:bg_base00 = ' " . "guibg=".s:gui_base00 . " ctermbg=".s:term_base00 . "'" 302 | exe "let s:bg_base0 = ' " . "guibg=".s:gui_base0 . " ctermbg=".s:term_base0 . "'" 303 | exe "let s:bg_base1 = ' " . "guibg=".s:gui_base1 . " ctermbg=".s:term_base1 . "'" 304 | exe "let s:bg_base2 = ' " . "guibg=".s:gui_base2 . " ctermbg=".s:term_base2 . "'" 305 | exe "let s:bg_base3 = ' " . "guibg=".s:gui_base3 . " ctermbg=".s:term_base3 . "'" 306 | exe "let s:bg_green = ' " . "guibg=".s:gui_green . " ctermbg=".s:term_green . "'" 307 | exe "let s:bg_yellow = ' " . "guibg=".s:gui_yellow . " ctermbg=".s:term_yellow . "'" 308 | exe "let s:bg_orange = ' " . "guibg=".s:gui_orange . " ctermbg=".s:term_orange . "'" 309 | exe "let s:bg_red = ' " . "guibg=".s:gui_red . " ctermbg=".s:term_red . "'" 310 | exe "let s:bg_magenta = ' " . "guibg=".s:gui_magenta . " ctermbg=".s:term_magenta . "'" 311 | exe "let s:bg_violet = ' " . "guibg=".s:gui_violet . " ctermbg=".s:term_violet . "'" 312 | exe "let s:bg_blue = ' " . "guibg=".s:gui_blue . " ctermbg=".s:term_blue . "'" 313 | exe "let s:bg_cyan = ' " . "guibg=".s:gui_cyan . " ctermbg=".s:term_cyan . "'" 314 | 315 | exe "let s:fg_none = ' " . "guifg=".s:gui_none . " ctermfg=".s:term_none . "'" 316 | exe "let s:fg_back = ' " . "guifg=".s:gui_back . " ctermfg=".s:term_back . "'" 317 | exe "let s:fg_base03 = ' " . "guifg=".s:gui_base03 . " ctermfg=".s:term_base03 . "'" 318 | exe "let s:fg_base02 = ' " . "guifg=".s:gui_base02 . " ctermfg=".s:term_base02 . "'" 319 | exe "let s:fg_base01 = ' " . "guifg=".s:gui_base01 . " ctermfg=".s:term_base01 . "'" 320 | exe "let s:fg_base00 = ' " . "guifg=".s:gui_base00 . " ctermfg=".s:term_base00 . "'" 321 | exe "let s:fg_base0 = ' " . "guifg=".s:gui_base0 . " ctermfg=".s:term_base0 . "'" 322 | exe "let s:fg_base1 = ' " . "guifg=".s:gui_base1 . " ctermfg=".s:term_base1 . "'" 323 | exe "let s:fg_base2 = ' " . "guifg=".s:gui_base2 . " ctermfg=".s:term_base2 . "'" 324 | exe "let s:fg_base3 = ' " . "guifg=".s:gui_base3 . " ctermfg=".s:term_base3 . "'" 325 | exe "let s:fg_green = ' " . "guifg=".s:gui_green . " ctermfg=".s:term_green . "'" 326 | exe "let s:fg_yellow = ' " . "guifg=".s:gui_yellow . " ctermfg=".s:term_yellow . "'" 327 | exe "let s:fg_orange = ' " . "guifg=".s:gui_orange . " ctermfg=".s:term_orange . "'" 328 | exe "let s:fg_red = ' " . "guifg=".s:gui_red . " ctermfg=".s:term_red . "'" 329 | exe "let s:fg_magenta = ' " . "guifg=".s:gui_magenta . " ctermfg=".s:term_magenta . "'" 330 | exe "let s:fg_violet = ' " . "guifg=".s:gui_violet . " ctermfg=".s:term_violet . "'" 331 | exe "let s:fg_blue = ' " . "guifg=".s:gui_blue . " ctermfg=".s:term_blue . "'" 332 | exe "let s:fg_cyan = ' " . "guifg=".s:gui_cyan . " ctermfg=".s:term_cyan . "'" 333 | 334 | exe "let s:fmt_none = ' " . "gui=NONE" . " cterm=NONE" . "'" 335 | exe "let s:fmt_bold = ' " . "gui=NONE".s:b . " cterm=NONE".s:b . "'" 336 | exe "let s:fmt_bldi = ' " . "gui=NONE".s:b . " cterm=NONE".s:b . "'" 337 | exe "let s:fmt_undr = ' " . "gui=NONE".s:u . " cterm=NONE".s:u . "'" 338 | exe "let s:fmt_undb = ' " . "gui=NONE".s:u.s:b . " cterm=NONE".s:u.s:b . "'" 339 | exe "let s:fmt_undi = ' " . "gui=NONE".s:u . " cterm=NONE".s:u . "'" 340 | exe "let s:fmt_uopt = ' " . "gui=NONE".s:ou . " cterm=NONE".s:ou . "'" 341 | exe "let s:fmt_curl = ' " . "gui=NONE".s:c . " cterm=NONE".s:c . "'" 342 | exe "let s:fmt_ital = ' " . "gui=NONE".s:i . " cterm=NONE".s:i . "'" 343 | exe "let s:fmt_stnd = ' " . "gui=NONE".s:s . " cterm=NONE".s:s . "'" 344 | exe "let s:fmt_revr = ' " . "gui=NONE".s:r . " cterm=NONE".s:r . "'" 345 | exe "let s:fmt_revb = ' " . "gui=NONE".s:r.s:b . " cterm=NONE".s:r.s:b . "'" 346 | " revbb (reverse bold for bright colors) is only set to actual bold in low 347 | " color terminals (t_co=8, such as OS X Terminal.app) and should only be used 348 | " with colors 8-15. 349 | exe "let s:fmt_revbb = ' " . "gui=NONE".s:r.s:bb . " cterm=NONE".s:r.s:bb . "'" 350 | exe "let s:fmt_revbbu = ' " . "gui=NONE".s:r.s:bb.s:u . " cterm=NONE".s:r.s:bb.s:u . "'" 351 | 352 | if has("gui_running") || has("termguicolors") && &termguicolors 353 | exe "let s:sp_none = ' guisp=" . s:gui_none . "'" 354 | exe "let s:sp_back = ' guisp=" . s:gui_back . "'" 355 | exe "let s:sp_base03 = ' guisp=" . s:gui_base03 . "'" 356 | exe "let s:sp_base02 = ' guisp=" . s:gui_base02 . "'" 357 | exe "let s:sp_base01 = ' guisp=" . s:gui_base01 . "'" 358 | exe "let s:sp_base00 = ' guisp=" . s:gui_base00 . "'" 359 | exe "let s:sp_base0 = ' guisp=" . s:gui_base0 . "'" 360 | exe "let s:sp_base1 = ' guisp=" . s:gui_base1 . "'" 361 | exe "let s:sp_base2 = ' guisp=" . s:gui_base2 . "'" 362 | exe "let s:sp_base3 = ' guisp=" . s:gui_base3 . "'" 363 | exe "let s:sp_green = ' guisp=" . s:gui_green . "'" 364 | exe "let s:sp_yellow = ' guisp=" . s:gui_yellow . "'" 365 | exe "let s:sp_orange = ' guisp=" . s:gui_orange . "'" 366 | exe "let s:sp_red = ' guisp=" . s:gui_red . "'" 367 | exe "let s:sp_magenta = ' guisp=" . s:gui_magenta . "'" 368 | exe "let s:sp_violet = ' guisp=" . s:gui_violet . "'" 369 | exe "let s:sp_blue = ' guisp=" . s:gui_blue . "'" 370 | exe "let s:sp_cyan = ' guisp=" . s:gui_cyan . "'" 371 | else 372 | let s:sp_none = "" 373 | let s:sp_back = "" 374 | let s:sp_base03 = "" 375 | let s:sp_base02 = "" 376 | let s:sp_base01 = "" 377 | let s:sp_base00 = "" 378 | let s:sp_base0 = "" 379 | let s:sp_base1 = "" 380 | let s:sp_base2 = "" 381 | let s:sp_base3 = "" 382 | let s:sp_green = "" 383 | let s:sp_yellow = "" 384 | let s:sp_orange = "" 385 | let s:sp_red = "" 386 | let s:sp_magenta = "" 387 | let s:sp_violet = "" 388 | let s:sp_blue = "" 389 | let s:sp_cyan = "" 390 | endif 391 | 392 | "}}} 393 | 394 | " Basic highlighting"{{{ 395 | " --------------------------------------------------------------------- 396 | " note that link syntax to avoid duplicate configuration doesn't work with the 397 | " exe compiled formats 398 | 399 | exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back 400 | 401 | exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none 402 | " *Comment any comment 403 | 404 | exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none 405 | " *Constant any constant 406 | " String a string constant: "this is a string" 407 | " Character a character constant: 'c', '\n' 408 | " Number a number constant: 234, 0xff 409 | " Boolean a boolean constant: TRUE, false 410 | " Float a floating point constant: 2.3e10 411 | 412 | exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none 413 | " *Identifier any variable name 414 | " Function function name (also: methods for classes) 415 | " 416 | exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none 417 | " *Statement any statement 418 | " Conditional if, then, else, endif, switch, etc. 419 | " Repeat for, do, while, etc. 420 | " Label case, default, etc. 421 | " Operator "sizeof", "+", "*", etc. 422 | " Keyword any other keyword 423 | " Exception try, catch, throw 424 | 425 | exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none 426 | " *PreProc generic Preprocessor 427 | " Include preprocessor #include 428 | " Define preprocessor #define 429 | " Macro same as Define 430 | " PreCondit preprocessor #if, #else, #endif, etc. 431 | 432 | exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none 433 | " *Type int, long, char, etc. 434 | " StorageClass static, register, volatile, etc. 435 | " Structure struct, union, enum, etc. 436 | " Typedef A typedef 437 | 438 | exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none 439 | " *Special any special symbol 440 | " SpecialChar special character in a constant 441 | " Tag you can use CTRL-] on this 442 | " Delimiter character that needs attention 443 | " SpecialComment special things inside a comment 444 | " Debug debugging statements 445 | 446 | exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none 447 | " *Underlined text that stands out, HTML links 448 | 449 | exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none 450 | " *Ignore left blank, hidden |hl-Ignore| 451 | 452 | exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none 453 | " *Error any erroneous construct 454 | 455 | exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none 456 | " *Todo anything that needs extra attention; mostly the 457 | " keywords TODO FIXME and XXX 458 | " 459 | "}}} 460 | 461 | " Extended highlighting "{{{ 462 | " --------------------------------------------------------------------- 463 | if (g:neosolarized_visibility=="high") 464 | exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none 465 | exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none 466 | elseif (g:neosolarized_visibility=="low") 467 | exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none 468 | exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none 469 | else 470 | exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 471 | exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none 472 | endif 473 | exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb 474 | exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb 475 | exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb 476 | exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none 477 | exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none 478 | exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none 479 | exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none 480 | exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none 481 | exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none 482 | exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 483 | exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none 484 | if (g:neosolarized_vertSplitBgTrans == 1) 485 | exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_none 486 | else 487 | exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 488 | endif 489 | exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none 490 | exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb 491 | exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none 492 | exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb 493 | exe "hi! Folded" .s:fmt_bold .s:fg_base0 .s:bg_base02 .s:sp_base03 494 | exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 495 | 496 | if (g:neosolarized_diffmode=="high") 497 | exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none 498 | exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none 499 | exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none 500 | exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none 501 | elseif (g:neosolarized_diffmode=="low") 502 | exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green 503 | exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow 504 | exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none 505 | exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue 506 | else " normal 507 | exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green 508 | exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow 509 | exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 510 | exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue 511 | endif 512 | 513 | exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_none 514 | exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none 515 | exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red 516 | exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet 517 | exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan 518 | exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow 519 | exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb 520 | exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb 521 | exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb 522 | exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb 523 | exe "hi! TabLine" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:sp_base0 524 | exe "hi! TabLineFill" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:sp_base0 525 | exe "hi! TabLineSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revr 526 | exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 527 | exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 528 | exe "hi! CursorLineNr" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 529 | exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 530 | exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 531 | hi! link lCursor Cursor 532 | exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 533 | 534 | "}}} 535 | 536 | " vim syntax highlighting "{{{ 537 | " --------------------------------------------------------------------- 538 | "exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital 539 | "hi! link vimComment Comment 540 | "hi! link vimLineComment Comment 541 | hi! link vimVar Identifier 542 | hi! link vimFunc Function 543 | hi! link vimUserFunc Function 544 | hi! link helpSpecial Special 545 | hi! link vimSet Normal 546 | hi! link vimSetEqual Normal 547 | exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none 548 | exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none 549 | exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none 550 | exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none 551 | exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none 552 | exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none 553 | exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none 554 | exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none 555 | exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none 556 | exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none 557 | exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none 558 | exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none 559 | exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none 560 | exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none 561 | exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none 562 | "}}} 563 | 564 | " diff highlighting "{{{ 565 | " --------------------------------------------------------------------- 566 | hi! link diffAdded Statement 567 | hi! link diffLine Identifier 568 | "}}} 569 | 570 | " git & gitcommit highlighting "{{{ 571 | "git 572 | "exe "hi! gitDateHeader" 573 | "exe "hi! gitIdentityHeader" 574 | "exe "hi! gitIdentityKeyword" 575 | "exe "hi! gitNotesHeader" 576 | "exe "hi! gitReflogHeader" 577 | "exe "hi! gitKeyword" 578 | "exe "hi! gitIdentity" 579 | "exe "hi! gitEmailDelimiter" 580 | "exe "hi! gitEmail" 581 | "exe "hi! gitDate" 582 | "exe "hi! gitMode" 583 | "exe "hi! gitHashAbbrev" 584 | "exe "hi! gitHash" 585 | "exe "hi! gitReflogMiddle" 586 | "exe "hi! gitReference" 587 | "exe "hi! gitStage" 588 | "exe "hi! gitType" 589 | "exe "hi! gitDiffAdded" 590 | "exe "hi! gitDiffRemoved" 591 | "gitcommit 592 | "exe "hi! gitcommitSummary" 593 | exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none 594 | hi! link gitcommitUntracked gitcommitComment 595 | hi! link gitcommitDiscarded gitcommitComment 596 | hi! link gitcommitSelected gitcommitComment 597 | exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none 598 | exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none 599 | exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none 600 | hi! link gitcommitNoBranch gitcommitBranch 601 | exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none 602 | exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none 603 | "exe "hi! gitcommitUnmergedType" 604 | "exe "hi! gitcommitType" 605 | "exe "hi! gitcommitNoChanges" 606 | "exe "hi! gitcommitHeader" 607 | exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none 608 | exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none 609 | exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none 610 | exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none 611 | exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none 612 | exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none 613 | hi! link gitcommitDiscardedArrow gitcommitDiscardedFile 614 | hi! link gitcommitSelectedArrow gitcommitSelectedFile 615 | hi! link gitcommitUnmergedArrow gitcommitUnmergedFile 616 | "exe "hi! gitcommitArrow" 617 | "exe "hi! gitcommitOverflow" 618 | "exe "hi! gitcommitBlank" 619 | " }}} 620 | " 621 | " html highlighting "{{{ 622 | " --------------------------------------------------------------------- 623 | exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none 624 | exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none 625 | exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none 626 | exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none 627 | exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none 628 | exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none 629 | exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none 630 | "}}} 631 | 632 | " perl highlighting "{{{ 633 | " --------------------------------------------------------------------- 634 | exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none 635 | exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none 636 | exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none 637 | 638 | "}}} 639 | 640 | " tex highlighting "{{{ 641 | " --------------------------------------------------------------------- 642 | exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none 643 | exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none 644 | exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none 645 | exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none 646 | exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none 647 | "}}} 648 | 649 | " ruby highlighting "{{{ 650 | " --------------------------------------------------------------------- 651 | exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold 652 | "rubyInclude 653 | "rubySharpBang 654 | "rubyAccess 655 | "rubyPredefinedVariable 656 | "rubyBoolean 657 | "rubyClassVariable 658 | "rubyBeginEnd 659 | "rubyRepeatModifier 660 | "hi! link rubyArrayDelimiter Special " [ , , ] 661 | "rubyCurlyBlock { , , } 662 | 663 | "hi! link rubyClass Keyword 664 | "hi! link rubyModule Keyword 665 | "hi! link rubyKeyword Keyword 666 | "hi! link rubyOperator Operator 667 | "hi! link rubyIdentifier Identifier 668 | "hi! link rubyInstanceVariable Identifier 669 | "hi! link rubyGlobalVariable Identifier 670 | "hi! link rubyClassVariable Identifier 671 | "hi! link rubyConstant Type 672 | "}}} 673 | 674 | " haskell syntax highlighting"{{{ 675 | " --------------------------------------------------------------------- 676 | " For use with syntax/haskell.vim : Haskell Syntax File 677 | " http://www.vim.org/scripts/script.php?script_id=3034 678 | " See also Steffen Siering's github repository: 679 | " http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim 680 | " --------------------------------------------------------------------- 681 | " 682 | " Treat True and False specially, see the plugin referenced above 683 | let hs_highlight_boolean=1 684 | " highlight delims, see the plugin referenced above 685 | let hs_highlight_delimiters=1 686 | 687 | exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none 688 | 689 | exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none 690 | exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none 691 | exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none 692 | exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none 693 | 694 | exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none 695 | exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none 696 | exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none 697 | exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none 698 | exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none 699 | exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none 700 | exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none 701 | exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none 702 | exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none 703 | exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr 704 | exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none 705 | hi! link hsImportParams Delimiter 706 | hi! link hsDelimTypeExport Delimiter 707 | hi! link hsModuleStartLabel hsStructure 708 | hi! link hsModuleWhereLabel hsModuleStartLabel 709 | 710 | " following is for the haskell-conceal plugin 711 | " the first two items don't have an impact, but better safe 712 | exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none 713 | exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none 714 | 715 | "}}} 716 | 717 | " pandoc markdown syntax highlighting "{{{ 718 | " --------------------------------------------------------------------- 719 | 720 | "PandocHiLink pandocNormalBlock 721 | exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none 722 | exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold 723 | exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold 724 | exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital 725 | exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none 726 | hi! link pandocVerbatimBlockDeep pandocVerbatimBlock 727 | hi! link pandocCodeBlock pandocVerbatimBlock 728 | hi! link pandocCodeBlockDelim pandocVerbatimBlock 729 | exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none 730 | exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none 731 | exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none 732 | exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none 733 | exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none 734 | exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none 735 | exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none 736 | exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none 737 | exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr 738 | 739 | " Definitions 740 | " --------------------------------------------------------------------- 741 | let s:fg_pdef = s:fg_violet 742 | exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none 743 | exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd 744 | exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold 745 | exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital 746 | exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi 747 | exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold 748 | exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi 749 | exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi 750 | exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr 751 | exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none 752 | exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none 753 | exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none 754 | 755 | " Tables 756 | " --------------------------------------------------------------------- 757 | let s:fg_ptable = s:fg_blue 758 | exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none 759 | exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none 760 | hi! link pandocTableStructureTop pandocTableStructre 761 | hi! link pandocTableStructureEnd pandocTableStructre 762 | exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none 763 | exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none 764 | exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital 765 | exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi 766 | exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold 767 | exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi 768 | exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi 769 | exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr 770 | exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none 771 | exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none 772 | exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none 773 | 774 | " Headings 775 | " --------------------------------------------------------------------- 776 | let s:fg_phead = s:fg_orange 777 | exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold 778 | exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold 779 | exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi 780 | exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi 781 | exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold 782 | exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi 783 | exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi 784 | exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr 785 | exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold 786 | exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold 787 | exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold 788 | 789 | " Links 790 | " --------------------------------------------------------------------- 791 | exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none 792 | exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr 793 | exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb 794 | exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr 795 | exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi 796 | exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 797 | exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 798 | exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold 799 | exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb 800 | exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr 801 | exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold 802 | exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb 803 | exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none 804 | exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none 805 | exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none 806 | exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr 807 | exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none 808 | 809 | " Main Styles 810 | " --------------------------------------------------------------------- 811 | exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none 812 | exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital 813 | exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi 814 | exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold 815 | exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi 816 | exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi 817 | exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr 818 | exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none 819 | exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none 820 | exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none 821 | 822 | exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold 823 | exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold 824 | exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold 825 | exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none 826 | exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr 827 | hi! link pandocEscapedCharacter pandocEscapePair 828 | hi! link pandocLineBreak pandocEscapePair 829 | 830 | " Embedded Code 831 | " --------------------------------------------------------------------- 832 | exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none 833 | exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none 834 | exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none 835 | exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold 836 | hi! link pandocMetadataTitle pandocMetadata 837 | 838 | "}}} 839 | 840 | " neomake highlighting "{{{ 841 | " --------------------------------------------------------------------- 842 | exe "hi! NeomakeErrorSign" . s:fg_orange .s:bg_none .s:fmt_none 843 | exe "hi! NeomakeWarningSign" . s:fg_yellow .s:bg_none .s:fmt_none 844 | exe "hi! NeomakeMessageSign" . s:fg_cyan .s:bg_none .s:fmt_none 845 | exe "hi! NeomakeNeomakeInfoSign" . s:fg_green .s:bg_none .s:fmt_none 846 | 847 | "}}} 848 | 849 | " gitgutter highlighting "{{{ 850 | " --------------------------------------------------------------------- 851 | exe "hi! GitGutterAdd" . s:fg_green .s:bg_none .s:fmt_none 852 | exe "hi! GitGutterChange" . s:fg_yellow .s:bg_none .s:fmt_none 853 | exe "hi! GitGutterDelete" . s:fg_red .s:bg_none .s:fmt_none 854 | exe "hi! GitGutterChangeDelete" . s:fg_red .s:bg_none .s:fmt_none 855 | " }}}" 856 | 857 | " signify highlighting "{{{ 858 | " --------------------------------------------------------------------- 859 | exe "hi! SignifySignAdd" . s:fg_green .s:bg_none .s:fmt_none 860 | exe "hi! SignifySignChange" . s:fg_yellow .s:bg_none .s:fmt_none 861 | exe "hi! SignifySignDelete" . s:fg_red .s:bg_none .s:fmt_none 862 | exe "hi! SignifySignChangeDelete" . s:fg_red .s:bg_none .s:fmt_none 863 | " }}}" 864 | 865 | " ALE highlighting "{{{ 866 | " --------------------------------------------------------------------- 867 | exe "hi! ALEErrorSign" . s:fg_orange .s:bg_none .s:fmt_none 868 | exe "hi! ALEWarningSign" . s:fg_yellow .s:bg_none .s:fmt_none 869 | " }}}" 870 | 871 | " NeoVim terminal buffer colours "{{{ 872 | " --------------------------------------------------------------------- 873 | let g:terminal_color_0 = s:gui_base03 874 | let g:terminal_color_1 = s:gui_red 875 | let g:terminal_color_2 = s:gui_green 876 | let g:terminal_color_3 = s:gui_yellow 877 | let g:terminal_color_4 = s:gui_blue 878 | let g:terminal_color_5 = s:gui_magenta 879 | let g:terminal_color_6 = s:gui_cyan 880 | let g:terminal_color_7 = s:gui_base2 881 | 882 | if g:neosolarized_termBoldAsBright == 1 883 | let g:terminal_color_8 = s:gui_base02 884 | let g:terminal_color_9 = s:gui_orange 885 | let g:terminal_color_10 = s:gui_base01 886 | let g:terminal_color_11 = s:gui_base00 887 | let g:terminal_color_12 = s:gui_base0 888 | let g:terminal_color_13 = s:gui_violet 889 | let g:terminal_color_14 = s:gui_base1 890 | let g:terminal_color_15 = s:gui_base3 891 | else 892 | let g:terminal_color_8 = g:terminal_color_0 893 | let g:terminal_color_9 = g:terminal_color_1 894 | let g:terminal_color_10 = g:terminal_color_2 895 | let g:terminal_color_11 = g:terminal_color_3 896 | let g:terminal_color_12 = g:terminal_color_4 897 | let g:terminal_color_13 = g:terminal_color_5 898 | let g:terminal_color_14 = g:terminal_color_6 899 | let g:terminal_color_15 = g:terminal_color_7 900 | endif 901 | "}}} 902 | 903 | " Utility autocommand "{{{ 904 | " --------------------------------------------------------------------- 905 | " In cases where Solarized is initialized inside a terminal vim session and 906 | " then transferred to a gui session via the command `:gui`, the gui vim process 907 | " does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` 908 | " related code that sets gui specific values isn't executed. 909 | " 910 | " Currently, Solarized sets only the cterm or gui values for the colorscheme 911 | " depending on gui or terminal mode. It's possible that, if the following 912 | " autocommand method is deemed excessively poor form, that approach will be 913 | " used again and the autocommand below will be dropped. 914 | " 915 | " However it seems relatively benign in this case to include the autocommand 916 | " here. It fires only in cases where vim is transferring from terminal to gui 917 | " mode (detected with the script scope s:vmode variable). It also allows for 918 | " other potential terminal customizations that might make gui mode suboptimal. 919 | " 920 | autocmd GUIEnter * if (has('gui_running')) | exe "colorscheme " . g:colors_name | endif 921 | "}}} 922 | 923 | " License "{{{ 924 | " --------------------------------------------------------------------- 925 | " 926 | " Copyright (c) 2011 Ethan Schoonover 927 | " Copyright (c) 2016 iCyMind 928 | " 929 | " Permission is hereby granted, free of charge, to any person obtaining a copy 930 | " of this software and associated documentation files (the "Software"), to deal 931 | " in the Software without restriction, including without limitation the rights 932 | " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 933 | " copies of the Software, and to permit persons to whom the Software is 934 | " furnished to do so, subject to the following conditions: 935 | " 936 | " The above copyright notice and this permission notice shall be included in 937 | " all copies or substantial portions of the Software. 938 | " 939 | " THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 940 | " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 941 | " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 942 | " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 943 | " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 944 | " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 945 | " THE SOFTWARE. 946 | " 947 | " vim: set foldmethod=marker foldlevel=0: 948 | "}}} 949 | --------------------------------------------------------------------------------