" Vim Color File " Name: plastic.vim " Description: VSCode Plastic theme vim/neovim port " Author: Florian Prz " Repository: https://github.com/flrnprz/plastic.vim/ " License: The MIT License (MIT) " Init {{{ scriptencoding utf-8 set background=dark hi clear if exists('syntax_on') syntax reset endif let g:colors_name = 'plastic' " Highlighting function (inspiration from https://github.com/chriskempson/base16-vim) fun! hi(group, fg, bg, attr, sp) if !empty(a:fg) exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . a:fg.cterm256 endif if !empty(a:bg) exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . a:bg.cterm256 endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif if !empty(a:sp) exec "hi " . a:group . " guisp=" . a:sp.gui endif endfun "}}} " colors definition {{{ let s:red = {'gui': '#e06c75', 'cterm256': '204'} let s:green = { 'gui': '#98c379', 'cterm256': '114'} let s:yellow = { 'gui': '#e5c07b', 'cterm256': '180'} let s:whisky = { 'gui': '#d19a66', 'cterm256': '173' } let s:blue = { 'gui': '#61afef', 'cterm256': '39'} let s:purple = { 'gui': '#af98e6', 'cterm256': '170'} let s:aqua = { 'gui': '#56b6c2', 'cterm256': '38'} let s:white = { 'gui': '#d7d7d7', 'cterm256': '145'} let s:black = { 'gui': '#181a1f', 'cterm256': '234'} let s:visual_black = { 'gui': 'NONE', 'cterm256': 'NONE'} let s:background = {'gui': '#21252b', 'cterm256': '235'} let s:foreground = {'gui': '#a9b2c3', 'cterm256': '235'} let s:grey = { 'gui': '#abb2bf', 'cterm256': '59' } let s:punctuation = { 'gui': '#7c8696', 'cterm256': '238' } let s:none = {'gui': 'NONE', 'cterm256': 'NONE'} " }}} "-------------------- " Syntax Definitions "-------------------- " hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE, SPECIAL) call hi('Normal', s:white, s:background, 'none', {}) " UI {{{ call hi('Cursor', s:none, s:none, 'inverse', {}) hi link lCursor Cursor hi link CursorIM Cursor call hi('CursorLine', s:white, s:none, 'bold', {}) call hi('EndOfBuffer', s:whisky, s:none, 'none', {}) call hi('Conceal', s:blue, s:none, 'none', {}) call hi('CursorColumn', s:none, s:blue, 'none', {}) call hi('ColorColumn', s:none, s:punctuation, 'none', {}) call hi('FoldColumn', s:punctuation, s:background, 'none', {}) call hi('SignColumn', s:none, s:background, 'none', {}) call hi('VertSplit', s:grey, s:background, 'none', {}) call hi('LineNr', s:punctuation, s:background, 'none', {}) call hi('CursorLineNr', s:punctuation, s:background, 'none', {}) call hi('DiffAdd', s:black, s:green, 'none', {}) call hi('DiffChange', s:black, s:purple, 'none', {}) call hi('DiffDelete', s:black, s:red, 'none', {}) call hi('DiffText', s:black, s:aqua, 'none', {}) call hi('ErrorMsg', s:red, s:background, 'bold', {}) call hi('ModeMsg', s:yellow, s:none, 'bold', {}) call hi('MoreMsg', s:aqua, s:none, 'bold', {}) call hi('WarningMsg', s:whisky, s:none, 'italic', {}) call hi('Noise', s:punctuation, s:none, 'none', {}) call hi('NonText', s:whisky, s:none, 'none', {}) call hi('Folded', s:grey, s:none, 'none', {}) call hi('IncSearch', s:yellow, s:black, 'none', {}) call hi('Search', s:yellow, s:background, 'reverse', {}) call hi('Pmenu', s:none, s:black, 'none', {}) call hi('PmenuSel', s:black, s:white, 'none', {}) call hi('Question', s:white, s:background, 'bold', {}) call hi('MatchParen', s:blue, s:none, 'bold', {}) call hi('Directory', s:white, s:background, 'bold', {}) call hi('QuickFixLine', s:black, s:yellow, 'none', {}) call hi('SpecialKey', s:purple, s:none, 'none', {}) call hi('SpellBad', s:red, s:none, 'undercurl', s:red) call hi('SpellCap', s:none, s:none, 'undercurl', {}) call hi('SpellLocal', s:none, s:none, 'undercurl', {}) call hi('SpellRare', s:none, s:none, 'undercurl', {}) call hi('StatusLine', s:white, s:background, 'none', {}) call hi('StatusLineNC', s:white, s:background, 'none', {}) hi link StatusLineTerm StatusLine hi link StatusLineTermNC StatusLineNC call hi('TabLine', s:white, s:black, 'none', {}) hi link TabLineFill TabLine call hi('TabLineSel', s:whisky, s:black, 'none', {}) call hi('Title', s:white, s:none, 'none', {}) call hi('Visual', s:black, s:white, 'none', {}) hi link VisualNOS Visual call hi('TabLine', s:white, s:black, 'none', {}) call hi('WildMenu', s:black, s:white, 'bold', {}) "}}} "---------------------------------------------------- " Syntax groups and naming convenions " http://vimdoc.sourceforge.net/htmldoc/syntax.html "---------------------------------------------------- " {{{ call hi('Comment', s:grey, s:none, 'italic', {}) call hi('Constant', s:aqua, s:none, 'none', {}) call hi('String', s:green, s:none, 'none', {}) hi link Character Constant hi link Number Constant hi link Boolean Constant hi link Float Number call hi('Identifier', s:white, s:none, 'none', {}) call hi('Function', s:whisky, s:none, 'none', {}) call hi('Statement', s:red, s:none, 'none', {}) hi link Conditional Statement call hi('PreProc', s:aqua, s:none, 'none', {}) call hi('Type', s:blue, s:none, 'none', {}) call hi('Special', s:punctuation, s:none, 'none', {}) call hi('Underlined', s:blue, s:none, 'underline', {}) call hi('Ignore', s:none, s:none, 'none', {}) call hi('Error', s:red, s:black, 'undercurl', {}) call hi('Todo', s:aqua, s:none, 'italic', {}) "}}} "-------------------------- " Language specific syntax "-------------------------- " HTML {{{ call hi('htmlTag', s:punctuation, s:none, 'none', {}) hi link htmlEndTag htmlTag call hi('htmlTagName', s:blue, s:none, 'none', {}) call hi('htmlArg', s:whisky, s:none, 'none', {}) call hi('htmlTitle', s:white, s:none, 'none', {}) "}}} " XML {{{ call hi('xmlRegion', s:white, s:none, 'none', {}) hi link xmlTag xmlRegion call hi('xmlTagName', s:yellow, s:none, 'none', {}) call hi('xmlEndTag', s:punctuation, s:none, 'none', {}) " }}} " Css {{{ call hi('cssAttrComma', s:punctuation, s:none, 'none', {}) call hi('cssAttributeSelector', s:green, s:none, 'none', {}) call hi('cssBraces', s:punctuation, s:none, 'none', {}) call hi('cssClassName', s:aqua, s:none, 'none', {}) call hi('cssDefinition', s:purple, s:none, 'none', {}) call hi('cssFontAttr', s:whisky, s:none, 'none', {}) call hi('cssFontDescriptor', s:purple, s:none, 'none', {}) call hi('cssFunctionName', s:blue, s:none, 'none', {}) call hi('cssIdentifier', s:blue, s:none, 'none', {}) call hi('cssImportant', s:purple, s:none, 'none', {}) call hi('cssInclude', s:white, s:none, 'none', {}) call hi('cssIncludeKeyword', s:red, s:none, 'none', {}) call hi('cssMediaType', s:aqua, s:none, 'none', {}) call hi('cssProp', s:white, s:none, 'none', {}) call hi('cssPseudoClassId', s:whisky, s:none, 'none', {}) call hi('cssTagName', s:whisky, s:none, 'none', {}) call hi('cssSelectorOp', s:purple, s:none, 'none', {}) call hi('cssSelectorOp2', s:purple, s:none, 'none', {}) "}}} " Javascript {{{ call hi('jsImport', s:red, s:none, 'none', {}) hi link jsExport jsImport hi link jsFrom jsImport hi link jsExportDefault jsExport hi link jsArrowFunction jsImport call hi('jsStorageClass', s:blue, s:none, 'none', {}) call hi('jsClassKeyword', s:blue, s:none, 'none', {}) call hi('jsExtendsKeyword', s:blue, s:none, 'none', {}) call hi('jsThis', s:yellow, s:none, 'none', {}) "}}} " JSX {{{ " https://github.com/MaxMEllon/vim-jsx-pretty call hi('jsxTagName', s:yellow, s:none, 'none', {}) call hi('jsxPunct', s:punctuation, s:none, 'none', {}) call hi('jsClosePunct', s:punctuation, s:none, 'none', {}) call hi('jsxAttrib', s:whisky, s:none, 'none', {}) call hi('jsxComponentName', s:blue, s:none, 'none', {}) hi link jsxCloseString jsClosePunct "}}} " Golang {{{ call hi('goDirective', s:aqua, s:none, 'none', {}) call hi('goConstants', s:white, s:none, 'none', {}) call hi('goDeclaration', s:red, s:none, 'none', {}) call hi('goDeclType', s:whisky, s:none, 'none', {}) call hi('goBuiltins', s:whisky, s:none, 'none', {}) call hi('goFunctionCall', s:whisky, s:none, 'none', {}) call hi('goVarAssign', s:white, s:none, 'none', {}) hi link goVarDefs goVarAssign "}}} " Markdown {{{ call hi('markdownCode', s:green, s:none, 'none', {}) hi link markdownCodeBlock markdownCode hi link markdownCodeDelimiter markdownCode call hi('markdownHeadingDelimiter', s:whisky, s:none, 'none', {}) call hi('markdownRule', s:punctuation, s:none, 'none', {}) call hi('markdownHeadingRule', s:punctuation, s:none, 'none', {}) call hi('markdownH1', s:whisky, s:none, 'none', {}) hi link markdownH2 markdownH1 hi link markdownH3 markdownH1 hi link markdownH4 markdownH1 hi link markdownH5 markdownH1 hi link markdownH6 markdownH1 call hi('markdownIdDelimiter', s:purple, s:none, 'none', {}) call hi('markdownId', s:purple, s:none, 'none', {}) call hi('markdownBlockquote', s:aqua, s:none, 'none', {}) call hi('markdowItalic', s:none, s:none, 'italic', {}) call hi('markdownBold', s:none, s:none, 'bold', {}) call hi('markdownListMarker', s:blue, s:none, 'none', {}) call hi('markdownOrderedListMarker', s:blue, s:none, 'none', {}) call hi('markdownIdDeclaration', s:blue, s:none, 'none', {}) call hi('markdownLinkText', s:blue, s:none, 'none', {}) call hi('markdownLinkDelimiter', s:white, s:none, 'none', {}) call hi('markdownUrl', s:purple, s:none, 'none', {}) "}}} " NERDTree {{{ call hi('NERDTreeDir', s:blue, s:none, 'none', {}) call hi('NERDTreeDirSlash', s:whisky, s:none, 'none', {}) call hi('NERDTreeFile', s:aqua, s:none, 'none', {}) call hi('NERDTreeExecFile', s:green, s:none, 'none', {}) call hi('NERDTreeOpenable', s:whisky, s:none, 'none', {}) call hi('NERDTreeClosable', s:red, s:none, 'none', {}) call hi('NERDTreeCWD', s:blue, s:none, 'bold', {}) call hi('NERDTreeUp', s:punctuation, s:none, 'none', {}) " }}} " vim: fdm=marker ts=2 sts=2 sw=2 fdl=0: