├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── LICENSE ├── README.md ├── autoload └── airline │ └── themes │ └── afterglow.vim └── colors └── afterglow.vim /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. iOS] 25 | - Browser [e.g. chrome, safari] 26 | - Version [e.g. 22] 27 | 28 | **Smartphone (please complete the following information):** 29 | - Device: [e.g. iPhone6] 30 | - OS: [e.g. iOS8.1] 31 | - Browser [e.g. stock browser, safari] 32 | - Version [e.g. 22] 33 | 34 | **Additional context** 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Danilo Augusto dos S. R. de Faria 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vim-afterglow 2 | 3 | Vim adaptation of the famous [Afterglow](https://github.com/YabataDesign/afterglow-theme) theme from Sublime Text 2/3. 4 | 5 | _If you like this project, feel free to pay me a cup of coffee!_ 😊 ☕️ ❤️ 👉     [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate/?hosted_button_id=RSFWP4VNLYF6Y) 6 | 7 | ## Features 8 | 9 | 🚀 **Modern** and nicely integrated with plugins and environments. 10 | 11 | 🔋 **Batteries included** so that you can concentrate on **what matters most: your code**. 12 | - Built-in airline scheme ✈️ 13 | - No bad surprises: works for both Vim and Neovim, terminal and GUI. 14 | - Highlighted important keywords in reddish and bold inside comments: `TODO`, `FIXME`, `XXX`... 15 | - No more "it looks flat/terrible on this language": includes customized highlighting for many popular languages 16 | - Java 17 | - Python 18 | - C 19 | - Lua 20 | - Go 21 | - Clojure 22 | - Scala 23 | - PHP 24 | - and many others... 25 | 26 | 🎨 **Easy on the eyes** 27 | 28 | Click on the image below to view it in the original size (more screenshots below) 29 | 30 |
31 | 32 | python1 33 | 34 |
35 | 36 | ## Setup 37 | 38 | To enable it, simply add `colorscheme afterglow` (not ~~vim-afterglow~~) to your `~/.vimrc` after having installed the plugin (manually or by using a package manager). 39 | 40 | > Airline theme should be updated accordingly, but can be explicitly specified by using `let g:airline_theme='afterglow'`. 41 | 42 | ## Options 43 | 44 | To further customize Afterglow, you can use the following options **before** setting the color scheme on your 45 | `vimrc` (or `init.vim` if using NeoVim): 46 | 47 | - Blackout: `let g:afterglow_blackout=1 (default: 0)` 48 | 49 | ☀️ Use this option if you need more contrast, such as when working in an office where open windows are just behind you, causing glare on your screen. 50 | 51 | > This option has no effect if `g:afterglow_inherit_background` is also set. 52 | 53 | - Italicize comments: `let g:afterglow_italic_comments=1 (default: 0)` 54 | 55 | 📖 Helps visual grepping and quickly differentiating source code and comments when skimming through files. 56 | 57 | > If using a terminal emulator (iTerm, Alacritty, Terminator...), check if it correctly supports italics. Evidently your chosen font type should have an italics variety too. In case of problems please check these two common scenarios before opening an issue concerning *italics*. 58 | 59 | - If you want to disable italics completely (for example if your emulator renders it with background highlight): `let g:afterglow_use_italics=0 (default: 1)` 60 | 61 | - Inherit background: `let g:afterglow_inherit_background=1 (default: 0)` 62 | 63 | Use this option if you want the background color to play nicely with the program (e.g. gVim, iTerm etc.) in which vim is used. It may be useful when instantiating vim inside Tmux. 64 | 65 | ## Screenshots 66 | 67 |
68 |

Python

69 | python2 70 |
71 | 72 |
73 |

Ruby

74 | ruby 75 |
76 | 77 |
78 |

HTML

79 | html 80 |
81 | 82 |
83 |

LaTeX

84 | latex 85 |
86 | -------------------------------------------------------------------------------- /autoload/airline/themes/afterglow.vim: -------------------------------------------------------------------------------- 1 | " Author: Danilo Augusto 2 | " Script: Afterglow (vim-airline version) 3 | " License: MIT 4 | " Date: 2017-02-27 5 | 6 | let s:gui00 = "#1e1e1e" " ANSI Black 7 | let s:gui01 = "#b05279" " ANSI Red 8 | let s:gui02 = "#b4c973" " ANSI Green 9 | let s:gui03 = "#e5b567" " ANSI Yellow 10 | let s:gui04 = "#6c99bb" " ANSI Blue 11 | let s:gui05 = "#b05279" " ANSI Magenta 12 | let s:gui06 = "#9e86c8" " ANSI Cyan 13 | let s:gui07 = "#d6d6d6" " ANSI White 14 | let s:gui08 = "#87875f" 15 | let s:gui09 = "#af1600" 16 | let s:gui0A = "#af875f" 17 | let s:gui0B = "#878787" 18 | let s:gui0C = "#af5f00" 19 | let s:gui0D = "#5f5f87" 20 | let s:gui0E = "#afd7d7" 21 | let s:gui0F = "#dfdfaf" 22 | 23 | let s:cterm00 = "234" 24 | let s:cterm01 = "91" 25 | let s:cterm02 = "180" 26 | let s:cterm03 = "179" 27 | let s:cterm04 = "67" 28 | let s:cterm05 = "132" 29 | let s:cterm06 = "109" 30 | let s:cterm07 = "252" 31 | let s:cterm08 = "101" 32 | let s:cterm09 = "138" 33 | let s:cterm0A = "180" 34 | let s:cterm0B = "102" 35 | let s:cterm0C = "130" 36 | let s:cterm0D = "60" 37 | let s:cterm0E = "152" 38 | let s:cterm0F = "187" 39 | 40 | let s:guiWhite = "#ffffff" 41 | let s:guiGray = "#666666" 42 | let s:guiDarkGray = "#545454" 43 | let s:ctermWhite = "231" 44 | let s:ctermGray = "243" 45 | let s:ctermDarkGray = "240" 46 | 47 | " Depends on g:afterglow_blackout 48 | if !exists( "g:afterglow_blackout") 49 | let g:afterglow_blackout = 0 50 | endif 51 | if g:afterglow_blackout 52 | let s:guiAlmostBlack = "#121212" 53 | let s:ctermAlmostBlack = "233" 54 | else 55 | let s:guiAlmostBlack = "#2a2a2a" 56 | let s:ctermAlmostBlack = "235" 57 | endif 58 | 59 | let g:airline#themes#afterglow#palette = {} 60 | let s:modified = { 'airline_c': [s:gui03, '', s:cterm03, '', ''] } 61 | 62 | " Normal mode 63 | let s:N1 = [s:gui07, s:gui0D, s:cterm07, s:cterm0D] 64 | let s:N2 = [s:guiWhite, s:gui04, s:ctermWhite, s:cterm04] 65 | let s:N3 = [s:gui04, s:guiAlmostBlack, s:cterm04, s:ctermAlmostBlack] 66 | let g:airline#themes#afterglow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) 67 | let g:airline#themes#afterglow#palette.normal_modified = s:modified 68 | 69 | " Insert mode 70 | let s:I1 = [s:guiWhite, s:gui0B, s:ctermWhite, s:cterm0B] 71 | let s:I2 = s:N2 72 | let s:I3 = [s:guiWhite, s:gui0D, s:ctermWhite, s:cterm0D] 73 | let g:airline#themes#afterglow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) 74 | let g:airline#themes#afterglow#palette.insert_modified = s:modified 75 | 76 | " Visual mode 77 | let s:V1 = [s:guiWhite, s:gui05, s:ctermWhite, s:cterm05] 78 | let s:V2 = s:N2 79 | let s:V3 = s:I3 80 | let g:airline#themes#afterglow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) 81 | let g:airline#themes#afterglow#palette.visual_modified = s:modified 82 | 83 | " Replace mode 84 | let s:R1 = [s:gui08, s:gui00, s:cterm08, s:cterm00] 85 | let s:R2 = s:N2 86 | let s:R3 = [s:guiWhite, s:gui05, s:ctermWhite, s:cterm05] 87 | let g:airline#themes#afterglow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) 88 | let g:airline#themes#afterglow#palette.replace_modified = s:modified 89 | 90 | " Inactive mode 91 | let s:IN1 = [s:guiGray, s:guiAlmostBlack, s:ctermGray, s:ctermAlmostBlack] 92 | let s:IN2 = [s:guiGray, s:guiAlmostBlack, s:ctermGray, s:ctermAlmostBlack] 93 | let s:IN3 = [s:guiGray, s:guiAlmostBlack, s:ctermGray, s:ctermAlmostBlack] 94 | let g:airline#themes#afterglow#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) 95 | let g:airline#themes#afterglow#palette.inactive_modified = s:modified 96 | 97 | " CtrlP 98 | if !get(g:, 'loaded_ctrlp', 0) 99 | finish 100 | endif 101 | 102 | let s:CP1 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] 103 | let s:CP2 = [s:guiWhite, s:gui03, s:ctermWhite, s:cterm01] 104 | let s:CP3 = [s:guiWhite, s:gui0D, s:ctermWhite, s:cterm0D] 105 | -------------------------------------------------------------------------------- /colors/afterglow.vim: -------------------------------------------------------------------------------- 1 | " File: afterglow.vim 2 | " Author: Danilo Augusto 3 | " Date: 2017-02-27 4 | " Vim color file - Afterglow (monokai version) 5 | " 6 | " Hex color conversion functions borrowed from the theme 'Desert256' 7 | 8 | set background=dark 9 | if version > 580 10 | hi clear 11 | if exists("syntax_on") 12 | syntax reset 13 | endif 14 | endif 15 | 16 | let g:colors_name = "afterglow" 17 | 18 | " Default GUI Colours 19 | let s:foreground = "d6d6d6" 20 | let s:background = "1a1a1a" 21 | let s:selection = "5a647e" 22 | let s:line = "393939" 23 | let s:comment = "797979" 24 | let s:red = "ac4142" 25 | let s:orange = "e87d3e" 26 | let s:yellow = "e5b567" 27 | let s:green = "b4c973" 28 | let s:blue = "6c99bb" 29 | let s:wine = "b05279" 30 | let s:purple = "9e86c8" 31 | let s:window = "4d5057" 32 | 33 | " Auxiliar colors 34 | let s:black = "000000" 35 | 36 | if has("gui_running") || &t_Co == 88 || &t_Co == 256 37 | " Returns an approximate grey index for the given grey level 38 | fun grey_number(x) 39 | if &t_Co == 88 40 | if a:x < 23 41 | return 0 42 | elseif a:x < 69 43 | return 1 44 | elseif a:x < 103 45 | return 2 46 | elseif a:x < 127 47 | return 3 48 | elseif a:x < 150 49 | return 4 50 | elseif a:x < 173 51 | return 5 52 | elseif a:x < 196 53 | return 6 54 | elseif a:x < 219 55 | return 7 56 | elseif a:x < 243 57 | return 8 58 | else 59 | return 9 60 | endif 61 | else 62 | if a:x < 14 63 | return 0 64 | else 65 | let l:n = (a:x - 8) / 10 66 | let l:m = (a:x - 8) % 10 67 | if l:m < 5 68 | return l:n 69 | else 70 | return l:n + 1 71 | endif 72 | endif 73 | endif 74 | endfun 75 | 76 | " Returns the actual grey level represented by the grey index 77 | fun grey_level(n) 78 | if &t_Co == 88 79 | if a:n == 0 80 | return 0 81 | elseif a:n == 1 82 | return 46 83 | elseif a:n == 2 84 | return 92 85 | elseif a:n == 3 86 | return 115 87 | elseif a:n == 4 88 | return 139 89 | elseif a:n == 5 90 | return 162 91 | elseif a:n == 6 92 | return 185 93 | elseif a:n == 7 94 | return 208 95 | elseif a:n == 8 96 | return 231 97 | else 98 | return 255 99 | endif 100 | else 101 | if a:n == 0 102 | return 0 103 | else 104 | return 8 + (a:n * 10) 105 | endif 106 | endif 107 | endfun 108 | 109 | " Returns the palette index for the given grey index 110 | fun grey_colour(n) 111 | if &t_Co == 88 112 | if a:n == 0 113 | return 16 114 | elseif a:n == 9 115 | return 79 116 | else 117 | return 79 + a:n 118 | endif 119 | else 120 | if a:n == 0 121 | return 16 122 | elseif a:n == 25 123 | return 231 124 | else 125 | return 231 + a:n 126 | endif 127 | endif 128 | endfun 129 | 130 | " Returns an approximate colour index for the given colour level 131 | fun rgb_number(x) 132 | if &t_Co == 88 133 | if a:x < 69 134 | return 0 135 | elseif a:x < 172 136 | return 1 137 | elseif a:x < 230 138 | return 2 139 | else 140 | return 3 141 | endif 142 | else 143 | if a:x < 75 144 | return 0 145 | else 146 | let l:n = (a:x - 55) / 40 147 | let l:m = (a:x - 55) % 40 148 | if l:m < 20 149 | return l:n 150 | else 151 | return l:n + 1 152 | endif 153 | endif 154 | endif 155 | endfun 156 | 157 | " Returns the actual colour level for the given colour index 158 | fun rgb_level(n) 159 | if &t_Co == 88 160 | if a:n == 0 161 | return 0 162 | elseif a:n == 1 163 | return 139 164 | elseif a:n == 2 165 | return 205 166 | else 167 | return 255 168 | endif 169 | else 170 | if a:n == 0 171 | return 0 172 | else 173 | return 55 + (a:n * 40) 174 | endif 175 | endif 176 | endfun 177 | 178 | " Returns the palette index for the given R/G/B colour indices 179 | fun rgb_colour(x, y, z) 180 | if &t_Co == 88 181 | return 16 + (a:x * 16) + (a:y * 4) + a:z 182 | else 183 | return 16 + (a:x * 36) + (a:y * 6) + a:z 184 | endif 185 | endfun 186 | 187 | " Returns the palette index to approximate the given R/G/B colour levels 188 | fun colour(r, g, b) 189 | " Get the closest grey 190 | let l:gx = grey_number(a:r) 191 | let l:gy = grey_number(a:g) 192 | let l:gz = grey_number(a:b) 193 | 194 | " Get the closest colour 195 | let l:x = rgb_number(a:r) 196 | let l:y = rgb_number(a:g) 197 | let l:z = rgb_number(a:b) 198 | 199 | if l:gx == l:gy && l:gy == l:gz 200 | " There are two possibilities 201 | let l:dgr = grey_level(l:gx) - a:r 202 | let l:dgg = grey_level(l:gy) - a:g 203 | let l:dgb = grey_level(l:gz) - a:b 204 | let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) 205 | let l:dr = rgb_level(l:gx) - a:r 206 | let l:dg = rgb_level(l:gy) - a:g 207 | let l:db = rgb_level(l:gz) - a:b 208 | let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) 209 | if l:dgrey < l:drgb 210 | " Use the grey 211 | return grey_colour(l:gx) 212 | else 213 | " Use the colour 214 | return rgb_colour(l:x, l:y, l:z) 215 | endif 216 | else 217 | " Only one possibility 218 | return rgb_colour(l:x, l:y, l:z) 219 | endif 220 | endfun 221 | 222 | " Returns the palette index to approximate the 'rrggbb' hex string 223 | fun rgb(rgb) 224 | let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 225 | let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 226 | let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 227 | 228 | return colour(l:r, l:g, l:b) 229 | endfun 230 | 231 | " Sets the highlighting for the given group 232 | fun X(group, fg, bg, attr) 233 | if a:fg != "" 234 | if a:fg == "NONE" 235 | exec "hi " . a:group . " guifg=NONE ctermfg=NONE" 236 | else 237 | exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) 238 | endif 239 | endif 240 | if a:bg != "" 241 | if a:bg == "NONE" 242 | exec "hi " . a:group . " guibg=NONE ctermbg=NONE" 243 | else 244 | exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) 245 | endif 246 | endif 247 | if a:attr != "" 248 | exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr 249 | endif 250 | endfun 251 | 252 | " by default: toggled on (backcompatibility with g:afterglow_italic_comments) 253 | " option g:afterglow_use_italics 254 | if exists("g:afterglow_use_italics") && !g:afterglow_use_italics 255 | let italic = "" 256 | else 257 | " make the global variable available to command mode 258 | let g:afterglow_use_italics = 1 259 | let italic = "italic" 260 | endif 261 | 262 | " option g:afterglow_italic_comments 263 | if exists("g:afterglow_italic_comments") && g:afterglow_italic_comments 264 | call X("Comment", s:comment, "", italic) 265 | else 266 | " make the global variable available to command mode 267 | let g:afterglow_italic_comments = 0 268 | call X("Comment", s:comment, "", "") 269 | endif 270 | 271 | " Vim Highlighting 272 | call X("NonText", s:selection, "", "") 273 | call X("SpecialKey", s:selection, "", "") 274 | call X("Search", s:background, s:yellow, "") 275 | call X("TabLine", s:window, s:foreground, "reverse") 276 | call X("TabLineFill", s:window, s:foreground, "reverse") 277 | call X("StatusLine", s:window, s:yellow, "reverse") 278 | call X("StatusLineNC", s:window, s:foreground, "reverse") 279 | call X("VertSplit", s:window, s:window, "NONE") 280 | call X("Visual", "", s:selection, "") 281 | call X("Directory", s:blue, "", "") 282 | call X("ModeMsg", s:green, "", "") 283 | call X("MoreMsg", s:green, "", "") 284 | call X("Question", s:green, "", "") 285 | call X("WarningMsg", s:orange, "", "bold") 286 | call X("MatchParen", "", s:selection, "") 287 | call X("Folded", s:comment, s:background, "") 288 | call X("FoldColumn", "", s:background, "") 289 | if version >= 700 290 | call X("CursorLine", "", s:line, "NONE") 291 | call X("CursorLineNR", s:orange, "", "NONE") 292 | call X("CursorColumn", "", s:line, "NONE") 293 | call X("PMenu", s:foreground, s:selection, "NONE") 294 | call X("PMenuSel", s:foreground, s:selection, "reverse") 295 | end 296 | if version >= 703 297 | call X("ColorColumn", "", s:line, "NONE") 298 | end 299 | 300 | " Standard Highlighting 301 | call X("Title", s:comment, "", "bold") 302 | call X("Identifier", s:orange, "", "") 303 | call X("Statement", s:wine, "", "") 304 | call X("Conditional", s:wine, "", "") 305 | call X("Repeat", s:wine, "", "") 306 | call X("Structure", s:wine, "", "") 307 | call X("Function", s:orange, "", "") 308 | call X("Constant", s:purple, "", "") 309 | call X("Keyword", s:orange, "", "") 310 | call X("String", s:yellow, "", "") 311 | call X("Special", s:blue, "", "") 312 | call X("PreProc", s:green, "", "") 313 | call X("Operator", s:purple, "", "") 314 | call X("Type", s:blue, "", "") 315 | call X("Define", s:wine, "", "") 316 | call X("Include", s:wine, "", "") 317 | call X("Tag", s:orange, "", "bold") 318 | call X("Underlined", s:orange, "", "underline") 319 | 320 | syntax match commonOperator "\(+\|=\|-\|*\|\^\|\/\||\)" 321 | hi! link commonOperator Operator 322 | 323 | " Vim Highlighting 324 | call X("vimCommand", s:wine, "", "NONE") 325 | 326 | " C Highlighting 327 | call X("cType", s:wine, "", "") 328 | call X("cStorageClass", s:orange, "", "") 329 | call X("cConditional", s:wine, "", "") 330 | call X("cRepeat", s:wine, "", "") 331 | 332 | " PHP Highlighting 333 | call X("phpVarSelector", s:wine, "", "") 334 | call X("phpKeyword", s:wine, "", "") 335 | call X("phpRepeat", s:wine, "", "") 336 | call X("phpConditional", s:wine, "", "") 337 | call X("phpStatement", s:wine, "", "") 338 | call X("phpMemberSelector", s:foreground, "", "") 339 | 340 | " Ruby Highlighting 341 | call X("rubySymbol", s:blue, "", "") 342 | call X("rubyConstant", s:green, "", "") 343 | call X("rubyAccess", s:yellow, "", "") 344 | call X("rubyAttribute", s:blue, "", "") 345 | call X("rubyInclude", s:blue, "", "") 346 | call X("rubyLocalVariableOrMethod", s:orange, "", "") 347 | call X("rubyCurlyBlock", s:orange, "", "") 348 | call X("rubyStringDelimiter", s:yellow, "", "") 349 | call X("rubyInterpolationDelimiter", s:orange, "", "") 350 | call X("rubyConditional", s:wine, "", "") 351 | call X("rubyRepeat", s:wine, "", "") 352 | call X("rubyControl", s:wine, "", "") 353 | call X("rubyException", s:wine, "", "") 354 | 355 | " Crystal Highlighting 356 | call X("crystalSymbol", s:green, "", "") 357 | call X("crystalConstant", s:yellow, "", "") 358 | call X("crystalAccess", s:yellow, "", "") 359 | call X("crystalAttribute", s:blue, "", "") 360 | call X("crystalInclude", s:blue, "", "") 361 | call X("crystalLocalVariableOrMethod", s:orange, "", "") 362 | call X("crystalCurlyBlock", s:orange, "", "") 363 | call X("crystalStringDelimiter", s:green, "", "") 364 | call X("crystalInterpolationDelimiter", s:orange, "", "") 365 | call X("crystalConditional", s:wine, "", "") 366 | call X("crystalRepeat", s:wine, "", "") 367 | call X("crystalControl", s:wine, "", "") 368 | call X("crystalException", s:wine, "", "") 369 | 370 | " Python Highlighting 371 | call X("pythonInclude", s:green, "", italic) 372 | call X("pythonStatement", s:blue, "", "") 373 | call X("pythonConditional", s:wine, "", "") 374 | call X("pythonRepeat", s:wine, "", "") 375 | call X("pythonException", s:orange, "", "") 376 | call X("pythonFunction", s:green, "", italic) 377 | call X("pythonPreCondit", s:wine, "", "") 378 | call X("pythonExClass", s:orange, "", "") 379 | call X("pythonBuiltin", s:blue, "", "") 380 | call X("pythonOperator", s:wine, "", "") 381 | call X("pythonNumber", s:purple, "", "") 382 | call X("pythonString", s:yellow, "", "") 383 | call X("pythonRawString", s:yellow, "", "") 384 | call X("pythonDecorator", s:wine, "", "") 385 | call X("pythonDoctest", s:yellow, "", "") 386 | call X("pythonImportFunction", s:orange, "", "") 387 | call X("pythonImportModule", s:orange, "", "") 388 | call X("pythonImportObject", s:orange, "", "") 389 | call X("pythonImportedClassDef", s:orange, "", "") 390 | call X("pythonImportedFuncDef", s:orange, "", "") 391 | call X("pythonImportedModule", s:orange, "", "") 392 | call X("pythonImportedObject", s:orange, "", "") 393 | 394 | " JavaScript Highlighting 395 | call X("javaScriptEndColons", s:foreground, "", "") 396 | call X("javaScriptOpSymbols", s:foreground, "", "") 397 | call X("javaScriptLogicSymbols", s:foreground, "", "") 398 | call X("javaScriptBraces", s:foreground, "", "") 399 | call X("javaScriptParens", s:foreground, "", "") 400 | call X("javaScriptFunction", s:green, "", "") 401 | call X("javaScriptComment", s:comment, "", "") 402 | call X("javaScriptLineComment", s:comment, "", "") 403 | call X("javaScriptDocComment", s:comment, "", "") 404 | call X("javaScriptCommentTodo", s:red, "", "") 405 | call X("javaScriptString", s:yellow, "", "") 406 | call X("javaScriptRegexpString", s:yellow, "", "") 407 | call X("javaScriptTemplateString", s:yellow, "", "") 408 | call X("javaScriptNumber", s:purple, "", "") 409 | call X("javaScriptFloat", s:purple, "", "") 410 | call X("javaScriptGlobal", s:purple, "", "") 411 | call X("javaScriptCharacter", s:blue, "", "") 412 | call X("javaScriptPrototype", s:blue, "", "") 413 | call X("javaScriptConditional", s:blue, "", "") 414 | call X("javaScriptBranch", s:blue, "", "") 415 | call X("javaScriptIdentifier", s:orange, "", "") 416 | call X("javaScriptRepeat", s:blue, "", "") 417 | call X("javaScriptStatement", s:blue, "", "") 418 | call X("javaScriptMessage", s:blue, "", "") 419 | call X("javaScriptReserved", s:blue, "", "") 420 | call X("javaScriptOperator", s:blue, "", "") 421 | call X("javaScriptNull", s:purple, "", "") 422 | call X("javaScriptBoolean", s:purple, "", "") 423 | call X("javaScriptLabel", s:blue, "", "") 424 | call X("javaScriptSpecial", s:blue, "", "") 425 | call X("javaScriptExceptions", s:red, "", "") 426 | call X("javaScriptDeprecated", s:red, "", "") 427 | call X("javaScriptError", s:red, "", "") 428 | 429 | " LaTeX 430 | call X("texStatement",s:blue, "", "") 431 | call X("texMath", s:wine, "", "NONE") 432 | call X("texMathMacher", s:yellow, "", "NONE") 433 | call X("texRefLabel", s:wine, "", "NONE") 434 | call X("texRefZone", s:blue, "", "NONE") 435 | call X("texComment", s:comment, "", "NONE") 436 | call X("texDelimiter", s:purple, "", "NONE") 437 | call X("texMathZoneX", s:purple, "", "NONE") 438 | 439 | " CoffeeScript Highlighting 440 | call X("coffeeRepeat", s:wine, "", "") 441 | call X("coffeeConditional", s:wine, "", "") 442 | call X("coffeeKeyword", s:wine, "", "") 443 | call X("coffeeObject", s:yellow, "", "") 444 | 445 | " HTML Highlighting 446 | call X("htmlTag", s:blue, "", "") 447 | call X("htmlEndTag", s:blue, "", "") 448 | call X("htmlTagName", s:wine, "", "bold") 449 | call X("htmlArg", s:green, "", italic) 450 | call X("htmlScriptTag", s:wine, "", "") 451 | 452 | " Diff Highlighting 453 | call X("diffAdd", "", "4c4e39", "") 454 | call X("diffDelete", s:background, s:red, "") 455 | call X("diffChange", "", "2B5B77", "") 456 | call X("diffText", s:line, s:blue, "") 457 | 458 | " ShowMarks Highlighting 459 | call X("ShowMarksHLl", s:orange, s:background, "NONE") 460 | call X("ShowMarksHLo", s:wine, s:background, "NONE") 461 | call X("ShowMarksHLu", s:yellow, s:background, "NONE") 462 | call X("ShowMarksHLm", s:wine, s:background, "NONE") 463 | 464 | " Lua Highlighting 465 | call X("luaStatement", s:wine, "", "") 466 | call X("luaRepeat", s:wine, "", "") 467 | call X("luaCondStart", s:wine, "", "") 468 | call X("luaCondElseif", s:wine, "", "") 469 | call X("luaCond", s:wine, "", "") 470 | call X("luaCondEnd", s:wine, "", "") 471 | 472 | " Cucumber Highlighting 473 | call X("cucumberGiven", s:blue, "", "") 474 | call X("cucumberGivenAnd", s:blue, "", "") 475 | 476 | " Go Highlighting 477 | call X("goDirective", s:wine, "", "") 478 | call X("goDeclaration", s:wine, "", "") 479 | call X("goStatement", s:wine, "", "") 480 | call X("goConditional", s:wine, "", "") 481 | call X("goConstants", s:orange, "", "") 482 | call X("goTodo", s:red, "", "") 483 | call X("goDeclType", s:blue, "", "") 484 | call X("goBuiltins", s:wine, "", "") 485 | call X("goRepeat", s:wine, "", "") 486 | call X("goLabel", s:wine, "", "") 487 | 488 | " Clojure Highlighting 489 | call X("clojureConstant", s:orange, "", "") 490 | call X("clojureBoolean", s:orange, "", "") 491 | call X("clojureCharacter", s:orange, "", "") 492 | call X("clojureKeyword", s:green, "", "") 493 | call X("clojureNumber", s:orange, "", "") 494 | call X("clojureString", s:green, "", "") 495 | call X("clojureRegexp", s:green, "", "") 496 | call X("clojureParen", s:wine, "", "") 497 | call X("clojureVariable", s:yellow, "", "") 498 | call X("clojureCond", s:blue, "", "") 499 | call X("clojureDefine", s:wine, "", "") 500 | call X("clojureException", s:red, "", "") 501 | call X("clojureFunc", s:blue, "", "") 502 | call X("clojureMacro", s:blue, "", "") 503 | call X("clojureRepeat", s:blue, "", "") 504 | call X("clojureSpecial", s:wine, "", "") 505 | call X("clojureQuote", s:blue, "", "") 506 | call X("clojureUnquote", s:blue, "", "") 507 | call X("clojureMeta", s:blue, "", "") 508 | call X("clojureDeref", s:blue, "", "") 509 | call X("clojureAnonArg", s:blue, "", "") 510 | call X("clojureRepeat", s:blue, "", "") 511 | call X("clojureDispatch", s:blue, "", "") 512 | 513 | " Scala Highlighting 514 | call X("scalaKeyword", s:wine, "", "") 515 | call X("scalaKeywordModifier", s:wine, "", "") 516 | call X("scalaOperator", s:blue, "", "") 517 | call X("scalaPackage", s:wine, "", "") 518 | call X("scalaFqn", s:foreground, "", "") 519 | call X("scalaFqnSet", s:foreground, "", "") 520 | call X("scalaImport", s:wine, "", "") 521 | call X("scalaBoolean", s:orange, "", "") 522 | call X("scalaDef", s:wine, "", "") 523 | call X("scalaVal", s:wine, "", "") 524 | call X("scalaVar", s:wine, "", "") 525 | call X("scalaClass", s:wine, "", "") 526 | call X("scalaObject", s:wine, "", "") 527 | call X("scalaTrait", s:wine, "", "") 528 | call X("scalaDefName", s:blue, "", "") 529 | call X("scalaValName", s:foreground, "", "") 530 | call X("scalaVarName", s:foreground, "", "") 531 | call X("scalaClassName", s:foreground, "", "") 532 | call X("scalaType", s:yellow, "", "") 533 | call X("scalaTypeSpecializer", s:yellow, "", "") 534 | call X("scalaAnnotation", s:orange, "", "") 535 | call X("scalaNumber", s:orange, "", "") 536 | call X("scalaDefSpecializer", s:yellow, "", "") 537 | call X("scalaClassSpecializer", s:yellow, "", "") 538 | call X("scalaBackTick", s:green, "", "") 539 | call X("scalaRoot", s:foreground, "", "") 540 | call X("scalaMethodCall", s:blue, "", "") 541 | call X("scalaCaseType", s:yellow, "", "") 542 | call X("scalaLineComment", s:comment, "", "") 543 | call X("scalaComment", s:comment, "", "") 544 | call X("scalaDocComment", s:comment, "", "") 545 | call X("scalaDocTags", s:comment, "", "") 546 | call X("scalaEmptyString", s:green, "", "") 547 | call X("scalaMultiLineString", s:green, "", "") 548 | call X("scalaUnicode", s:orange, "", "") 549 | call X("scalaString", s:green, "", "") 550 | call X("scalaStringEscape", s:green, "", "") 551 | call X("scalaSymbol", s:orange, "", "") 552 | call X("scalaChar", s:orange, "", "") 553 | call X("scalaXml", s:green, "", "") 554 | call X("scalaConstructorSpecializer", s:yellow, "", "") 555 | call X("scalaBackTick", s:blue, "", "") 556 | 557 | " Git 558 | call X("gitFile", s:orange, "", "") 559 | call X("gitcommitSummary", "", "", "bold") 560 | 561 | " Option g:afterglow_blackout 562 | if !exists( "g:afterglow_blackout") 563 | let g:afterglow_blackout = 0 564 | endif 565 | 566 | " Option g:afterglow_no_terminal_background 567 | if !exists("g:afterglow_inherit_background") 568 | let g:afterglow_inherit_background = 0 569 | endif 570 | 571 | " Background behavior inference here 572 | if g:afterglow_inherit_background && has("gui_running") 573 | echohl WarningMsg | echom "Inherit background is ignored in GUI." | echohl NONE 574 | let g:afterglow_inherit_background = 0 575 | endif 576 | 577 | if g:afterglow_inherit_background 578 | let s:chosen_background = "NONE" 579 | elseif g:afterglow_blackout 580 | let s:chosen_background = s:black 581 | else 582 | let s:chosen_background = s:background 583 | endif 584 | 585 | " Settings dependent on g:afterglow_blackout 586 | call X("Normal", s:foreground, s:chosen_background, "") 587 | call X("LineNr", s:comment, s:chosen_background, "") 588 | if version >= 700 589 | call X("SignColumn", "", s:chosen_background, "NONE") 590 | end 591 | call X("Todo", s:red, s:chosen_background, "bold") 592 | 593 | " Diffs 594 | " Plugin GitGutter uses highlight link to some of the groups below 595 | call X("DiffAdded", s:green, s:chosen_background, "") 596 | call X("DiffChange", s:yellow, s:chosen_background, "") 597 | call X("DiffDelete", s:red, s:chosen_background, "") 598 | call X("DiffLine", s:blue, s:chosen_background, italic) 599 | call X("DiffSubname", s:foreground, s:chosen_background, "") 600 | " Aliases 601 | " For plugins compatibility and some backcompatibility 602 | " cf. https://github.com/vim/vim-history/blob/c2257f84a000fd08d3ba80d6b1a5d1c0148a39ea/runtime/syntax/diff.vim#L13 603 | hi! link diffAdded DiffAdded 604 | hi! link diffChange DiffChange 605 | hi! link diffDelete DiffDelete 606 | hi! link diffLine DiffLine 607 | hi! link diffSubname DiffSubname 608 | hi! link DiffRemoved DiffDelete 609 | hi! link diffRemoved DiffDelete 610 | hi! link GitGutterChangeLineDefault DiffDelete 611 | hi! link DiffAdd DiffAdded 612 | hi! link diffAdd DiffAdded 613 | 614 | " ALE (plugin) 615 | call X("ALEWarningSign", s:orange, s:chosen_background, "bold") 616 | call X("ALEErrorSign", s:red, s:chosen_background, "bold") 617 | 618 | " Delete Functions 619 | delf X 620 | delf rgb 621 | delf colour 622 | delf rgb_colour 623 | delf rgb_level 624 | delf rgb_number 625 | delf grey_colour 626 | delf grey_level 627 | delf grey_number 628 | endif 629 | --------------------------------------------------------------------------------