├── .github └── workflows │ └── main.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── autoload └── airline │ └── themes │ └── one.vim ├── colors └── one.vim ├── estilo.yml ├── estilo ├── addons │ └── nvim-term.yml ├── palettes │ └── vim-one-dark.yml └── syntax │ └── base.yml └── screenshots ├── Untitled.sketch └── new-logo.png /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Automatic merge from upstream 2 | 3 | on: 4 | schedule: 5 | # * is a special character in YAML so you have to quote this string 6 | - cron: '0 0 * * *' 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v1 15 | - name: Sync upstream changes every day 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | GITHUB_ACTOR: ${{ github.actor }} 19 | GITHUB_REPO: ${{ github.repository }} 20 | run: | 21 | REMOTE_REPO="rakr/vim-one" 22 | git config user.email "actions@github.com" 23 | git config user.name "GitHub Merge Action" 24 | git checkout master 25 | git remote set-url origin "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPO" 26 | git remote add upstream "https://github.com/$REMOTE_REPO" 27 | git fetch upstream 28 | git merge upstream/master 29 | git remote rm upstream 30 | git push origin HEAD:master 31 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | If you wish to contribute to enhancing **vim-one**, please feel free to do so. 2 | Open a pull request and I'll be happy to review it. 3 | 4 | ## Adding support for a new language 5 | 6 | * Crack open `colors/one.vim` 7 | * Create a new "section" for your language, the languages are alphabetically 8 | sorted 9 | 10 | **Sample section** 11 | 12 | ``` 13 | " C/C++ highlighting ------------------------------------------------------{{{ 14 | " }}} 15 | 16 | ``` 17 | 18 | * Start hacking 19 | 20 | There is one function you should call: 21 | 22 | ``` 23 | call X('cInclude', s:hue_3, '', '') 24 | ``` 25 | 26 | The arguments are: 27 | 28 | * The highlight 29 | * Foreground color 30 | * Background color 31 | * Decoration (bold, italic, underline or any combination), for example 32 | 'bold,italic' 33 | 34 | 35 | ## Highlights 36 | 37 | Highlights are defined in vim syntax files, there is no real standard, but some 38 | of them are really "mainstream", for instance **elixir-lang/vim-elixir** for 39 | *Elixir*. 40 | 41 | I have these two following mapping in my `vimrc` 42 | 43 | ``` 44 | " Display highlight information 45 | nnoremap ii :echo synIDattr(synID(line('.'), col('.'), 1), 'name') 46 | 47 | " Display highlighting groups 48 | nnoremap hi :so $VIMRUNTIME/syntax/hitest.vim 49 | ``` 50 | 51 | The first one `ii` displays the name of the hightlight the cursor is 52 | on. 53 | The second one `hi` lists all the highlights that are defined, bear in 54 | mind that syntaxes are loaded dynamically by Vim. 55 | 56 | Happy colorscheming... 57 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Ramzi Akremi 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Logo][logo] 2 | 3 | Light and dark vim colorscheme, shamelessly stolen from atom (another 4 | excellent text editor). **One** supports *true colors* and falls back 5 | gracefully and automatically if your environment does not support this 6 | feature. 7 | 8 | ## Vim Airline theme 9 | 10 | Add the following line to your `~/.vimrc` or `~/.config/nvim/init.vim` 11 | 12 | ```vim 13 | let g:airline_theme='one' 14 | ``` 15 | 16 | As for the colorscheme, this theme comes with light and dark flavors. 17 | 18 | ## List of enhanced language support 19 | 20 | Pull requests are more than welcome here. 21 | I have created few issues to provide a bare bone roadmap for this color 22 | scheme. 23 | 24 | ### Stable 25 | 26 | * Asciidoc 27 | * CSS and Sass 28 | * Cucumber features 29 | * Elixir 30 | * Go 31 | * Haskell 32 | * HTML 33 | * JavaScript, JSON 34 | * Markdown 35 | * PureScript (thanks: [Arthur Xavier](https://github.com/arthur-xavier)) 36 | * Ruby 37 | * Rust (thanks: [Erasin](https://github.com/erasin)) 38 | * Vim 39 | * XML 40 | 41 | ### In progress 42 | 43 | * Jade 44 | * PHP 45 | * Python 46 | * Switch to estilo in progress, not stable at all and does not reflect all the 47 | capabilities of the current mainstream version 48 | 49 | 50 | ## Installation 51 | 52 | You can use your preferred Vim Package Manager to install **One**. 53 | 54 | ## Usage 55 | 56 | **One** comes in two flavors: light and dark. 57 | 58 | ```vim 59 | colorscheme one 60 | set background=dark " for the dark version 61 | " set background=light " for the light version 62 | ``` 63 | 64 | `set background` has to be called after setting the colorscheme, this explains 65 | the issue [#21][issue_21] where Vim tries to determine the best background when `ctermbg` 66 | for the `Normal` highlight is defined. 67 | 68 | ### Italic support 69 | 70 | Some terminals do not support italic, cf. [#3][issue_3]. 71 | 72 | If your terminal does support _italic_, you can set the `g:one_allow_italics` variable to 1 in your `.vimrc` or `.config/nvim/init.vim`: 73 | 74 | ```vim 75 | set background=light " for the light version 76 | let g:one_allow_italics = 1 " I love italic for comments 77 | colorscheme one 78 | ``` 79 | 80 | iTerm2 can support italic, follow the instructions given in this [blog post by Alex Pearce](https://alexpearce.me/2014/05/italics-in-iterm2-vim-tmux/). 81 | Make sure to read the update if you are using tmux version 2.1 or above. 82 | 83 | ### True color support 84 | To benefit from the **true color** support make sure to add the following lines in your `.vimrc` or `.config/nvim/init.vim` 85 | 86 | ```vim 87 | "Credit joshdick 88 | "Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. 89 | "If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support 90 | "(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) 91 | if (empty($TMUX)) 92 | if (has("nvim")) 93 | "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > 94 | let $NVIM_TUI_ENABLE_TRUE_COLOR=1 95 | endif 96 | "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > 97 | "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > 98 | " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > 99 | if (has("termguicolors")) 100 | set termguicolors 101 | endif 102 | endif 103 | 104 | 105 | set background=dark " for the dark version 106 | " set background=light " for the light version 107 | colorscheme one 108 | ``` 109 | ### Tmux support 110 | To get true color working in tmux, ensure that the `$TERM` environment variable is set to `xterm-256color`. Inside the `.tmux.conf` file we need to override this terminal and also set the default terminal as 256 color. 111 | 112 | ``` 113 | # Add truecolor support 114 | set-option -ga terminal-overrides ",xterm-256color:Tc" 115 | # Default terminal is 256 colors 116 | set -g default-terminal "screen-256color" 117 | ``` 118 | 119 | Note that this only works for Neovim (tested on 0.1.5). For some reason Vim (7.5.2334) doesn't play nice. See [blog post by Anton Kalyaev](http://homeonrails.com/2016/05/truecolor-in-gnome-terminal-tmux-and-neovim/) for more details on setting up tmux. 120 | 121 | For Vim inside tmux, you can add the following snippet in your `~/.vimrc` 122 | 123 | ```viml 124 | set t_8b=^[[48;2;%lu;%lu;%lum 125 | set t_8f=^[[38;2;%lu;%lu;%lum 126 | ``` 127 | 128 | Note: the `^[` in this snippet is a real escape character. To insert it, press `Ctrl-V` and then `Esc`. 129 | 130 | I've tested the following setup on a Mac: 131 | 132 | * iTerm2 nightly build 133 | * Neovim 0.1.4 and 0.1.5-dev 134 | * Vim 7.4.1952 135 | 136 | ## Customising One without fork 137 | 138 | Following a request to be able to customise **one** without the need to fork, 139 | **one** is now exposing a public function to meet this requirement. 140 | 141 | After the colorscheme has been initialised, you can call the following function: 142 | 143 | ``` 144 | one#highlight(group, fg, bg, attribute) 145 | ``` 146 | 147 | * `group`: Highlight you want to customise for example `vimLineComment` 148 | * `fg`: foreground color for the highlight, without the '#', for example: 149 | `ff0000` 150 | * `bg`: background color for the highlight, without the '#', for example: 151 | `ff0000` 152 | * `attribute`: `bold`, `italic`, `underline` or any comma separated combination 153 | 154 | For example: 155 | 156 | ``` 157 | call one#highlight('vimLineComment', 'cccccc', '', 'none') 158 | ``` 159 | 160 | ## Contributors 161 | 162 | A special thank you to the following people 163 | 164 | * [laggardkernel](https://github.com/laggardkernel): Startup time improvement 165 | * [Erasin](https://github.com/erasin): Rust support 166 | * [Malcolm Ramsay - malramsay64](https://github.com/malramsay64): Gracefully fail if colorscheme is not properly loaded 167 | * [Arthur Xavier](https://github.com/arthur-xavier): PureScript support 168 | * [keremc](https://github.com/keremc): Tip Vim true color support inside tmux 169 | * [jetm](https://github.com/jetm): C/C++ highlighting 170 | 171 | [logo]: screenshots/new-logo.png 172 | 173 | [issue_3]: https://github.com/rakr/vim-one/issues/3 174 | [issue_21]: https://github.com/rakr/vim-one/issues/21 175 | -------------------------------------------------------------------------------- /autoload/airline/themes/one.vim: -------------------------------------------------------------------------------- 1 | let g:airline#themes#one#palette = {} 2 | 3 | function! airline#themes#one#refresh() 4 | let g:airline#themes#one#palette.accents = { 5 | \ 'red': airline#themes#get_highlight('Constant'), 6 | \ } 7 | 8 | let s:N1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['DiffAdd', 'fg'], 'none') 9 | let s:N2 = airline#themes#get_highlight2(['Normal', 'fg'], ['SpecialKey', 'fg'], 'none') 10 | let s:N3 = airline#themes#get_highlight('CursorLine') 11 | let g:airline#themes#one#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) 12 | 13 | let group = airline#themes#get_highlight('vimCommand') 14 | let g:airline#themes#one#palette.normal_modified = { 15 | \ 'airline_c': [ group[0], '', group[2], '', '' ] 16 | \ } 17 | 18 | let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['DiffLine', 'fg'], 'none') 19 | let s:I2 = airline#themes#get_highlight2(['Normal', 'fg'], ['SpecialKey', 'fg'], 'none') 20 | let s:I3 = s:N3 21 | let g:airline#themes#one#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) 22 | let g:airline#themes#one#palette.insert_modified = g:airline#themes#one#palette.normal_modified 23 | 24 | let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Error', 'fg'], 'none') 25 | let s:R2 = s:N2 26 | let s:R3 = s:N3 27 | let g:airline#themes#one#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) 28 | let g:airline#themes#one#palette.replace_modified = g:airline#themes#one#palette.normal_modified 29 | 30 | let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Statement', 'fg'], 'none') 31 | let s:V2 = airline#themes#get_highlight2(['Normal', 'fg'], ['SpecialKey', 'fg'], 'none') 32 | let s:V3 = s:N3 33 | let g:airline#themes#one#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) 34 | let g:airline#themes#one#palette.visual_modified = g:airline#themes#one#palette.normal_modified 35 | 36 | let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg']) 37 | let g:airline#themes#one#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) 38 | let g:airline#themes#one#palette.inactive_modified = { 39 | \ 'airline_c': [ group[0], '', group[2], '', '' ] 40 | \ } 41 | endfunction 42 | 43 | call airline#themes#one#refresh() 44 | 45 | -------------------------------------------------------------------------------- /colors/one.vim: -------------------------------------------------------------------------------- 1 | " Name: one vim colorscheme 2 | " Author: Ramzi Akremi 3 | " License: MIT 4 | " Version: 1.1.1-pre 5 | 6 | " Global setup =============================================================={{{ 7 | 8 | if exists("*X") 9 | delf X 10 | delf XAPI 11 | delf rgb 12 | delf color 13 | delf rgb_color 14 | delf rgb_level 15 | delf rgb_number 16 | delf grey_color 17 | delf grey_level 18 | delf grey_number 19 | endif 20 | 21 | hi clear 22 | syntax reset 23 | if exists('g:colors_name') 24 | unlet g:colors_name 25 | endif 26 | let g:colors_name = 'one' 27 | 28 | if !exists('g:one_allow_italics') 29 | let g:one_allow_italics = 0 30 | endif 31 | 32 | let s:italic = '' 33 | if g:one_allow_italics == 1 34 | let s:italic = 'italic' 35 | endif 36 | 37 | if has('gui_running') || has('termguicolors') || &t_Co == 88 || &t_Co == 256 38 | " functions 39 | " returns an approximate grey index for the given grey level 40 | 41 | " Utility functions -------------------------------------------------------{{{ 42 | fun grey_number(x) 43 | if &t_Co == 88 44 | if a:x < 23 45 | return 0 46 | elseif a:x < 69 47 | return 1 48 | elseif a:x < 103 49 | return 2 50 | elseif a:x < 127 51 | return 3 52 | elseif a:x < 150 53 | return 4 54 | elseif a:x < 173 55 | return 5 56 | elseif a:x < 196 57 | return 6 58 | elseif a:x < 219 59 | return 7 60 | elseif a:x < 243 61 | return 8 62 | else 63 | return 9 64 | endif 65 | else 66 | if a:x < 14 67 | return 0 68 | else 69 | let l:n = (a:x - 8) / 10 70 | let l:m = (a:x - 8) % 10 71 | if l:m < 5 72 | return l:n 73 | else 74 | return l:n + 1 75 | endif 76 | endif 77 | endif 78 | endfun 79 | 80 | " returns the actual grey level represented by the grey index 81 | fun grey_level(n) 82 | if &t_Co == 88 83 | if a:n == 0 84 | return 0 85 | elseif a:n == 1 86 | return 46 87 | elseif a:n == 2 88 | return 92 89 | elseif a:n == 3 90 | return 115 91 | elseif a:n == 4 92 | return 139 93 | elseif a:n == 5 94 | return 162 95 | elseif a:n == 6 96 | return 185 97 | elseif a:n == 7 98 | return 208 99 | elseif a:n == 8 100 | return 231 101 | else 102 | return 255 103 | endif 104 | else 105 | if a:n == 0 106 | return 0 107 | else 108 | return 8 + (a:n * 10) 109 | endif 110 | endif 111 | endfun 112 | 113 | " returns the palette index for the given grey index 114 | fun grey_color(n) 115 | if &t_Co == 88 116 | if a:n == 0 117 | return 16 118 | elseif a:n == 9 119 | return 79 120 | else 121 | return 79 + a:n 122 | endif 123 | else 124 | if a:n == 0 125 | return 16 126 | elseif a:n == 25 127 | return 231 128 | else 129 | return 231 + a:n 130 | endif 131 | endif 132 | endfun 133 | 134 | " returns an approximate color index for the given color level 135 | fun rgb_number(x) 136 | if &t_Co == 88 137 | if a:x < 69 138 | return 0 139 | elseif a:x < 172 140 | return 1 141 | elseif a:x < 230 142 | return 2 143 | else 144 | return 3 145 | endif 146 | else 147 | if a:x < 75 148 | return 0 149 | else 150 | let l:n = (a:x - 55) / 40 151 | let l:m = (a:x - 55) % 40 152 | if l:m < 20 153 | return l:n 154 | else 155 | return l:n + 1 156 | endif 157 | endif 158 | endif 159 | endfun 160 | 161 | " returns the actual color level for the given color index 162 | fun rgb_level(n) 163 | if &t_Co == 88 164 | if a:n == 0 165 | return 0 166 | elseif a:n == 1 167 | return 139 168 | elseif a:n == 2 169 | return 205 170 | else 171 | return 255 172 | endif 173 | else 174 | if a:n == 0 175 | return 0 176 | else 177 | return 55 + (a:n * 40) 178 | endif 179 | endif 180 | endfun 181 | 182 | " returns the palette index for the given R/G/B color indices 183 | fun rgb_color(x, y, z) 184 | if &t_Co == 88 185 | return 16 + (a:x * 16) + (a:y * 4) + a:z 186 | else 187 | return 16 + (a:x * 36) + (a:y * 6) + a:z 188 | endif 189 | endfun 190 | 191 | " returns the palette index to approximate the given R/G/B color levels 192 | fun color(r, g, b) 193 | " get the closest grey 194 | let l:gx = grey_number(a:r) 195 | let l:gy = grey_number(a:g) 196 | let l:gz = grey_number(a:b) 197 | 198 | " get the closest color 199 | let l:x = rgb_number(a:r) 200 | let l:y = rgb_number(a:g) 201 | let l:z = rgb_number(a:b) 202 | 203 | if l:gx == l:gy && l:gy == l:gz 204 | " there are two possibilities 205 | let l:dgr = grey_level(l:gx) - a:r 206 | let l:dgg = grey_level(l:gy) - a:g 207 | let l:dgb = grey_level(l:gz) - a:b 208 | let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) 209 | let l:dr = rgb_level(l:gx) - a:r 210 | let l:dg = rgb_level(l:gy) - a:g 211 | let l:db = rgb_level(l:gz) - a:b 212 | let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) 213 | if l:dgrey < l:drgb 214 | " use the grey 215 | return grey_color(l:gx) 216 | else 217 | " use the color 218 | return rgb_color(l:x, l:y, l:z) 219 | endif 220 | else 221 | " only one possibility 222 | return rgb_color(l:x, l:y, l:z) 223 | endif 224 | endfun 225 | 226 | " returns the palette index to approximate the 'rrggbb' hex string 227 | fun rgb(rgb) 228 | let l:r = ('0x' . strpart(a:rgb, 0, 2)) + 0 229 | let l:g = ('0x' . strpart(a:rgb, 2, 2)) + 0 230 | let l:b = ('0x' . strpart(a:rgb, 4, 2)) + 0 231 | 232 | return color(l:r, l:g, l:b) 233 | endfun 234 | 235 | " sets the highlighting for the given group 236 | fun XAPI(group, fg, bg, attr) 237 | let l:attr = a:attr 238 | if g:one_allow_italics == 0 && l:attr ==? 'italic' 239 | let l:attr= 'none' 240 | endif 241 | 242 | let l:bg = "" 243 | let l:fg = "" 244 | let l:decoration = "" 245 | 246 | if a:bg != '' 247 | let l:bg = " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) 248 | endif 249 | 250 | if a:fg != '' 251 | let l:fg = " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) 252 | endif 253 | 254 | if a:attr != '' 255 | let l:decoration = " gui=" . l:attr . " cterm=" . l:attr 256 | endif 257 | 258 | let l:exec = l:fg . l:bg . l:decoration 259 | 260 | if l:exec != '' 261 | exec "hi " . a:group . l:exec 262 | endif 263 | 264 | endfun 265 | 266 | " Highlight function 267 | " the original one is borrowed from mhartington/oceanic-next 268 | function! X(group, fg, bg, attr, ...) 269 | let l:attrsp = get(a:, 1, "") 270 | " fg, bg, attr, attrsp 271 | if !empty(a:fg) 272 | exec "hi " . a:group . " guifg=" . a:fg[0] 273 | exec "hi " . a:group . " ctermfg=" . a:fg[1] 274 | endif 275 | if !empty(a:bg) 276 | exec "hi " . a:group . " guibg=" . a:bg[0] 277 | exec "hi " . a:group . " ctermbg=" . a:bg[1] 278 | endif 279 | if a:attr != "" 280 | exec "hi " . a:group . " gui=" . a:attr 281 | exec "hi " . a:group . " cterm=" . a:attr 282 | endif 283 | if !empty(l:attrsp) 284 | exec "hi " . a:group . " guisp=" . l:attrsp[0] 285 | endif 286 | endfunction 287 | 288 | " }}} 289 | 290 | 291 | " Color definition --------------------------------------------------------{{{ 292 | let s:dark = 0 293 | if &background ==# 'dark' 294 | let s:dark = 1 295 | let s:mono_1 = ['#abb2bf', '145'] 296 | let s:mono_2 = ['#828997', '102'] 297 | let s:mono_3 = ['#5c6370', '59'] 298 | let s:mono_4 = ['#4b5263', '59'] 299 | 300 | let s:hue_1 = ['#56b6c2', '73'] " cyan 301 | let s:hue_2 = ['#61afef', '75'] " blue 302 | let s:hue_3 = ['#c678dd', '176'] " purple 303 | let s:hue_4 = ['#98c379', '114'] " green 304 | 305 | let s:hue_5 = ['#e06c75', '168'] " red 1 306 | let s:hue_5_2 = ['#be5046', '130'] " red 2 307 | 308 | let s:hue_6 = ['#d19a66', '173'] " orange 1 309 | let s:hue_6_2 = ['#e5c07b', '180'] " orange 2 310 | 311 | let s:syntax_bg = ['#282c34', '16'] 312 | let s:syntax_gutter = ['#636d83', '60'] 313 | let s:syntax_cursor = ['#2c323c', '16'] 314 | 315 | let s:syntax_accent = ['#528bff', '69'] 316 | 317 | let s:vertsplit = ['#181a1f', '233'] 318 | let s:special_grey = ['#3b4048', '16'] 319 | let s:visual_grey = ['#3e4452', '17'] 320 | let s:pmenu = ['#333841', '16'] 321 | else 322 | let s:mono_1 = ['#494b53', '23'] 323 | let s:mono_2 = ['#696c77', '60'] 324 | let s:mono_3 = ['#a0a1a7', '145'] 325 | let s:mono_4 = ['#c2c2c3', '250'] 326 | 327 | let s:hue_1 = ['#0184bc', '31'] " cyan 328 | let s:hue_2 = ['#4078f2', '33'] " blue 329 | let s:hue_3 = ['#a626a4', '127'] " purple 330 | let s:hue_4 = ['#50a14f', '71'] " green 331 | 332 | let s:hue_5 = ['#e45649', '166'] " red 1 333 | let s:hue_5_2 = ['#ca1243', '160'] " red 2 334 | 335 | let s:hue_6 = ['#986801', '94'] " orange 1 336 | let s:hue_6_2 = ['#c18401', '136'] " orange 2 337 | 338 | let s:syntax_bg = ['#fafafa', '255'] 339 | let s:syntax_gutter = ['#9e9e9e', '247'] 340 | let s:syntax_cursor = ['#f0f0f0', '254'] 341 | 342 | let s:syntax_accent = ['#526fff', '63'] 343 | let s:syntax_accent_2 = ['#0083be', '31'] 344 | 345 | let s:vertsplit = ['#e7e9e1', '188'] 346 | let s:special_grey = ['#d3d3d3', '251'] 347 | let s:visual_grey = ['#d0d0d0', '251'] 348 | let s:pmenu = ['#dfdfdf', '253'] 349 | endif 350 | 351 | let s:syntax_fg = s:mono_1 352 | let s:syntax_fold_bg = s:mono_3 353 | 354 | " }}} 355 | 356 | " Vim editor color --------------------------------------------------------{{{ 357 | call X('Normal', s:syntax_fg, s:syntax_bg, '') 358 | call X('bold', '', '', 'bold') 359 | call X('ColorColumn', '', s:syntax_cursor, '') 360 | call X('Conceal', s:mono_4, s:syntax_bg, '') 361 | call X('Cursor', '', s:syntax_accent, '') 362 | call X('CursorIM', '', '', '') 363 | call X('CursorColumn', '', s:syntax_cursor, '') 364 | call X('CursorLine', '', s:syntax_cursor, 'none') 365 | call X('Directory', s:hue_2, '', '') 366 | call X('ErrorMsg', s:hue_5, s:syntax_bg, 'none') 367 | call X('VertSplit', s:syntax_cursor, s:syntax_cursor, 'none') 368 | call X('Folded', s:syntax_fg, s:syntax_bg, 'none') 369 | call X('FoldColumn', s:mono_3, s:syntax_cursor, '') 370 | call X('IncSearch', s:hue_6, '', '') 371 | call X('LineNr', s:mono_4, '', '') 372 | call X('CursorLineNr', s:syntax_fg, s:syntax_cursor, 'none') 373 | call X('MatchParen', s:hue_5, s:syntax_cursor, 'underline,bold') 374 | call X('Italic', '', '', s:italic) 375 | call X('ModeMsg', s:syntax_fg, '', '') 376 | call X('MoreMsg', s:syntax_fg, '', '') 377 | call X('NonText', s:mono_3, '', 'none') 378 | call X('PMenu', '', s:pmenu, '') 379 | call X('PMenuSel', '', s:mono_4, '') 380 | call X('PMenuSbar', '', s:syntax_bg, '') 381 | call X('PMenuThumb', '', s:mono_1, '') 382 | call X('Question', s:hue_2, '', '') 383 | call X('Search', s:syntax_bg, s:hue_6_2, '') 384 | call X('SpecialKey', s:special_grey, '', 'none') 385 | call X('Whitespace', s:special_grey, '', 'none') 386 | call X('StatusLine', s:syntax_fg, s:syntax_cursor, 'none') 387 | call X('StatusLineNC', s:mono_3, '', '') 388 | call X('TabLine', s:mono_2, s:visual_grey, 'none') 389 | call X('TabLineFill', s:mono_3, s:visual_grey, 'none') 390 | call X('TabLineSel', s:syntax_bg, s:hue_2, '') 391 | call X('Title', s:syntax_fg, '', 'bold') 392 | call X('Visual', '', s:visual_grey, '') 393 | call X('VisualNOS', '', s:visual_grey, '') 394 | call X('WarningMsg', s:hue_5, '', '') 395 | call X('TooLong', s:hue_5, '', '') 396 | call X('WildMenu', s:syntax_fg, s:mono_3, '') 397 | call X('SignColumn', '', s:syntax_bg, '') 398 | call X('Special', s:hue_2, '', '') 399 | " }}} 400 | 401 | " Vim Help highlighting ---------------------------------------------------{{{ 402 | call X('helpCommand', s:hue_6_2, '', '') 403 | call X('helpExample', s:hue_6_2, '', '') 404 | call X('helpHeader', s:mono_1, '', 'bold') 405 | call X('helpSectionDelim', s:mono_3, '', '') 406 | " }}} 407 | 408 | " Standard syntax highlighting --------------------------------------------{{{ 409 | call X('Comment', s:mono_3, '', s:italic) 410 | call X('Constant', s:hue_4, '', '') 411 | call X('String', s:hue_4, '', '') 412 | call X('Character', s:hue_4, '', '') 413 | call X('Number', s:hue_6, '', '') 414 | call X('Boolean', s:hue_6, '', '') 415 | call X('Float', s:hue_6, '', '') 416 | call X('Identifier', s:hue_5, '', 'none') 417 | call X('Function', s:hue_2, '', '') 418 | call X('Statement', s:hue_3, '', 'none') 419 | call X('Conditional', s:hue_3, '', '') 420 | call X('Repeat', s:hue_3, '', '') 421 | call X('Label', s:hue_3, '', '') 422 | call X('Operator', s:syntax_accent, '', 'none') 423 | call X('Keyword', s:hue_5, '', '') 424 | call X('Exception', s:hue_3, '', '') 425 | call X('PreProc', s:hue_6_2, '', '') 426 | call X('Include', s:hue_2, '', '') 427 | call X('Define', s:hue_3, '', 'none') 428 | call X('Macro', s:hue_3, '', '') 429 | call X('PreCondit', s:hue_6_2, '', '') 430 | call X('Type', s:hue_6_2, '', 'none') 431 | call X('StorageClass', s:hue_6_2, '', '') 432 | call X('Structure', s:hue_6_2, '', '') 433 | call X('Typedef', s:hue_6_2, '', '') 434 | call X('Special', s:hue_2, '', '') 435 | call X('SpecialChar', '', '', '') 436 | call X('Tag', '', '', '') 437 | call X('Delimiter', '', '', '') 438 | call X('SpecialComment', '', '', '') 439 | call X('Debug', '', '', '') 440 | call X('Underlined', '', '', 'underline') 441 | call X('Ignore', '', '', '') 442 | call X('Error', s:hue_5, s:syntax_bg, 'bold') 443 | call X('Todo', s:hue_3, s:syntax_bg, '') 444 | " }}} 445 | 446 | " Diff highlighting -------------------------------------------------------{{{ 447 | call X('DiffAdd', s:hue_4, s:visual_grey, '') 448 | call X('DiffChange', s:hue_6, s:visual_grey, '') 449 | call X('DiffDelete', s:hue_5, s:visual_grey, '') 450 | call X('DiffText', s:hue_2, s:visual_grey, '') 451 | call X('DiffAdded', s:hue_4, s:visual_grey, '') 452 | call X('DiffFile', s:hue_5, s:visual_grey, '') 453 | call X('DiffNewFile', s:hue_4, s:visual_grey, '') 454 | call X('DiffLine', s:hue_2, s:visual_grey, '') 455 | call X('DiffRemoved', s:hue_5, s:visual_grey, '') 456 | " }}} 457 | 458 | " Asciidoc highlighting ---------------------------------------------------{{{ 459 | call X('asciidocListingBlock', s:mono_2, '', '') 460 | " }}} 461 | 462 | " C/C++ highlighting ------------------------------------------------------{{{ 463 | call X('cInclude', s:hue_3, '', '') 464 | call X('cPreCondit', s:hue_3, '', '') 465 | call X('cPreConditMatch', s:hue_3, '', '') 466 | 467 | call X('cType', s:hue_3, '', '') 468 | call X('cStorageClass', s:hue_3, '', '') 469 | call X('cStructure', s:hue_3, '', '') 470 | call X('cOperator', s:hue_3, '', '') 471 | call X('cStatement', s:hue_3, '', '') 472 | call X('cTODO', s:hue_3, '', '') 473 | call X('cConstant', s:hue_6, '', '') 474 | call X('cSpecial', s:hue_1, '', '') 475 | call X('cSpecialCharacter', s:hue_1, '', '') 476 | call X('cString', s:hue_4, '', '') 477 | 478 | call X('cppType', s:hue_3, '', '') 479 | call X('cppStorageClass', s:hue_3, '', '') 480 | call X('cppStructure', s:hue_3, '', '') 481 | call X('cppModifier', s:hue_3, '', '') 482 | call X('cppOperator', s:hue_3, '', '') 483 | call X('cppAccess', s:hue_3, '', '') 484 | call X('cppStatement', s:hue_3, '', '') 485 | call X('cppConstant', s:hue_5, '', '') 486 | call X('cCppString', s:hue_4, '', '') 487 | " }}} 488 | 489 | " Cucumber highlighting ---------------------------------------------------{{{ 490 | call X('cucumberGiven', s:hue_2, '', '') 491 | call X('cucumberWhen', s:hue_2, '', '') 492 | call X('cucumberWhenAnd', s:hue_2, '', '') 493 | call X('cucumberThen', s:hue_2, '', '') 494 | call X('cucumberThenAnd', s:hue_2, '', '') 495 | call X('cucumberUnparsed', s:hue_6, '', '') 496 | call X('cucumberFeature', s:hue_5, '', 'bold') 497 | call X('cucumberBackground', s:hue_3, '', 'bold') 498 | call X('cucumberScenario', s:hue_3, '', 'bold') 499 | call X('cucumberScenarioOutline', s:hue_3, '', 'bold') 500 | call X('cucumberTags', s:mono_3, '', 'bold') 501 | call X('cucumberDelimiter', s:mono_3, '', 'bold') 502 | " }}} 503 | 504 | " CSS/Sass highlighting ---------------------------------------------------{{{ 505 | call X('cssAttrComma', s:hue_3, '', '') 506 | call X('cssAttributeSelector', s:hue_4, '', '') 507 | call X('cssBraces', s:mono_2, '', '') 508 | call X('cssClassName', s:hue_6, '', '') 509 | call X('cssClassNameDot', s:hue_6, '', '') 510 | call X('cssDefinition', s:hue_3, '', '') 511 | call X('cssFontAttr', s:hue_6, '', '') 512 | call X('cssFontDescriptor', s:hue_3, '', '') 513 | call X('cssFunctionName', s:hue_2, '', '') 514 | call X('cssIdentifier', s:hue_2, '', '') 515 | call X('cssImportant', s:hue_3, '', '') 516 | call X('cssInclude', s:mono_1, '', '') 517 | call X('cssIncludeKeyword', s:hue_3, '', '') 518 | call X('cssMediaType', s:hue_6, '', '') 519 | call X('cssProp', s:hue_1, '', '') 520 | call X('cssPseudoClassId', s:hue_6, '', '') 521 | call X('cssSelectorOp', s:hue_3, '', '') 522 | call X('cssSelectorOp2', s:hue_3, '', '') 523 | call X('cssStringQ', s:hue_4, '', '') 524 | call X('cssStringQQ', s:hue_4, '', '') 525 | call X('cssTagName', s:hue_5, '', '') 526 | call X('cssAttr', s:hue_6, '', '') 527 | 528 | call X('sassAmpersand', s:hue_5, '', '') 529 | call X('sassClass', s:hue_6_2, '', '') 530 | call X('sassControl', s:hue_3, '', '') 531 | call X('sassExtend', s:hue_3, '', '') 532 | call X('sassFor', s:mono_1, '', '') 533 | call X('sassProperty', s:hue_1, '', '') 534 | call X('sassFunction', s:hue_1, '', '') 535 | call X('sassId', s:hue_2, '', '') 536 | call X('sassInclude', s:hue_3, '', '') 537 | call X('sassMedia', s:hue_3, '', '') 538 | call X('sassMediaOperators', s:mono_1, '', '') 539 | call X('sassMixin', s:hue_3, '', '') 540 | call X('sassMixinName', s:hue_2, '', '') 541 | call X('sassMixing', s:hue_3, '', '') 542 | 543 | call X('scssSelectorName', s:hue_6_2, '', '') 544 | " }}} 545 | 546 | " Elixir highlighting------------------------------------------------------{{{ 547 | hi link elixirModuleDefine Define 548 | call X('elixirAlias', s:hue_6_2, '', '') 549 | call X('elixirAtom', s:hue_1, '', '') 550 | call X('elixirBlockDefinition', s:hue_3, '', '') 551 | call X('elixirModuleDeclaration', s:hue_6, '', '') 552 | call X('elixirInclude', s:hue_5, '', '') 553 | call X('elixirOperator', s:hue_6, '', '') 554 | " }}} 555 | 556 | " Git and git related plugins highlighting --------------------------------{{{ 557 | call X('gitcommitComment', s:mono_3, '', '') 558 | call X('gitcommitUnmerged', s:hue_4, '', '') 559 | call X('gitcommitOnBranch', '', '', '') 560 | call X('gitcommitBranch', s:hue_3, '', '') 561 | call X('gitcommitDiscardedType', s:hue_5, '', '') 562 | call X('gitcommitSelectedType', s:hue_4, '', '') 563 | call X('gitcommitHeader', '', '', '') 564 | call X('gitcommitUntrackedFile', s:hue_1, '', '') 565 | call X('gitcommitDiscardedFile', s:hue_5, '', '') 566 | call X('gitcommitSelectedFile', s:hue_4, '', '') 567 | call X('gitcommitUnmergedFile', s:hue_6_2, '', '') 568 | call X('gitcommitFile', '', '', '') 569 | hi link gitcommitNoBranch gitcommitBranch 570 | hi link gitcommitUntracked gitcommitComment 571 | hi link gitcommitDiscarded gitcommitComment 572 | hi link gitcommitSelected gitcommitComment 573 | hi link gitcommitDiscardedArrow gitcommitDiscardedFile 574 | hi link gitcommitSelectedArrow gitcommitSelectedFile 575 | hi link gitcommitUnmergedArrow gitcommitUnmergedFile 576 | 577 | call X('SignifySignAdd', s:hue_4, '', '') 578 | call X('SignifySignChange', s:hue_6_2, '', '') 579 | call X('SignifySignDelete', s:hue_5, '', '') 580 | hi link GitGutterAdd SignifySignAdd 581 | hi link GitGutterChange SignifySignChange 582 | hi link GitGutterDelete SignifySignDelete 583 | call X('diffAdded', s:hue_4, '', '') 584 | call X('diffRemoved', s:hue_5, '', '') 585 | " }}} 586 | 587 | " Go highlighting ---------------------------------------------------------{{{ 588 | call X('goDeclaration', s:hue_3, '', '') 589 | call X('goField', s:hue_5, '', '') 590 | call X('goMethod', s:hue_1, '', '') 591 | call X('goType', s:hue_3, '', '') 592 | call X('goUnsignedInts', s:hue_1, '', '') 593 | " }}} 594 | 595 | " Haskell highlighting ----------------------------------------------------{{{ 596 | call X('haskellDeclKeyword', s:hue_2, '', '') 597 | call X('haskellType', s:hue_4, '', '') 598 | call X('haskellWhere', s:hue_5, '', '') 599 | call X('haskellImportKeywords', s:hue_2, '', '') 600 | call X('haskellOperators', s:hue_5, '', '') 601 | call X('haskellDelimiter', s:hue_2, '', '') 602 | call X('haskellIdentifier', s:hue_6, '', '') 603 | call X('haskellKeyword', s:hue_5, '', '') 604 | call X('haskellNumber', s:hue_1, '', '') 605 | call X('haskellString', s:hue_1, '', '') 606 | "}}} 607 | 608 | " HTML highlighting -------------------------------------------------------{{{ 609 | call X('htmlArg', s:hue_6, '', '') 610 | call X('htmlTagName', s:hue_5, '', '') 611 | call X('htmlTagN', s:hue_5, '', '') 612 | call X('htmlSpecialTagName', s:hue_5, '', '') 613 | call X('htmlTag', s:mono_2, '', '') 614 | call X('htmlEndTag', s:mono_2, '', '') 615 | 616 | call X('MatchTag', s:hue_5, s:syntax_cursor, 'underline,bold') 617 | " }}} 618 | 619 | " JavaScript highlighting -------------------------------------------------{{{ 620 | call X('coffeeString', s:hue_4, '', '') 621 | 622 | call X('javaScriptBraces', s:mono_2, '', '') 623 | call X('javaScriptFunction', s:hue_3, '', '') 624 | call X('javaScriptIdentifier', s:hue_3, '', '') 625 | call X('javaScriptNull', s:hue_6, '', '') 626 | call X('javaScriptNumber', s:hue_6, '', '') 627 | call X('javaScriptRequire', s:hue_1, '', '') 628 | call X('javaScriptReserved', s:hue_3, '', '') 629 | " https://github.com/pangloss/vim-javascript 630 | call X('jsArrowFunction', s:hue_3, '', '') 631 | call X('jsBraces', s:mono_2, '', '') 632 | call X('jsClassBraces', s:mono_2, '', '') 633 | call X('jsClassKeywords', s:hue_3, '', '') 634 | call X('jsDocParam', s:hue_2, '', '') 635 | call X('jsDocTags', s:hue_3, '', '') 636 | call X('jsFuncBraces', s:mono_2, '', '') 637 | call X('jsFuncCall', s:hue_2, '', '') 638 | call X('jsFuncParens', s:mono_2, '', '') 639 | call X('jsFunction', s:hue_3, '', '') 640 | call X('jsGlobalObjects', s:hue_6_2, '', '') 641 | call X('jsModuleWords', s:hue_3, '', '') 642 | call X('jsModules', s:hue_3, '', '') 643 | call X('jsNoise', s:mono_2, '', '') 644 | call X('jsNull', s:hue_6, '', '') 645 | call X('jsOperator', s:hue_3, '', '') 646 | call X('jsParens', s:mono_2, '', '') 647 | call X('jsStorageClass', s:hue_3, '', '') 648 | call X('jsTemplateBraces', s:hue_5_2, '', '') 649 | call X('jsTemplateVar', s:hue_4, '', '') 650 | call X('jsThis', s:hue_5, '', '') 651 | call X('jsUndefined', s:hue_6, '', '') 652 | call X('jsObjectValue', s:hue_2, '', '') 653 | call X('jsObjectKey', s:hue_1, '', '') 654 | call X('jsReturn', s:hue_3, '', '') 655 | " https://github.com/othree/yajs.vim 656 | call X('javascriptArrowFunc', s:hue_3, '', '') 657 | call X('javascriptClassExtends', s:hue_3, '', '') 658 | call X('javascriptClassKeyword', s:hue_3, '', '') 659 | call X('javascriptDocNotation', s:hue_3, '', '') 660 | call X('javascriptDocParamName', s:hue_2, '', '') 661 | call X('javascriptDocTags', s:hue_3, '', '') 662 | call X('javascriptEndColons', s:mono_3, '', '') 663 | call X('javascriptExport', s:hue_3, '', '') 664 | call X('javascriptFuncArg', s:mono_1, '', '') 665 | call X('javascriptFuncKeyword', s:hue_3, '', '') 666 | call X('javascriptIdentifier', s:hue_5, '', '') 667 | call X('javascriptImport', s:hue_3, '', '') 668 | call X('javascriptObjectLabel', s:mono_1, '', '') 669 | call X('javascriptOpSymbol', s:hue_1, '', '') 670 | call X('javascriptOpSymbols', s:hue_1, '', '') 671 | call X('javascriptPropertyName', s:hue_4, '', '') 672 | call X('javascriptTemplateSB', s:hue_5_2, '', '') 673 | call X('javascriptVariable', s:hue_3, '', '') 674 | " }}} 675 | 676 | " JSON highlighting -------------------------------------------------------{{{ 677 | call X('jsonCommentError', s:mono_1, '', '' ) 678 | call X('jsonKeyword', s:hue_5, '', '' ) 679 | call X('jsonQuote', s:mono_3, '', '' ) 680 | call X('jsonTrailingCommaError', s:hue_5, '', 'reverse' ) 681 | call X('jsonMissingCommaError', s:hue_5, '', 'reverse' ) 682 | call X('jsonNoQuotesError', s:hue_5, '', 'reverse' ) 683 | call X('jsonNumError', s:hue_5, '', 'reverse' ) 684 | call X('jsonString', s:hue_4, '', '' ) 685 | call X('jsonBoolean', s:hue_3, '', '' ) 686 | call X('jsonNumber', s:hue_6, '', '' ) 687 | call X('jsonStringSQError', s:hue_5, '', 'reverse' ) 688 | call X('jsonSemicolonError', s:hue_5, '', 'reverse' ) 689 | " }}} 690 | 691 | " Markdown highlighting ---------------------------------------------------{{{ 692 | call X('markdownUrl', s:mono_3, '', '') 693 | call X('markdownBold', s:hue_6, '', 'bold') 694 | call X('markdownItalic', s:hue_6, '', 'bold') 695 | call X('markdownCode', s:hue_4, '', '') 696 | call X('markdownCodeBlock', s:hue_5, '', '') 697 | call X('markdownCodeDelimiter', s:hue_4, '', '') 698 | call X('markdownHeadingDelimiter', s:hue_5_2, '', '') 699 | call X('markdownH1', s:hue_5, '', '') 700 | call X('markdownH2', s:hue_5, '', '') 701 | call X('markdownH3', s:hue_5, '', '') 702 | call X('markdownH3', s:hue_5, '', '') 703 | call X('markdownH4', s:hue_5, '', '') 704 | call X('markdownH5', s:hue_5, '', '') 705 | call X('markdownH6', s:hue_5, '', '') 706 | call X('markdownListMarker', s:hue_5, '', '') 707 | " }}} 708 | 709 | " Perl highlighting -------------------------------------------------------{{{ 710 | call X('perlFunction', s:hue_3, '', '') 711 | call X('perlMethod', s:syntax_fg, '', '') 712 | call X('perlPackageConst', s:hue_3, '', '') 713 | call X('perlPOD', s:mono_3, '', '') 714 | call X('perlSubName', s:syntax_fg, '', '') 715 | call X('perlSharpBang', s:mono_3, '', '') 716 | call X('perlSpecialString', s:hue_4, '', '') 717 | call X('perlVarPlain', s:hue_2, '', '') 718 | call X('podCommand', s:mono_3, '', '') 719 | 720 | " PHP highlighting --------------------------------------------------------{{{ 721 | call X('phpClass', s:hue_6_2, '', '') 722 | call X('phpFunction', s:hue_2, '', '') 723 | call X('phpFunctions', s:hue_2, '', '') 724 | call X('phpInclude', s:hue_3, '', '') 725 | call X('phpKeyword', s:hue_3, '', '') 726 | call X('phpParent', s:mono_3, '', '') 727 | call X('phpType', s:hue_3, '', '') 728 | call X('phpSuperGlobals', s:hue_5, '', '') 729 | " }}} 730 | 731 | " Pug (Formerly Jade) highlighting ----------------------------------------{{{ 732 | call X('pugAttributesDelimiter', s:hue_6, '', '') 733 | call X('pugClass', s:hue_6, '', '') 734 | call X('pugDocType', s:mono_3, '', s:italic) 735 | call X('pugTag', s:hue_5, '', '') 736 | " }}} 737 | 738 | " PureScript highlighting -------------------------------------------------{{{ 739 | call X('purescriptKeyword', s:hue_3, '', '') 740 | call X('purescriptModuleName', s:syntax_fg, '', '') 741 | call X('purescriptIdentifier', s:syntax_fg, '', '') 742 | call X('purescriptType', s:hue_6_2, '', '') 743 | call X('purescriptTypeVar', s:hue_5, '', '') 744 | call X('purescriptConstructor', s:hue_5, '', '') 745 | call X('purescriptOperator', s:syntax_fg, '', '') 746 | " }}} 747 | 748 | " Python highlighting -----------------------------------------------------{{{ 749 | call X('pythonImport', s:hue_3, '', '') 750 | call X('pythonBuiltin', s:hue_1, '', '') 751 | call X('pythonStatement', s:hue_3, '', '') 752 | call X('pythonParam', s:hue_6, '', '') 753 | call X('pythonEscape', s:hue_5, '', '') 754 | call X('pythonSelf', s:mono_2, '', s:italic) 755 | call X('pythonClass', s:hue_2, '', '') 756 | call X('pythonOperator', s:hue_3, '', '') 757 | call X('pythonEscape', s:hue_5, '', '') 758 | call X('pythonFunction', s:hue_2, '', '') 759 | call X('pythonKeyword', s:hue_2, '', '') 760 | call X('pythonModule', s:hue_3, '', '') 761 | call X('pythonStringDelimiter', s:hue_4, '', '') 762 | call X('pythonSymbol', s:hue_1, '', '') 763 | " }}} 764 | 765 | " Ruby highlighting -------------------------------------------------------{{{ 766 | call X('rubyBlock', s:hue_3, '', '') 767 | call X('rubyBlockParameter', s:hue_5, '', '') 768 | call X('rubyBlockParameterList', s:hue_5, '', '') 769 | call X('rubyCapitalizedMethod', s:hue_3, '', '') 770 | call X('rubyClass', s:hue_3, '', '') 771 | call X('rubyConstant', s:hue_6_2, '', '') 772 | call X('rubyControl', s:hue_3, '', '') 773 | call X('rubyDefine', s:hue_3, '', '') 774 | call X('rubyEscape', s:hue_5, '', '') 775 | call X('rubyFunction', s:hue_2, '', '') 776 | call X('rubyGlobalVariable', s:hue_5, '', '') 777 | call X('rubyInclude', s:hue_2, '', '') 778 | call X('rubyIncluderubyGlobalVariable', s:hue_5, '', '') 779 | call X('rubyInstanceVariable', s:hue_5, '', '') 780 | call X('rubyInterpolation', s:hue_1, '', '') 781 | call X('rubyInterpolationDelimiter', s:hue_5, '', '') 782 | call X('rubyKeyword', s:hue_2, '', '') 783 | call X('rubyModule', s:hue_3, '', '') 784 | call X('rubyPseudoVariable', s:hue_5, '', '') 785 | call X('rubyRegexp', s:hue_1, '', '') 786 | call X('rubyRegexpDelimiter', s:hue_1, '', '') 787 | call X('rubyStringDelimiter', s:hue_4, '', '') 788 | call X('rubySymbol', s:hue_1, '', '') 789 | " }}} 790 | 791 | " Spelling highlighting ---------------------------------------------------{{{ 792 | call X('SpellBad', '', s:syntax_bg, 'undercurl') 793 | call X('SpellLocal', '', s:syntax_bg, 'undercurl') 794 | call X('SpellCap', '', s:syntax_bg, 'undercurl') 795 | call X('SpellRare', '', s:syntax_bg, 'undercurl') 796 | " }}} 797 | 798 | " Vim highlighting --------------------------------------------------------{{{ 799 | call X('vimCommand', s:hue_3, '', '') 800 | call X('vimCommentTitle', s:mono_3, '', 'bold') 801 | call X('vimFunction', s:hue_1, '', '') 802 | call X('vimFuncName', s:hue_3, '', '') 803 | call X('vimHighlight', s:hue_2, '', '') 804 | call X('vimLineComment', s:mono_3, '', s:italic) 805 | call X('vimParenSep', s:mono_2, '', '') 806 | call X('vimSep', s:mono_2, '', '') 807 | call X('vimUserFunc', s:hue_1, '', '') 808 | call X('vimVar', s:hue_5, '', '') 809 | " }}} 810 | 811 | " XML highlighting --------------------------------------------------------{{{ 812 | call X('xmlAttrib', s:hue_6_2, '', '') 813 | call X('xmlEndTag', s:hue_5, '', '') 814 | call X('xmlTag', s:hue_5, '', '') 815 | call X('xmlTagName', s:hue_5, '', '') 816 | " }}} 817 | 818 | " ZSH highlighting --------------------------------------------------------{{{ 819 | call X('zshCommands', s:syntax_fg, '', '') 820 | call X('zshDeref', s:hue_5, '', '') 821 | call X('zshShortDeref', s:hue_5, '', '') 822 | call X('zshFunction', s:hue_1, '', '') 823 | call X('zshKeyword', s:hue_3, '', '') 824 | call X('zshSubst', s:hue_5, '', '') 825 | call X('zshSubstDelim', s:mono_3, '', '') 826 | call X('zshTypes', s:hue_3, '', '') 827 | call X('zshVariableDef', s:hue_6, '', '') 828 | " }}} 829 | 830 | " Rust highlighting -------------------------------------------------------{{{ 831 | call X('rustExternCrate', s:hue_5, '', 'bold') 832 | call X('rustIdentifier', s:hue_2, '', '') 833 | call X('rustDeriveTrait', s:hue_4, '', '') 834 | call X('SpecialComment', s:mono_3, '', '') 835 | call X('rustCommentLine', s:mono_3, '', '') 836 | call X('rustCommentLineDoc', s:mono_3, '', '') 837 | call X('rustCommentLineDocError', s:mono_3, '', '') 838 | call X('rustCommentBlock', s:mono_3, '', '') 839 | call X('rustCommentBlockDoc', s:mono_3, '', '') 840 | call X('rustCommentBlockDocError', s:mono_3, '', '') 841 | " }}} 842 | 843 | " man highlighting --------------------------------------------------------{{{ 844 | hi link manTitle String 845 | call X('manFooter', s:mono_3, '', '') 846 | " }}} 847 | 848 | " ALE (Asynchronous Lint Engine) highlighting -----------------------------{{{ 849 | call X('ALEWarningSign', s:hue_6_2, '', '') 850 | call X('ALEErrorSign', s:hue_5, '', '') 851 | 852 | 853 | " Neovim NERDTree Background fix ------------------------------------------{{{ 854 | call X('NERDTreeFile', s:syntax_fg, '', '') 855 | " }}} 856 | 857 | " Delete functions =========================================================={{{ 858 | " delf X 859 | " delf XAPI 860 | " delf rgb 861 | " delf color 862 | " delf rgb_color 863 | " delf rgb_level 864 | " delf rgb_number 865 | " delf grey_color 866 | " delf grey_level 867 | " delf grey_number 868 | " }}} 869 | 870 | endif 871 | "}}} 872 | 873 | " Public API --------------------------------------------------------------{{{ 874 | function! one#highlight(group, fg, bg, attr) 875 | call XAPI(a:group, a:fg, a:bg, a:attr) 876 | endfunction 877 | "}}} 878 | 879 | if exists('s:dark') && s:dark 880 | set background=dark 881 | endif 882 | 883 | " vim: set fdl=0 fdm=marker: 884 | -------------------------------------------------------------------------------- /estilo.yml: -------------------------------------------------------------------------------- 1 | name: 'vim-one' 2 | version: '1.0.0' 3 | license: 'MIT' 4 | author: 'Ramzi Akremi' 5 | url: '' 6 | description: 'Port to Vim of Atom One Dark and Light themes' 7 | colorschemes: 8 | - name: one-dark 9 | background: 'dark' 10 | palette: vim-one-dark 11 | -------------------------------------------------------------------------------- /estilo/addons/nvim-term.yml: -------------------------------------------------------------------------------- 1 | color_foreground: '' 2 | color_background: '' 3 | color_0: '' 4 | color_1: '' 5 | color_2: '' 6 | color_3: '' 7 | color_4: '' 8 | color_5: '' 9 | color_6: '' 10 | color_7: '' 11 | color_8: '' 12 | color_9: '' 13 | color_10: '' 14 | color_11: '' 15 | color_12: '' 16 | color_13: '' 17 | color_14: '' 18 | color_15: '' 19 | -------------------------------------------------------------------------------- /estilo/palettes/vim-one-dark.yml: -------------------------------------------------------------------------------- 1 | mono_1: '#abb2bf' 2 | mono_2: '#828997' 3 | mono_3: '#5c6370' 4 | mono_4: '#4b5263' 5 | 6 | hue_1: '#56b6c2' # cyan 7 | hue_2: '#61afef' # blue 8 | hue_3: '#c678dd' # purple 9 | hue_4: '#98c379' # green 10 | 11 | hue_5: '#e06c75' # red 1 12 | hue_5_2: '#be5046' # red 2 13 | 14 | hue_6: '#d19a66' # orange 1 15 | hue_6_2: '#e5c07b' # orange 2 16 | 17 | syntax_bg: '#282c34' 18 | syntax_gutter: '#636d83' 19 | syntax_cursor: '#2c323c' 20 | 21 | syntax_accent: '#528bff' 22 | 23 | vertsplit: '#181a1f' 24 | special_grey: '#3b4048' 25 | visual_grey: '#3e4452' 26 | -------------------------------------------------------------------------------- /estilo/syntax/base.yml: -------------------------------------------------------------------------------- 1 | # BASE UI 2 | Bold: '. . b' 3 | ColorColumn: '. syntax_cursor' 4 | Conceal: '. .' 5 | Cursor: '. syntax_accent' 6 | CursorIM: '' 7 | CursorColumn: '. syntax_cursor' 8 | CursorLine: '. syntax_cursor' 9 | Directory: 'hue_2 .' 10 | DiffAdd: '' # TODO 11 | DiffChange: '' # TODO 12 | DiffDelete: '' # TODO 13 | DiffText: '' # TODO 14 | ErrorMsg: '' 15 | VertSplit: '' 16 | Folded: '' 17 | FoldColumn: '' 18 | SignColumn: '' 19 | IncSearch: '' 20 | LineNr: '' 21 | MatchParen: '' 22 | ModeMsg: '' 23 | MoreMsg: '' 24 | NonText: '' 25 | Normal: 'mono_1 syntax_bg' 26 | PMenu: '' 27 | PMenuSel: '' 28 | PmenuSbar: '' 29 | PmenuThumb: '' 30 | Question: '' 31 | Search: '' 32 | SpecialKey: '' 33 | SpellBad: '' 34 | SpellLocal: '' 35 | SpellCap: '' 36 | SpellRare: '' 37 | StatusLine: '' 38 | StatusLineNC: '' 39 | TabLine: '' 40 | TabLineFill: '' 41 | TabLineSel: '' 42 | Title: '' 43 | Visual: '' 44 | VisualNOS: '' 45 | WarningMsg: '' 46 | WildMenu: '' 47 | # BASE SYNTAX 48 | Comment: '' 49 | Constant: '' 50 | String: '' # Constant 51 | Character: '' # Constant 52 | Boolean: '' # Constant 53 | Number: '' # Constant 54 | Float: '' # Constant 55 | Identifier: '' 56 | Function: '' # Identifier 57 | Statement: '' 58 | Conditional: '' # Statement 59 | Repeat: '' # Statement 60 | Label: '' # Statement 61 | Operator: '' # Statement 62 | Keyword: '' # Statement 63 | Exception: '' # Statement 64 | PreProc: '' 65 | Include: '' # PreProc 66 | Define: '' # PreProc 67 | Macro: '' # PreProc 68 | PreCondit: '' # PreProc 69 | Type: '' 70 | StorageClass: '' # Type 71 | Structure: '' # Type 72 | Typedef: '' # Type 73 | Special: '' 74 | SpecialChar: '' # Special 75 | Tag: '' # Special 76 | Delimiter: '' # Special 77 | SpecialComment: '' # Special 78 | Debug: '' # Special 79 | Underlined: '' 80 | Ignore: '' 81 | Error: '' 82 | Todo: '' 83 | -------------------------------------------------------------------------------- /screenshots/Untitled.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rakr/vim-one/187f5c85b682c1933f8780d4d419c55d26a82e24/screenshots/Untitled.sketch -------------------------------------------------------------------------------- /screenshots/new-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rakr/vim-one/187f5c85b682c1933f8780d4d419c55d26a82e24/screenshots/new-logo.png --------------------------------------------------------------------------------