├── .gitignore ├── LICENSE ├── README.md ├── colors └── monokai.vim └── screenshots ├── html.png ├── typescript.png └── with-treesitter.png /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Crusoe.Xia 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 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | vim-monokai 2 | =========== 3 | 4 | Refined monokai color scheme for vim. 5 | 6 | Install 7 | ------- 8 | 9 | ### [vim-plug](https://github.com/junegunn/vim-plug) 10 | 11 | Plug 'crusoexia/vim-monokai' 12 | 13 | ### Manually 14 | 15 | ```bash 16 | mkdir -p ~/.vim/colors 17 | ``` 18 | 19 | Download the `colors/monokai.vim` file from the repo to `~/.vim/colors` 20 | 21 | Usage 22 | ----- 23 | 24 | Copy below command to your `~/.vimrc`: 25 | 26 | ```VimL 27 | syntax on 28 | colorscheme monokai 29 | ``` 30 | 31 | Terminal support 32 | ---------------- 33 | 34 | If you are using a terminal which support truecolor like **iterm2**, enable the gui color by adding below setting in `~/.vimrc` or `~/.vim/init.vim` 35 | 36 | ```VimL 37 | set termguicolors 38 | ``` 39 | 40 | Otherwise, use below setting to activate the 256 color in terminal 41 | 42 | ```VimL 43 | set t_Co=256 " vim-monokai now only support 256 colours in terminal. 44 | ``` 45 | 46 | coc.nvim support 47 | ---------------- 48 | 49 | [coc.nvim](https://github.com/neoclide/coc.nvim) is a powerful completion engine, it brings *vs-code*'s experience into vim. *vim-monokai* fits it well. 50 | 51 | Configuration 52 | ------------- 53 | 54 | ### Italic 55 | 56 | If you are using a font which support italic, paste below command in `.vimrc` to turn on gui/terminal italic effect: 57 | 58 | let g:monokai_term_italic = 1 59 | let g:monokai_gui_italic = 1 60 | 61 | > Note: If you are using vim with [tmux](https://github.com/tmux/tmux/wiki), you need to turn-off the italic. __tmux__ doesn't support italic font, all _italic_ effect will become _"reverse"_. 62 | 63 | Recommend syntax plugins 64 | ------------------------ 65 | 66 | ### nvim-treesitter 67 | 68 | It is recommend to use [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) 69 | for general language syntax mapping. **vim-monokai** tweaked to fit _treesitter_'s 70 | highlight groups. 71 | 72 | > Currently `nvim-treesitter` only support `neovim`. 73 | 74 | #### treesitter configuration 75 | 76 | To enable treesitter's highlight group, add below configuration to your `init.vim`: 77 | 78 | ```VimScript 79 | lua << EOF 80 | require'nvim-treesitter.configs'.setup { 81 | highlight = { 82 | enable = true, 83 | }, 84 | } 85 | EOF 86 | ``` 87 | 88 | Refer to [treesitter highlight](https://github.com/nvim-treesitter/nvim-treesitter?tab=readme-ov-file#highlight). 89 | 90 | ### Other syntax plugins 91 | 92 | Below plugins would give you better experience when using *vim-monokai*: 93 | 94 | | Language | Plugins | 95 | | ------------ | -------------------------------------- | 96 | | Javascript | [vim-javascript](https://github.com/pangloss/vim-javascript)
[vim-javascript-lib](https://github.com/crusoexia/vim-javascript-lib) | 97 | | Typescript | [yats.vim](https://github.com/HerringtonDarkholme/yats.vim) | 98 | | Dart | [dart-vim-plugin](https://github.com/dart-lang/dart-vim-plugin) | 99 | | JSX | [vim-jsx-pretty](https://github.com/MaxMEllon/vim-jsx-pretty) | 100 | | Markdown | [vim-markdown](https://github.com/tpope/vim-markdown) | 101 | 102 | Windows terminal 103 | ---------------- 104 | 105 | Matched __Windows Terminal__ color scheme: 106 | 107 | ```json 108 | { 109 | "background": "#272822", 110 | "black": "#272822", 111 | "blue": "#AE81FF", 112 | "brightBlack": "#383A3E", 113 | "brightBlue": "#AE81FF", 114 | "brightCyan": "#66D9EF", 115 | "brightGreen": "#A6E22D", 116 | "brightPurple": "#F92772", 117 | "brightRed": "#F92772", 118 | "brightWhite": "#E8E8E3", 119 | "brightYellow": "#E6DB74", 120 | "cursorColor": "#E8E8E3", 121 | "cyan": "#66D9EF", 122 | "foreground": "#E8E8E3", 123 | "green": "#A6E22D", 124 | "name": "Monokai", 125 | "purple": "#F92772", 126 | "red": "#E73C50", 127 | "selectionBackground": "#FFFFFF", 128 | "white": "#D8D8D3", 129 | "yellow": "#FD9720" 130 | } 131 | ``` 132 | 133 | Screenshots 134 | ----------- 135 | 136 | _With treesitter_ 137 | 138 | ![with treesitter](screenshots/with-treesitter.png) 139 | 140 | _With other syntax plugins_ 141 | 142 | ![typescript](screenshots/typescript.png) 143 | 144 | ![html](screenshots/html.png) 145 | -------------------------------------------------------------------------------- /colors/monokai.vim: -------------------------------------------------------------------------------- 1 | " File: monokai.vim 2 | " Maintainer: Crusoe Xia (crusoexia) 3 | " URL: https://github.com/crusoexia/vim-monokai 4 | " License: MIT 5 | " 6 | " The colour palette is from http://www.colourlovers.com/ 7 | 8 | " Initialization 9 | " -------------- 10 | 11 | if !has("gui_running") && &t_Co < 256 12 | finish 13 | endif 14 | 15 | if ! exists("g:monokai_gui_italic") 16 | let g:monokai_gui_italic = 0 17 | endif 18 | 19 | if ! exists("g:monokai_term_italic") 20 | let g:monokai_term_italic = 0 21 | endif 22 | 23 | let g:monokai_termcolors = 256 " does not support 16 color term right now. 24 | 25 | set background=dark 26 | hi clear 27 | 28 | if exists("syntax_on") 29 | syntax reset 30 | endif 31 | 32 | let colors_name = "monokai" 33 | 34 | function! s:h(group, style) 35 | let s:ctermformat = "NONE" 36 | let s:guiformat = "NONE" 37 | if has_key(a:style, "format") 38 | let s:ctermformat = a:style.format 39 | let s:guiformat = a:style.format 40 | endif 41 | if g:monokai_term_italic == 0 42 | let s:ctermformat = substitute(s:ctermformat, ",italic", "", "") 43 | let s:ctermformat = substitute(s:ctermformat, "italic,", "", "") 44 | let s:ctermformat = substitute(s:ctermformat, "italic", "", "") 45 | endif 46 | if g:monokai_gui_italic == 0 47 | let s:guiformat = substitute(s:guiformat, ",italic", "", "") 48 | let s:guiformat = substitute(s:guiformat, "italic,", "", "") 49 | let s:guiformat = substitute(s:guiformat, "italic", "", "") 50 | endif 51 | if g:monokai_termcolors == 16 52 | let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm16 : "NONE") 53 | let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm16 : "NONE") 54 | else 55 | let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") 56 | let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") 57 | end 58 | execute "highlight" a:group 59 | \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") 60 | \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") 61 | \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") 62 | \ "gui=" (!empty(s:guiformat) ? s:guiformat : "NONE") 63 | \ "ctermfg=" . l:ctermfg 64 | \ "ctermbg=" . l:ctermbg 65 | \ "cterm=" (!empty(s:ctermformat) ? s:ctermformat : "NONE") 66 | endfunction 67 | 68 | " Palettes 69 | " -------- 70 | 71 | let s:white = { "gui": "#E8E8E3", "cterm": "252" } 72 | let s:white2 = { "gui": "#d8d8d3", "cterm": "250" } 73 | let s:black = { "gui": "#272822", "cterm": "234" } 74 | let s:lightblack = { "gui": "#2D2E27", "cterm": "235" } 75 | let s:lightblack2 = { "gui": "#383a3e", "cterm": "236" } 76 | let s:lightblack3 = { "gui": "#3f4145", "cterm": "237" } 77 | let s:darkblack = { "gui": "#211F1C", "cterm": "233" } 78 | let s:br_grey = { "gui": "#a1a29c", "cterm": "243" } 79 | let s:grey = { "gui": "#8F908A", "cterm": "243" } 80 | let s:lightgrey = { "gui": "#575b61", "cterm": "237" } 81 | let s:darkgrey = { "gui": "#64645e", "cterm": "239" } 82 | let s:warmgrey = { "gui": "#75715E", "cterm": "59" } 83 | 84 | let s:pink = { "gui": "#F92772", "cterm": "197" } 85 | let s:green = { "gui": "#A6E22D", "cterm": "148" } 86 | let s:aqua = { "gui": "#66d9ef", "cterm": "81" } 87 | let s:yellow = { "gui": "#E6DB74", "cterm": "186" } 88 | let s:orange = { "gui": "#FD9720", "cterm": "208" } 89 | let s:purple = { "gui": "#ae81ff", "cterm": "141" } 90 | let s:red = { "gui": "#e73c50", "cterm": "196" } 91 | let s:purered = { "gui": "#ff0000", "cterm": "52" } 92 | let s:darkred = { "gui": "#5f0000", "cterm": "52" } 93 | 94 | let s:addfg = { "gui": "#d7ffaf", "cterm": "193" } 95 | let s:addbg = { "gui": "#5f875f", "cterm": "65" } 96 | let s:delfg = { "gui": "#ff8b8b", "cterm": "210" } 97 | let s:delbg = { "gui": "#f75f5f", "cterm": "124" } 98 | let s:changefg = { "gui": "#d7d7ff", "cterm": "189" } 99 | let s:changebg = { "gui": "#5f5f87", "cterm": "60" } 100 | 101 | let s:cyan = { "gui": "#A1EFE4", "cterm": "159" } 102 | let s:br_green = { "gui": "#9EC400", "cterm": "148" } 103 | let s:br_yellow = { "gui": "#E7C547", "cterm": "221" } 104 | let s:br_blue = { "gui": "#7AA6DA", "cterm": "110" } 105 | let s:br_purple = { "gui": "#B77EE0", "cterm": "140" } 106 | let s:br_cyan = { "gui": "#54CED6", "cterm": "80" } 107 | let s:br_white = { "gui": "#FFFFFF", "cterm": "16" } 108 | 109 | " Highlighting 110 | " ------------ 111 | 112 | " editor 113 | call s:h("Normal", { "fg": s:white, "bg": s:black }) 114 | call s:h("ColorColumn", { "bg": s:lightblack }) 115 | call s:h("Conceal", { "fg": s:grey }) 116 | call s:h("Cursor", { "fg": s:black, "bg": s:white }) 117 | call s:h("CursorColumn", { "bg": s:lightblack2 }) 118 | call s:h("CursorLine", { "bg": s:lightblack2 }) 119 | call s:h("NonText", { "fg": s:lightgrey }) 120 | call s:h("Visual", { "bg": s:lightgrey }) 121 | call s:h("Search", { "fg": s:black, "bg": s:yellow }) 122 | call s:h("MatchParen", { "fg": s:purple, "format": "bold" }) 123 | call s:h("Question", { "fg": s:yellow }) 124 | call s:h("ModeMsg", { "fg": s:yellow }) 125 | call s:h("MoreMsg", { "fg": s:yellow }) 126 | call s:h("ErrorMsg", { "fg": s:black, "bg": s:red, "format": "standout" }) 127 | call s:h("WarningMsg", { "fg": s:red }) 128 | call s:h("VertSplit", { "fg": s:darkgrey, "bg": s:darkblack }) 129 | call s:h("WinSeparator", { "fg": s:darkgrey, "bg": s:darkblack }) 130 | call s:h("LineNr", { "fg": s:grey, "bg": s:lightblack }) 131 | call s:h("CursorLineNr", { "fg": s:orange, "bg": s:lightblack }) 132 | call s:h("SignColumn", { "bg": s:lightblack }) 133 | 134 | " statusline 135 | call s:h("StatusLine", { "fg": s:black, "bg": s:lightgrey }) 136 | call s:h("StatusLineNC", { "fg": s:lightgrey, "bg": s:darkblack }) 137 | call s:h("TabLine", { "fg": s:lightgrey, "bg": s:lightblack }) 138 | call s:h("TabLineSel", { "fg": s:darkblack, "bg": s:warmgrey, "format": "bold" }) 139 | call s:h("TabLineFill", { "bg": s:lightblack }) 140 | call s:h("User1", { "fg": s:yellow, "bg": s:lightgrey, "format": "bold" }) 141 | call s:h("User2", { "fg": s:orange, "bg": s:lightgrey, "format": "bold" }) 142 | call s:h("User3", { "fg": s:purple, "bg": s:lightgrey, "format": "bold" }) 143 | call s:h("User4", { "fg": s:aqua, "bg": s:lightgrey, "format": "bold" }) 144 | 145 | " spell 146 | call s:h("SpellBad", { "fg": s:red, "format": "undercurl" }) 147 | call s:h("SpellCap", { "fg": s:purple, "format": "underline" }) 148 | call s:h("SpellRare", { "fg": s:aqua, "format": "underline" }) 149 | call s:h("SpellLocal", { "fg": s:pink, "format": "underline" }) 150 | 151 | " misc 152 | call s:h("SpecialKey", { "fg": s:pink }) 153 | call s:h("Title", { "fg": s:yellow }) 154 | call s:h("Directory", { "fg": s:aqua }) 155 | 156 | " diff 157 | call s:h("DiffAdd", { "fg": s:addfg, "bg": s:addbg }) 158 | call s:h("DiffDelete", { "fg": s:delfg, "bg": s:delbg }) 159 | call s:h("DiffChange", { "fg": s:changefg, "bg": s:changebg }) 160 | call s:h("DiffText", { "fg": s:black, "bg": s:aqua }) 161 | 162 | " fold 163 | call s:h("Folded", { "fg": s:warmgrey, "bg": s:darkblack }) 164 | call s:h("FoldColumn", { "bg": s:darkblack }) 165 | " Incsearch" 166 | 167 | " popup menu 168 | call s:h("Pmenu", { "fg": s:white2, "bg": s:darkblack }) 169 | call s:h("PmenuSel", { "fg": s:aqua, "bg": s:darkblack, "format": "reverse,bold" }) 170 | call s:h("PmenuThumb", { "fg": s:lightblack, "bg": s:grey }) 171 | " PmenuSbar" 172 | 173 | " floating 174 | call s:h("NormalFloat", { "fg": s:white2, "bg": s:darkblack }) 175 | 176 | " Generic Syntax Highlighting 177 | " --------------------------- 178 | 179 | call s:h("Constant", { "fg": s:purple }) 180 | call s:h("Number", { "fg": s:purple }) 181 | call s:h("Float", { "fg": s:purple }) 182 | call s:h("Boolean", { "fg": s:purple }) 183 | call s:h("Character", { "fg": s:yellow }) 184 | call s:h("String", { "fg": s:yellow }) 185 | 186 | call s:h("Type", { "fg": s:aqua }) 187 | call s:h("Structure", { "fg": s:aqua }) 188 | call s:h("StorageClass", { "fg": s:aqua }) 189 | call s:h("Typedef", { "fg": s:aqua }) 190 | 191 | call s:h("Identifier", { "fg": s:green }) 192 | call s:h("Function", { "fg": s:green }) 193 | 194 | call s:h("Statement", { "fg": s:pink }) 195 | call s:h("Operator", { "fg": s:pink }) 196 | call s:h("Label", { "fg": s:pink }) 197 | call s:h("Keyword", { "fg": s:pink }) 198 | " Conditional" 199 | " Repeat" 200 | " Exception" 201 | 202 | call s:h("PreProc", { "fg": s:green }) 203 | call s:h("Include", { "fg": s:pink }) 204 | call s:h("Define", { "fg": s:pink }) 205 | call s:h("Macro", { "fg": s:green }) 206 | call s:h("PreCondit", { "fg": s:green }) 207 | 208 | call s:h("Special", { "fg": s:purple }) 209 | call s:h("SpecialChar", { "fg": s:pink }) 210 | call s:h("Delimiter", { "fg": s:pink }) 211 | call s:h("SpecialComment",{ "fg": s:aqua }) 212 | call s:h("Tag", { "fg": s:pink }) 213 | " Debug" 214 | 215 | call s:h("Todo", { "fg": s:orange, "format": "bold,italic" }) 216 | call s:h("Comment", { "fg": s:warmgrey, "format": "italic" }) 217 | 218 | call s:h("Underlined", { "fg": s:green }) 219 | call s:h("Ignore", {}) 220 | call s:h("Error", { "fg": s:purered, "bg": s:lightblack3 }) 221 | 222 | " TreeSitter 223 | " Refer to `:h treesitter-highlight-groups` 224 | " ---------- 225 | 226 | if has('nvim') 227 | call s:h("@variable.builtin", { "fg": s:purple }) 228 | call s:h("@variable.parameter", { "fg": s:orange }) 229 | call s:h("@variable.parameter.builtin", { "fg": s:orange }) 230 | "call s:h("@variable.member", { "fg": s:yellow }) 231 | 232 | call s:h("@constant", { "fg": s:orange }) 233 | call s:h("@constant.builtin", { "fg": s:aqua }) 234 | 235 | call s:h("@string.regexp", { "fg": s:yellow }) 236 | 237 | call s:h("@character.special", { "fg": s:purple }) 238 | 239 | call s:h("@type", { "fg": s:aqua, "format": "italic" }) 240 | call s:h("@type.builtin", { "fg": s:aqua }) 241 | 242 | call s:h("@attribute", { "fg": s:purple }) 243 | call s:h("@attribute.builtin", { "fg": s:purple }) 244 | 245 | call s:h("@function", { "fg": s:white }) 246 | call s:h("@function.call", { "fg": s:green }) 247 | call s:h("@function.method", { "fg": s:green }) 248 | call s:h("@function.method.call", { "fg": s:green }) 249 | call s:h("@constructor", { "fg": s:aqua, "format": "italic" }) 250 | 251 | call s:h("@keyword", { "fg": s:pink }) 252 | 253 | call s:h("@punctuation.delimiter", { "fg": s:white }) 254 | call s:h("@punctuation.bracket", { "fg": s:white }) 255 | call s:h("@punctuation.special", { "fg": s:purple }) 256 | 257 | call s:h("@tag", { "fg": s:pink }) 258 | call s:h("@tag.builtin", { "fg": s:pink }) 259 | call s:h("@tag.attribute", { "fg": s:green }) 260 | call s:h("@tag.delimiter", { "fg": s:white }) 261 | endif 262 | 263 | " NerdTree 264 | " -------- 265 | 266 | call s:h("NERDTreeOpenable", { "fg": s:yellow }) 267 | call s:h("NERDTreeClosable", { "fg": s:yellow }) 268 | call s:h("NERDTreeHelp", { "fg": s:yellow }) 269 | call s:h("NERDTreeBookmarksHeader", { "fg": s:pink }) 270 | call s:h("NERDTreeBookmarksLeader", { "fg": s:black }) 271 | call s:h("NERDTreeBookmarkName", { "fg": s:yellow }) 272 | call s:h("NERDTreeCWD", { "fg": s:pink }) 273 | call s:h("NERDTreeUp", { "fg": s:white }) 274 | call s:h("NERDTreeDirSlash", { "fg": s:grey }) 275 | call s:h("NERDTreeDir", { "fg": s:grey }) 276 | 277 | " Syntastic 278 | " --------- 279 | 280 | hi! link SyntasticErrorSign Error 281 | call s:h("SyntasticWarningSign", { "fg": s:lightblack, "bg": s:orange }) 282 | 283 | " coc 284 | " --- 285 | 286 | hi! link CocErrorSign Error 287 | call s:h("CocErrorHighlight", { "fg": s:red, "format": "undercurl" }) 288 | call s:h("CocErrorFloat", { "fg": s:purered, "bg": s:lightblack3 }) 289 | 290 | call s:h("CocWarningSign", { "fg": s:orange, "bg": s:lightblack }) 291 | call s:h("CocWarningHighlight", { "fg": s:orange, "format": "undercurl" }) 292 | call s:h("CocWarningFloat", { "fg": s:orange, "bg": s:lightblack3 }) 293 | 294 | call s:h("CocInfoSign", { "fg": s:orange, "bg": s:lightblack3 }) 295 | call s:h("CocInfoHighlight", { "fg": s:orange, "format": "undercurl" }) 296 | call s:h("CocInfoFloat", { "fg": s:aqua, "bg": s:lightblack3 }) 297 | 298 | call s:h("CocHintSign", { "fg": s:orange, "bg": s:lightblack3 }) 299 | call s:h("CocHintHighlight", { "fg": s:orange, "format": "undercurl" }) 300 | call s:h("CocHintFloat", { "fg": s:aqua, "bg": s:lightblack3 }) 301 | 302 | " Language highlight 303 | " ------------------ 304 | 305 | " Java properties 306 | call s:h("jpropertiesIdentifier", { "fg": s:pink }) 307 | 308 | " Vim command 309 | call s:h("vimCommand", { "fg": s:pink }) 310 | 311 | " Javascript 312 | call s:h("jsClassKeyword", { "fg": s:aqua, "format": "italic" }) 313 | call s:h("jsGlobalObjects", { "fg": s:aqua, "format": "italic" }) 314 | call s:h("jsFuncName", { "fg": s:green }) 315 | call s:h("jsThis", { "fg": s:orange, "format": "italic" }) 316 | call s:h("jsObjectKey", { "fg": s:white }) 317 | call s:h("jsFunctionKey", { "fg": s:green }) 318 | call s:h("jsPrototype", { "fg": s:aqua }) 319 | call s:h("jsExceptions", { "fg": s:aqua }) 320 | call s:h("jsFutureKeys", { "fg": s:aqua }) 321 | call s:h("jsBuiltins", { "fg": s:aqua }) 322 | call s:h("jsStatic", { "fg": s:aqua }) 323 | call s:h("jsSuper", { "fg": s:orange, "format": "italic" }) 324 | call s:h("jsFuncArgRest", { "fg": s:purple, "format": "italic" }) 325 | call s:h("jsFuncArgs", { "fg": s:orange, "format": "italic" }) 326 | call s:h("jsStorageClass", { "fg": s:aqua, "format": "italic" }) 327 | call s:h("jsDocTags", { "fg": s:aqua, "format": "italic" }) 328 | call s:h("jsFunction", { "fg": s:aqua, "format": "italic" }) 329 | 330 | " Typescript 331 | call s:h("typescriptBraces", { "fg": s:white }) 332 | call s:h("typescriptParens", { "fg": s:white }) 333 | call s:h("typescriptOperator", { "fg": s:pink }) 334 | call s:h("typescriptEndColons", { "fg": s:white }) 335 | call s:h("typescriptModule", { "fg": s:aqua }) 336 | call s:h("typescriptPredefinedType", { "fg": s:aqua }) 337 | call s:h("typescriptImport", { "fg": s:pink }) 338 | call s:h("typescriptExport", { "fg": s:pink }) 339 | call s:h("typescriptIdentifier", { "fg": s:orange, "format": "italic" }) 340 | call s:h("typescriptVariable", { "fg": s:aqua }) 341 | call s:h("typescriptCastKeyword", { "fg": s:pink }) 342 | call s:h("typescriptAmbientDeclaration", { "fg": s:pink }) 343 | call s:h("typescriptTestGlobal", { "fg": s:pink }) 344 | call s:h("typescriptFuncKeyword", { "fg": s:aqua }) 345 | call s:h("typescriptFuncTypeArrow", { "fg": s:aqua }) 346 | call s:h("typescriptFuncType", { "fg": s:orange, "format": "italic" }) 347 | call s:h("typescriptFuncName", { "fg": s:green }) 348 | call s:h("typescriptArrowFuncArg", { "fg": s:orange, "format": "italic" }) 349 | call s:h("typescriptCall", { "fg": s:orange, "format": "italic" }) 350 | call s:h("typescriptClassKeyword", { "fg": s:aqua, "format": "italic" }) 351 | call s:h("typescriptClassName", { "fg": s:white }) 352 | call s:h("typescriptClassHeritage", { "fg": s:white }) 353 | call s:h("typescriptInterfaceKeyword", { "fg": s:aqua, "format": "italic" }) 354 | call s:h("typescriptInterfaceName", { "fg": s:white }) 355 | call s:h("typescriptObjectLabel", { "fg": s:green }) 356 | call s:h("typescriptMember", { "fg": s:green }) 357 | call s:h("typescriptTypeReference", { "fg": s:purple, "format": "italic" }) 358 | call s:h("typescriptTypeParameter", { "fg": s:purple, "format": "italic" }) 359 | call s:h("typescriptOptionalMark", { "fg": s:pink }) 360 | call s:h("tsxAttrib", { "fg": s:green }) 361 | call s:h("tsxTagName", { "fg": s:pink }) 362 | 363 | " Dart 364 | call s:h("dartStorageClass", { "fg": s:pink }) 365 | call s:h("dartExceptions", { "fg": s:pink }) 366 | call s:h("dartConditional", { "fg": s:pink }) 367 | call s:h("dartRepeat", { "fg": s:pink }) 368 | call s:h("dartTypedef", { "fg": s:pink }) 369 | call s:h("dartKeyword", { "fg": s:pink }) 370 | call s:h("dartConstant", { "fg": s:purple }) 371 | call s:h("dartBoolean", { "fg": s:purple }) 372 | call s:h("dartCoreType", { "fg": s:aqua }) 373 | call s:h("dartType", { "fg": s:aqua }) 374 | 375 | " HTML 376 | call s:h("htmlTag", { "fg": s:white }) 377 | call s:h("htmlEndTag", { "fg": s:white }) 378 | call s:h("htmlTagName", { "fg": s:pink }) 379 | call s:h("htmlArg", { "fg": s:green }) 380 | call s:h("htmlSpecialChar", { "fg": s:purple }) 381 | 382 | " XML 383 | call s:h("xmlTag", { "fg": s:pink }) 384 | call s:h("xmlEndTag", { "fg": s:pink }) 385 | call s:h("xmlTagName", { "fg": s:orange }) 386 | call s:h("xmlAttrib", { "fg": s:green }) 387 | 388 | " JSX 389 | call s:h("jsxTag", { "fg": s:white }) 390 | call s:h("jsxCloseTag", { "fg": s:white }) 391 | call s:h("jsxCloseString", { "fg": s:white }) 392 | call s:h("jsxPunct", { "fg": s:white }) 393 | call s:h("jsxClosePunct", { "fg": s:white }) 394 | call s:h("jsxTagName", { "fg": s:pink }) 395 | call s:h("jsxComponentName", { "fg": s:pink }) 396 | call s:h("jsxAttrib", { "fg": s:green }) 397 | call s:h("jsxEqual", { "fg": s:white }) 398 | call s:h("jsxBraces", { "fg": s:white }) 399 | 400 | " CSS 401 | call s:h("cssProp", { "fg": s:yellow }) 402 | call s:h("cssUIAttr", { "fg": s:yellow }) 403 | call s:h("cssFunctionName", { "fg": s:aqua }) 404 | call s:h("cssColor", { "fg": s:purple }) 405 | call s:h("cssPseudoClassId", { "fg": s:purple }) 406 | call s:h("cssClassName", { "fg": s:green }) 407 | call s:h("cssValueLength", { "fg": s:purple }) 408 | call s:h("cssCommonAttr", { "fg": s:pink }) 409 | call s:h("cssBraces" , { "fg": s:white }) 410 | call s:h("cssClassNameDot", { "fg": s:pink }) 411 | call s:h("cssURL", { "fg": s:orange, "format": "underline,italic" }) 412 | 413 | " LESS 414 | call s:h("lessVariable", { "fg": s:green }) 415 | 416 | " SASS 417 | call s:h("sassMixing", { "fg": s:aqua }) 418 | call s:h("sassMixin", { "fg": s:aqua }) 419 | call s:h("sassFunctionDecl", { "fg": s:aqua }) 420 | call s:h("sassReturn", { "fg": s:aqua }) 421 | call s:h("sassClass", { "fg": s:green }) 422 | call s:h("sassClassChar", { "fg": s:pink }) 423 | call s:h("sassIdChar", { "fg": s:pink }) 424 | call s:h("sassControl", { "fg": s:aqua }) 425 | call s:h("sassFor", { "fg": s:aqua }) 426 | 427 | " ruby 428 | call s:h("rubyInterpolationDelimiter", {}) 429 | call s:h("rubyInstanceVariable", {}) 430 | call s:h("rubyGlobalVariable", {}) 431 | call s:h("rubyClassVariable", {}) 432 | call s:h("rubyPseudoVariable", {}) 433 | call s:h("rubyFunction", { "fg": s:green }) 434 | call s:h("rubyStringDelimiter", { "fg": s:yellow }) 435 | call s:h("rubyRegexp", { "fg": s:yellow }) 436 | call s:h("rubyRegexpDelimiter", { "fg": s:yellow }) 437 | call s:h("rubySymbol", { "fg": s:purple }) 438 | call s:h("rubyEscape", { "fg": s:purple }) 439 | call s:h("rubyInclude", { "fg": s:pink }) 440 | call s:h("rubyOperator", { "fg": s:pink }) 441 | call s:h("rubyControl", { "fg": s:pink }) 442 | call s:h("rubyClass", { "fg": s:pink }) 443 | call s:h("rubyDefine", { "fg": s:pink }) 444 | call s:h("rubyException", { "fg": s:pink }) 445 | call s:h("rubyRailsARAssociationMethod",{ "fg": s:orange }) 446 | call s:h("rubyRailsARMethod", { "fg": s:orange }) 447 | call s:h("rubyRailsRenderMethod", { "fg": s:orange }) 448 | call s:h("rubyRailsMethod", { "fg": s:orange }) 449 | call s:h("rubyConstant", { "fg": s:aqua }) 450 | call s:h("rubyBlockArgument", { "fg": s:orange }) 451 | call s:h("rubyBlockParameter", { "fg": s:orange }) 452 | 453 | " eruby 454 | call s:h("erubyDelimiter", {}) 455 | call s:h("erubyRailsMethod", { "fg": s:aqua }) 456 | 457 | " c 458 | call s:h("cLabel", { "fg": s:pink }) 459 | call s:h("cStructure", { "fg": s:aqua }) 460 | call s:h("cStorageClass", { "fg": s:pink }) 461 | call s:h("cInclude", { "fg": s:pink }) 462 | call s:h("cDefine", { "fg": s:pink }) 463 | call s:h("cSpecial", { "fg": s:purple }) 464 | 465 | " Markdown 466 | call s:h("markdownCode", { "fg": s:purple, "format": "italic" } ) 467 | call s:h("markdownListMarker", { "fg": s:purple } ) 468 | 469 | " vim-notes 470 | call s:h("notesTitle", { "fg": s:aqua, "format": "bold" } ) 471 | call s:h("notesAtxMarker", { "fg": s:pink, "format": "italic,bold" } ) 472 | call s:h("notesShortHeading", { "fg": s:white, "format": "bold" } ) 473 | call s:h("notesListBullet", { "fg": s:purple } ) 474 | call s:h("notesListNumber", { "fg": s:purple, "format": "italic" } ) 475 | call s:h("notesBold", { "format": "bold" } ) 476 | call s:h("notesDoneMarker", { "fg": s:green } ) 477 | 478 | " Terminal Colors 479 | " --------------- 480 | if has('nvim') 481 | let g:terminal_color_0 = s:black.gui 482 | let g:terminal_color_1 = s:red.gui 483 | let g:terminal_color_2 = s:green.gui 484 | let g:terminal_color_3 = s:yellow.gui 485 | let g:terminal_color_4 = s:aqua.gui 486 | let g:terminal_color_5 = s:purple.gui 487 | let g:terminal_color_6 = s:cyan.gui 488 | let g:terminal_color_7 = s:white.gui 489 | let g:terminal_color_8 = s:darkgrey.gui 490 | let g:terminal_color_9 = s:pink.gui 491 | let g:terminal_color_10 = s:br_green.gui 492 | let g:terminal_color_11 = s:br_yellow.gui 493 | let g:terminal_color_12 = s:br_blue.gui 494 | let g:terminal_color_13 = s:br_purple.gui 495 | let g:terminal_color_14 = s:br_cyan.gui 496 | let g:terminal_color_15 = s:br_white.gui 497 | else 498 | let g:terminal_ansi_colors = [ 499 | \ s:black.gui, 500 | \ s:red.gui, 501 | \ s:green.gui, 502 | \ s:yellow.gui, 503 | \ s:aqua.gui, 504 | \ s:purple.gui, 505 | \ s:cyan.gui, 506 | \ s:white.gui, 507 | \ s:darkgrey.gui, 508 | \ s:pink.gui, 509 | \ s:br_green.gui, 510 | \ s:br_yellow.gui, 511 | \ s:br_blue.gui, 512 | \ s:br_purple.gui, 513 | \ s:br_cyan.gui, 514 | \ s:br_white.gui] 515 | endif 516 | -------------------------------------------------------------------------------- /screenshots/html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crusoexia/vim-monokai/ccaaf4bf983e828e46d47288d0278316486d718b/screenshots/html.png -------------------------------------------------------------------------------- /screenshots/typescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crusoexia/vim-monokai/ccaaf4bf983e828e46d47288d0278316486d718b/screenshots/typescript.png -------------------------------------------------------------------------------- /screenshots/with-treesitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crusoexia/vim-monokai/ccaaf4bf983e828e46d47288d0278316486d718b/screenshots/with-treesitter.png --------------------------------------------------------------------------------