Re-Organize Dotfiles into Separate Stow Packages

This commit is contained in:
Sravan Balaji
2024-05-27 08:51:51 -04:00
parent 0dc5db0fcb
commit cb63752e5d
196 changed files with 594 additions and 2478 deletions

View File

@@ -0,0 +1 @@
doc/tags

View File

@@ -0,0 +1,39 @@
### [Vim](http://www.vim.org/)
#### Install
These are the default instructions using Vim 8's `|packages|` feature.
1. Create theme folder (in case you don't have yet):
```
mkdir -p ~/.vim/pack/themes/start
```
2. Copy the `vim` folder and rename to "dracula_pro":
```
cp -r vim ~/.vim/pack/themes/start/dracula_pro
```
#### Activate
1. Create configuration file (in case you don't have yet):
```
vim ~/.vimrc
```
2. Edit the `~/.vimrc` file with the following content:
```
packadd! dracula_pro
syntax enable
let g:dracula_colorterm = 0
colorscheme dracula_pro
```
P.S.: You need a 256-color or truecolor terminal and you may want one that supports xterm sequences for :terminal.

View File

@@ -0,0 +1,45 @@
if dracula_pro#should_abort()
finish
endif
" Fzf: {{{
if exists('g:loaded_fzf') && ! exists('g:fzf_colors')
let g:fzf_colors = {
\ 'fg': ['fg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Search'],
\ 'fg+': ['fg', 'Normal'],
\ 'bg+': ['bg', 'Normal'],
\ 'hl+': ['fg', 'DraculaOrange'],
\ 'info': ['fg', 'DraculaPurple'],
\ 'border': ['fg', 'Ignore'],
\ 'prompt': ['fg', 'DraculaGreen'],
\ 'pointer': ['fg', 'Exception'],
\ 'marker': ['fg', 'Keyword'],
\ 'spinner': ['fg', 'Label'],
\ 'header': ['fg', 'Comment'],
\}
endif
"}}}
" ALE: {{{
if exists('g:ale_enabled')
hi! link ALEError DraculaErrorLine
hi! link ALEWarning DraculaWarnLine
hi! link ALEInfo DraculaInfoLine
hi! link ALEErrorSign DraculaRed
hi! link ALEWarningSign DraculaOrange
hi! link ALEInfoSign DraculaCyan
hi! link ALEVirtualTextError Comment
hi! link ALEVirtualTextWarning Comment
endif
" }}}
" CtrlP: {{{
if exists('g:loaded_ctrlp')
hi! link CtrlPMatch IncSearch
hi! link CtrlPBufferHid Normal
endif
" }}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,15 @@
if dracula_pro#should_abort('css')
finish
endif
hi! link cssAttrComma Delimiter
hi! link cssAttrRegion DraculaPink
hi! link cssAttributeSelector DraculaGreenItalic
hi! link cssBraces Delimiter
hi! link cssFunctionComma Delimiter
hi! link cssNoise DraculaPink
hi! link cssProp DraculaCyan
hi! link cssPseudoClass DraculaPink
hi! link cssPseudoClassId DraculaGreenItalic
hi! link cssUnitDecorators DraculaPink
hi! link cssVendor DraculaGreenItalic

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('gitcommit')
finish
endif
" The following two are misnomers. Colors are correct.
hi! link diffFile DraculaGreen
hi! link diffNewFile DraculaRed
hi! link diffAdded DraculaGreen
hi! link diffLine DraculaCyanItalic
hi! link diffRemoved DraculaRed

View File

@@ -0,0 +1,9 @@
if dracula_pro#should_abort('html')
finish
endif
hi! link htmlTag DraculaFg
hi! link htmlArg DraculaGreenItalic
hi! link htmlTitle DraculaFg
hi! link htmlH1 DraculaFg
hi! link htmlSpecialChar DraculaPurple

View File

@@ -0,0 +1,25 @@
if dracula_pro#should_abort('javascript')
finish
endif
hi! link javaScriptBraces Delimiter
hi! link javaScriptNumber Constant
hi! link javaScriptNull Constant
hi! link javaScriptFunction Keyword
" pangloss/vim-javascript {{{
hi! link jsArrowFunction Operator
hi! link jsClassMethodType Keyword
hi! link jsDestructuringAssignment DraculaOrangeItalic
hi! link jsDocParam DraculaOrangeItalic
hi! link jsDocTags Keyword
hi! link jsDocType Type
hi! link jsDocTypeBrackets DraculaCyan
hi! link jsFuncArgOperator Operator
hi! link jsFunction Keyword
hi! link jsTemplateBraces Special
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,6 @@
if dracula_pro#should_abort('json')
finish
endif
hi! link jsonKeyword DraculaCyan
hi! link jsonKeywordMatch DraculaPink

View File

@@ -0,0 +1,50 @@
if dracula_pro#should_abort('markdown', 'mkd')
finish
endif
if b:current_syntax ==# 'mkd'
" plasticboy/vim-markdown {{{1
hi! link htmlBold DraculaOrangeBold
hi! link htmlBoldItalic DraculaOrangeBoldItalic
hi! link htmlH1 DraculaPurpleBold
hi! link htmlItalic DraculaYellowItalic
hi! link mkdBlockquote DraculaYellowItalic
hi! link mkdBold DraculaOrangeBold
hi! link mkdBoldItalic DraculaOrangeBoldItalic
hi! link mkdCode DraculaGreen
hi! link mkdCodeEnd DraculaGreen
hi! link mkdCodeStart DraculaGreen
hi! link mkdHeading DraculaPurpleBold
hi! link mkdInlineUrl DraculaLink
hi! link mkdItalic DraculaYellowItalic
hi! link mkdLink DraculaPink
hi! link mkdListItem DraculaCyan
hi! link mkdRule DraculaComment
hi! link mkdUrl DraculaLink
"}}}1
elseif b:current_syntax ==# 'markdown'
" Builtin: {{{1
hi! link markdownBlockquote DraculaCyan
hi! link markdownBold DraculaOrangeBold
hi! link markdownBoldItalic DraculaOrangeBoldItalic
hi! link markdownCodeBlock DraculaGreen
hi! link markdownCode DraculaGreen
hi! link markdownCodeDelimiter DraculaGreen
hi! link markdownH1 DraculaPurpleBold
hi! link markdownH2 markdownH1
hi! link markdownH3 markdownH1
hi! link markdownH4 markdownH1
hi! link markdownH5 markdownH1
hi! link markdownH6 markdownH1
hi! link markdownHeadingDelimiter markdownH1
hi! link markdownHeadingRule markdownH1
hi! link markdownItalic DraculaYellowItalic
hi! link markdownLinkText DraculaPink
hi! link markdownListMarker DraculaCyan
hi! link markdownOrderedListMarker DraculaCyan
hi! link markdownRule DraculaComment
hi! link markdownUrl DraculaLink
"}}}
endif
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,7 @@
if dracula_pro#should_abort('ocaml')
finish
endif
hi! link ocamlModule Type
hi! link ocamlModPath Normal
hi! link ocamlLabel DraculaOrangeItalic

View File

@@ -0,0 +1,38 @@
if dracula_pro#should_abort('perl')
finish
endif
" Regex
hi! link perlMatchStartEnd DraculaRed
" Builtin functions
hi! link perlOperator DraculaCyan
hi! link perlStatementFiledesc DraculaCyan
hi! link perlStatementFiles DraculaCyan
hi! link perlStatementFlow DraculaCyan
hi! link perlStatementHash DraculaCyan
hi! link perlStatementIOfunc DraculaCyan
hi! link perlStatementIPC DraculaCyan
hi! link perlStatementList DraculaCyan
hi! link perlStatementMisc DraculaCyan
hi! link perlStatementNetwork DraculaCyan
hi! link perlStatementNumeric DraculaCyan
hi! link perlStatementProc DraculaCyan
hi! link perlStatementPword DraculaCyan
hi! link perlStatementRegexp DraculaCyan
hi! link perlStatementScalar DraculaCyan
hi! link perlStatementSocket DraculaCyan
hi! link perlStatementTime DraculaCyan
hi! link perlStatementVector DraculaCyan
" Highlighting for quoting constructs, tied to existing option in vim-perl
if get(g:, 'perl_string_as_statement', 0)
hi! link perlStringStartEnd DraculaRed
endif
" Signatures
hi! link perlSignature DraculaOrangeItalic
hi! link perlSubPrototype DraculaOrangeItalic
" Hash keys
hi! link perlVarSimpleMemberName DraculaPurple

View File

@@ -0,0 +1,10 @@
if dracula_pro#should_abort('php')
finish
endif
hi! link phpClass Type
hi! link phpClasses Type
hi! link phpDocTags DraculaCyanItalic
hi! link phpFunction Function
hi! link phpParent Normal
hi! link phpSpecialFunction DraculaCyan

View File

@@ -0,0 +1,13 @@
if dracula_pro#should_abort('plantuml')
finish
endif
hi! link plantumlClassPrivate SpecialKey
hi! link plantumlClassProtected DraculaOrange
hi! link plantumlClassPublic Function
hi! link plantumlColonLine String
hi! link plantumlDirectedOrVerticalArrowLR Constant
hi! link plantumlDirectedOrVerticalArrowRL Constant
hi! link plantumlHorizontalArrow Constant
hi! link plantumlSkinParamKeyword DraculaCyan
hi! link plantumlTypeKeyword Keyword

View File

@@ -0,0 +1,11 @@
if dracula_pro#should_abort('python')
finish
endif
hi! link pythonBuiltinObj Type
hi! link pythonBuiltinObject Type
hi! link pythonBuiltinType Type
hi! link pythonClassVar DraculaPurpleItalic
hi! link pythonExClass Type
hi! link pythonNone Type
hi! link pythonRun Comment

View File

@@ -0,0 +1,16 @@
if dracula_pro#should_abort('ruby')
finish
endif
if ! exists('g:ruby_operators')
let g:ruby_operators=1
endif
hi! link rubyBlockArgument DraculaOrangeItalic
hi! link rubyBlockParameter DraculaOrangeItalic
hi! link rubyCurlyBlock DraculaPink
hi! link rubyGlobalVariable DraculaPurple
hi! link rubyInstanceVariable DraculaPurpleItalic
hi! link rubyInterpolationDelimiter DraculaPink
hi! link rubyRegexpDelimiter DraculaRed
hi! link rubyStringDelimiter DraculaYellow

View File

@@ -0,0 +1,5 @@
if dracula_pro#should_abort('rust')
finish
endif
hi! link rustCommentLineDoc Comment

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('sass')
finish
endif
hi! link sassClass cssClassName
hi! link sassClassChar cssClassNameDot
hi! link sassId cssIdentifier
hi! link sassIdChar cssIdentifier
hi! link sassInterpolationDelimiter DraculaPink
hi! link sassMixinName Function
hi! link sassProperty cssProp
hi! link sassVariableAssignment Operator

View File

@@ -0,0 +1,8 @@
if dracula_pro#should_abort('bash', 'ksh', 'posix', 'sh')
finish
endif
hi! link shCommandSub NONE
hi! link shEscape DraculaRed
hi! link shParen NONE
hi! link shParenError NONE

View File

@@ -0,0 +1,17 @@
if dracula_pro#should_abort('tex')
finish
endif
hi! link texBeginEndName DraculaOrangeItalic
hi! link texBoldItalStyle DraculaOrangeBoldItalic
hi! link texBoldStyle DraculaOrangeBold
hi! link texInputFile DraculaOrangeItalic
hi! link texItalStyle DraculaYellowItalic
hi! link texLigature DraculaPurple
hi! link texMath DraculaPurple
hi! link texMathMatcher DraculaPurple
hi! link texMathSymbol DraculaPurple
hi! link texRefZone DraculaBgDarker
hi! link texSpecialChar DraculaPurple
hi! link texSubscripts DraculaPurple
hi! link texTitle DraculaFgBold

View File

@@ -0,0 +1,57 @@
if dracula_pro#should_abort('typescript', 'typescriptreact')
finish
endif
" HerringtonDarkholme/yats.vim {{{
hi! link typescriptAliasDeclaration Type
hi! link typescriptArrayMethod Function
hi! link typescriptArrowFunc Operator
hi! link typescriptArrowFuncArg DraculaOrangeItalic
hi! link typescriptAssign Operator
hi! link typescriptBOMWindowProp Constant
hi! link typescriptBinaryOp Operator
hi! link typescriptBraces Delimiter
hi! link typescriptCall typescriptArrowFuncArg
hi! link typescriptClassHeritage Type
hi! link typescriptClassName Type
hi! link typescriptDateMethod DraculaCyan
hi! link typescriptDateStaticMethod Function
hi! link typescriptDecorator DraculaGreenItalic
hi! link typescriptDefaultParam Operator
hi! link typescriptES6SetMethod DraculaCyan
hi! link typescriptEndColons Delimiter
hi! link typescriptEnum Type
hi! link typescriptEnumKeyword Keyword
hi! link typescriptFuncComma Delimiter
hi! link typescriptFuncKeyword Keyword
hi! link typescriptFuncType DraculaOrangeItalic
hi! link typescriptFuncTypeArrow Operator
hi! link typescriptGlobal Type
hi! link typescriptGlobalMethod DraculaCyan
hi! link typescriptGlobalObjects Type
hi! link typescriptIdentifier DraculaPurpleItalic
hi! link typescriptInterfaceHeritage Type
hi! link typescriptInterfaceName Type
hi! link typescriptInterpolationDelimiter Keyword
hi! link typescriptKeywordOp Keyword
hi! link typescriptLogicSymbols Operator
hi! link typescriptMember Identifier
hi! link typescriptMemberOptionality Special
hi! link typescriptObjectColon Special
hi! link typescriptObjectLabel Identifier
hi! link typescriptObjectSpread Operator
hi! link typescriptOperator Operator
hi! link typescriptParamImpl DraculaOrangeItalic
hi! link typescriptParens Delimiter
hi! link typescriptPredefinedType Type
hi! link typescriptRestOrSpread Operator
hi! link typescriptTernaryOp Operator
hi! link typescriptTypeAnnotation Special
hi! link typescriptTypeCast Operator
hi! link typescriptTypeParameter DraculaOrangeItalic
hi! link typescriptTypeReference Type
hi! link typescriptUnaryOp Operator
hi! link typescriptVariable Keyword
" }}}

View File

@@ -0,0 +1,10 @@
if dracula_pro#should_abort('typescriptreact')
finish
endif
runtime! syntax/typescript.vim
hi! link tsxAttrib DraculaGreenItalic
hi! link tsxEqual Operator
hi! link tsxIntrinsicTagName Keyword
hi! link tsxTagName Type

View File

@@ -0,0 +1,14 @@
if dracula_pro#should_abort('vim')
finish
endif
hi! link vimAutoCmdSfxList Type
hi! link vimAutoEventList Type
hi! link vimEnvVar Constant
hi! link vimFunction Function
hi! link vimHiBang Keyword
hi! link vimOption Type
hi! link vimSetMod Keyword
hi! link vimSetSep Delimiter
hi! link vimUserAttrbCmpltFunc Function
hi! link vimUserFunc Function

View File

@@ -0,0 +1,13 @@
if dracula_pro#should_abort('xml')
finish
endif
hi! link xmlAttrib DraculaGreenItalic
hi! link xmlEqual Operator
hi! link xmlTag Delimiter
hi! link xmlTagName Statement
" Fixes missing highlight over end tags
syn region xmlTagName
\ matchgroup=xmlTag start=+</[^ /!?<>"']\@=+
\ matchgroup=xmlTag end=+>+

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('yaml')
finish
endif
hi! link yamlAlias DraculaGreenItalicUnderline
hi! link yamlAnchor DraculaPinkItalic
hi! link yamlBlockMappingKey DraculaCyan
hi! link yamlFlowCollection DraculaPink
hi! link yamlFlowIndicator Delimiter
hi! link yamlNodeTag DraculaPink
hi! link yamlPlainScalar DraculaYellow

View File

@@ -0,0 +1,150 @@
" Helpers: {{{
" Takes a foreground color name, background color name, and optionally one or
" more attr-list items as input, transforms it to the format accepted by
" airline#themes#generate_color_map and returns that value
func! s:clr(fg, bg, ...)
let l:fg = g:dracula_pro#palette[a:fg]
let l:bg = g:dracula_pro#palette[a:bg]
return [ l:fg[0], l:bg[0], l:fg[1], l:bg[1] ] +
\ filter(copy(a:000), 'type(v:val) == 1 && len(v:val) > 0')
endfunc
" Takes three ['fg', 'bg'] color lists and optionally a dictionary of extra
" key-value pairs and returns the value generated by
" airline#themes#generate_color_map after optionally merging the dictionary of
" extra key-value pairs.
"
" a:a -> airline_a, airline_x
" a:b -> airline_b, airline_y
" a:c -> airline_c, airline_z
func! s:color_map(a, b, c, ...)
if a:0 == 0
return call('airline#themes#generate_color_map', [call('s:clr', a:a), call('s:clr', a:b), call('s:clr', a:c)])
else
return call('extend', [ call('airline#themes#generate_color_map', [call('s:clr', a:a), call('s:clr', a:b), call('s:clr', a:c)]) ] + a:000)
endif
endfunc
"}}}
let g:airline#themes#dracula_pro#palette = {
\ 'normal': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'normal_modified': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'insert': s:color_map(
\ ['bg', 'green'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'insert_modified': s:color_map(
\ ['bg', 'green'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'replace': s:color_map(
\ ['bg', 'orange'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'replace_modified': s:color_map(
\ ['bg', 'orange'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'visual': s:color_map(
\ ['bg', 'yellow'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'visual_modified': s:color_map(
\ ['bg', 'yellow'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'inactive': s:color_map(
\ ['bg', 'comment'],
\ ['fg', 'bgdark'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'terminal': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_term': s:clr('fg', 'selection'),
\ },
\ ),
\}
" Extensions: {{{
" Tabline: {{{
if get(g:, 'airline#extensions#tabline#enabled', 0)
let g:airline#themes#dracula_pro#palette.tabline = {
\ 'airline_tabfill': s:clr('bg', 'bglight'),
\
\ 'airline_tab': s:clr('comment', 'bg'),
\ 'airline_tabsel': s:clr('bg', 'purple'),
\ 'airline_tabmod': s:clr('green', 'bg'),
\
\ 'airline_tab_right': s:clr('comment', 'bg'),
\ 'airline_tabsel_right': s:clr('fg', 'bg', ),
\ 'airline_tabmod_right': s:clr('green', 'bg'),
\}
endif
"}}}
" CtrlP: {{{2
if exists('g:loaded_ctrlp')
let g:airline#themes#dracula_pro#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
\ s:clr('fg', 'selection'),
\ s:clr('fg', 'comment'),
\ s:clr('fg', 'purple'),
\)
endif
"}}}2
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,57 @@
" Palette: {{{
let g:dracula_pro#palette = {}
let g:dracula_pro#palette.fg = ['#F8F8F2', 231]
let g:dracula_pro#palette.bglighter = ['#393649', 59]
let g:dracula_pro#palette.bglight = ['#2E2B3B', 59]
let g:dracula_pro#palette.bg = ['#22212C', 59]
let g:dracula_pro#palette.bgdark = ['#17161D', 17]
let g:dracula_pro#palette.bgdarker = ['#0B0B0F', 16]
let g:dracula_pro#palette.comment = ['#7970A9', 103]
let g:dracula_pro#palette.selection = ['#454158', 60]
let g:dracula_pro#palette.subtle = ['#424450', 60]
let g:dracula_pro#palette.cyan = ['#80FFEA', 159]
let g:dracula_pro#palette.green = ['#8AFF80', 157]
let g:dracula_pro#palette.orange = ['#FFCA80', 223]
let g:dracula_pro#palette.pink = ['#FF80BF', 218]
let g:dracula_pro#palette.purple = ['#9580FF', 147]
let g:dracula_pro#palette.red = ['#FF9580', 217]
let g:dracula_pro#palette.yellow = ['#FFFF80', 229]
"
" ANSI
"
let g:dracula_pro#palette.color_0 = '#454158'
let g:dracula_pro#palette.color_1 = '#FF9580'
let g:dracula_pro#palette.color_2 = '#8AFF80'
let g:dracula_pro#palette.color_3 = '#FFFF80'
let g:dracula_pro#palette.color_4 = '#9580FF'
let g:dracula_pro#palette.color_5 = '#FF80BF'
let g:dracula_pro#palette.color_6 = '#80FFEA'
let g:dracula_pro#palette.color_7 = '#F8F8F2'
let g:dracula_pro#palette.color_8 = '#7970A9'
let g:dracula_pro#palette.color_9 = '#FFAA99'
let g:dracula_pro#palette.color_10 = '#A2FF99'
let g:dracula_pro#palette.color_11 = '#FFFF99'
let g:dracula_pro#palette.color_12 = '#AA99FF'
let g:dracula_pro#palette.color_13 = '#FF99CC'
let g:dracula_pro#palette.color_14 = '#99FFEE'
let g:dracula_pro#palette.color_15 = '#FFFFFF'
" }}}
" Helper function that takes a variadic list of filetypes as args and returns
" whether or not the execution of the ftplugin should be aborted.
func! dracula_pro#should_abort(...)
if ! exists('g:colors_name') || g:colors_name !~# 'dracula_pro.*'
return 1
elseif a:0 > 0 && (! exists('b:current_syntax') || index(a:000, b:current_syntax) == -1)
return 1
endif
return 0
endfunction
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,35 @@
let s:black = g:dracula_pro#palette.bg
let s:gray = g:dracula_pro#palette.selection
let s:white = g:dracula_pro#palette.fg
let s:darkblue = g:dracula_pro#palette.comment
let s:cyan = g:dracula_pro#palette.cyan
let s:green = g:dracula_pro#palette.green
let s:orange = g:dracula_pro#palette.orange
let s:purple = g:dracula_pro#palette.purple
let s:red = g:dracula_pro#palette.red
let s:yellow = g:dracula_pro#palette.yellow
if exists('g:lightline')
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:purple ], [ s:cyan, s:gray ] ]
let s:p.normal.right = [ [ s:black, s:purple ], [ s:white, s:darkblue ] ]
let s:p.inactive.right = [ [ s:black, s:darkblue ], [ s:white, s:black ] ]
let s:p.inactive.left = [ [ s:cyan, s:black ], [ s:white, s:black ] ]
let s:p.insert.left = [ [ s:black, s:green ], [ s:cyan, s:gray ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:cyan, s:gray ] ]
let s:p.visual.left = [ [ s:black, s:orange ], [ s:cyan, s:gray ] ]
let s:p.normal.middle = [ [ s:white, s:gray ] ]
let s:p.inactive.middle = [ [ s:white, s:gray ] ]
let s:p.tabline.left = [ [ s:darkblue, s:gray ] ]
let s:p.tabline.tabsel = [ [ s:cyan, s:black ] ]
let s:p.tabline.middle = [ [ s:darkblue, s:gray ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:black ] ]
let s:p.normal.warning = [ [ s:yellow, s:black ] ]
let g:lightline#colorscheme#dracula_pro#palette = lightline#colorscheme#flatten(s:p)
endif
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#7970A9', 103]
let g:dracula_pro#palette.selection = ['#454158', 60]
let g:dracula_pro#palette.bglighter = ['#393649', 59]
let g:dracula_pro#palette.bglight = ['#2E2B3B', 59]
let g:dracula_pro#palette.bg = ['#22212C', 59]
let g:dracula_pro#palette.bgdark = ['#17161D', 17]
let g:dracula_pro#palette.bgdarker = ['#0B0B0F', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro'

View File

@@ -0,0 +1,301 @@
" Configuration: {{{
if v:version > 580
highlight clear
if exists('syntax_on')
syntax reset
endif
endif
let g:colors_name = 'dracula_pro'
if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256
finish
endif
" Palette: {{{2
let s:fg = g:dracula_pro#palette.fg
let s:bglighter = g:dracula_pro#palette.bglighter
let s:bglight = g:dracula_pro#palette.bglight
let s:bg = g:dracula_pro#palette.bg
let s:bgdark = g:dracula_pro#palette.bgdark
let s:bgdarker = g:dracula_pro#palette.bgdarker
let s:comment = g:dracula_pro#palette.comment
let s:selection = g:dracula_pro#palette.selection
let s:subtle = g:dracula_pro#palette.subtle
let s:cyan = g:dracula_pro#palette.cyan
let s:green = g:dracula_pro#palette.green
let s:orange = g:dracula_pro#palette.orange
let s:pink = g:dracula_pro#palette.pink
let s:purple = g:dracula_pro#palette.purple
let s:red = g:dracula_pro#palette.red
let s:yellow = g:dracula_pro#palette.yellow
let s:none = ['NONE', 'NONE']
if has('nvim')
for s:i in range(16)
let g:terminal_color_{s:i} = g:dracula_pro#palette['color_' . s:i]
endfor
endif
if has('terminal')
let g:terminal_ansi_colors = []
for s:i in range(16)
call add(g:terminal_ansi_colors, g:dracula_pro#palette['color_' . s:i])
endfor
endif
" }}}2
" User Configuration: {{{2
if !exists('g:dracula_bold')
let g:dracula_bold = 1
endif
if !exists('g:dracula_italic')
let g:dracula_italic = 1
endif
if !exists('g:dracula_underline')
let g:dracula_underline = 1
endif
if !exists('g:dracula_undercurl') && g:dracula_underline != 0
let g:dracula_undercurl = 1
endif
if !exists('g:dracula_inverse')
let g:dracula_inverse = 1
endif
if !exists('g:dracula_colorterm')
let g:dracula_colorterm = 1
endif
"}}}2
" Script Helpers: {{{2
let s:attrs = {
\ 'bold': g:dracula_bold == 1 ? 'bold' : 0,
\ 'italic': g:dracula_italic == 1 ? 'italic' : 0,
\ 'underline': g:dracula_underline == 1 ? 'underline' : 0,
\ 'undercurl': g:dracula_undercurl == 1 ? 'undercurl' : 0,
\ 'inverse': g:dracula_inverse == 1 ? 'inverse' : 0,
\}
function! s:h(scope, fg, ...) " bg, attr_list, special
let l:fg = copy(a:fg)
let l:bg = get(a:, 1, ['NONE', 'NONE'])
let l:attr_list = filter(get(a:, 2, ['NONE']), 'type(v:val) == 1')
let l:attrs = len(l:attr_list) > 0 ? join(l:attr_list, ',') : 'NONE'
" Falls back to coloring foreground group on terminals because
" nearly all do not support undercurl
let l:special = get(a:, 3, ['NONE', 'NONE'])
if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running')
let l:fg[0] = l:special[0]
let l:fg[1] = l:special[1]
endif
let l:hl_string = [
\ 'highlight!', a:scope,
\ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1],
\ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1],
\ 'gui=' . l:attrs, 'cterm=' . l:attrs,
\ 'guisp=' . l:special[0],
\]
execute join(l:hl_string, ' ')
endfunction
"}}}2
" Dracula Highlight Groups: {{{2
call s:h('DraculaBgLight', s:none, s:bglight)
call s:h('DraculaBgLighter', s:none, s:bglighter)
call s:h('DraculaBgDark', s:none, s:bgdark)
call s:h('DraculaBgDarker', s:none, s:bgdarker)
call s:h('DraculaFg', s:fg)
call s:h('DraculaFgUnderline', s:fg, s:none, [s:attrs.underline])
call s:h('DraculaFgBold', s:fg, s:none, [s:attrs.bold])
call s:h('DraculaComment', s:comment)
call s:h('DraculaCommentBold', s:comment, s:none, [s:attrs.bold])
call s:h('DraculaSelection', s:none, s:selection)
call s:h('DraculaSubtle', s:subtle)
call s:h('DraculaCyan', s:cyan)
call s:h('DraculaCyanItalic', s:cyan, s:none, [s:attrs.italic])
call s:h('DraculaGreen', s:green)
call s:h('DraculaGreenBold', s:green, s:none, [s:attrs.bold])
call s:h('DraculaGreenItalic', s:green, s:none, [s:attrs.italic])
call s:h('DraculaGreenItalicUnderline', s:green, s:none, [s:attrs.italic, s:attrs.underline])
call s:h('DraculaOrange', s:orange)
call s:h('DraculaOrangeBold', s:orange, s:none, [s:attrs.bold])
call s:h('DraculaOrangeItalic', s:orange, s:none, [s:attrs.italic])
call s:h('DraculaOrangeBoldItalic', s:orange, s:none, [s:attrs.bold, s:attrs.italic])
call s:h('DraculaOrangeInverse', s:bg, s:orange)
call s:h('DraculaPink', s:pink)
call s:h('DraculaPinkItalic', s:pink, s:none, [s:attrs.italic])
call s:h('DraculaPurple', s:purple)
call s:h('DraculaPurpleBold', s:purple, s:none, [s:attrs.bold])
call s:h('DraculaPurpleItalic', s:purple, s:none, [s:attrs.italic])
call s:h('DraculaRed', s:red)
call s:h('DraculaRedInverse', s:fg, s:red)
call s:h('DraculaYellow', s:yellow)
call s:h('DraculaYellowItalic', s:yellow, s:none, [s:attrs.italic])
call s:h('DraculaError', s:red, s:none, [], s:red)
call s:h('DraculaErrorLine', s:none, s:none, [s:attrs.undercurl], s:red)
call s:h('DraculaWarnLine', s:none, s:none, [s:attrs.undercurl], s:orange)
call s:h('DraculaInfoLine', s:none, s:none, [s:attrs.undercurl], s:cyan)
call s:h('DraculaTodo', s:cyan, s:none, [s:attrs.bold, s:attrs.inverse])
call s:h('DraculaSearch', s:green, s:none, [s:attrs.inverse])
call s:h('DraculaBoundary', s:comment, s:bgdark)
call s:h('DraculaLink', s:cyan, s:none, [s:attrs.underline])
call s:h('DraculaDiffChange', s:orange, s:none)
call s:h('DraculaDiffText', s:bg, s:orange)
call s:h('DraculaDiffDelete', s:red, s:bgdark)
" }}}2
" }}}
" User Interface: {{{
set background=dark
" Required as some plugins will overwrite
call s:h('Normal', s:fg, g:dracula_colorterm || has('gui_running') ? s:bg : s:none )
call s:h('StatusLine', s:none, s:bglighter, [s:attrs.bold])
call s:h('StatusLineNC', s:none, s:bglight)
call s:h('StatusLineTerm', s:none, s:bglighter, [s:attrs.bold])
call s:h('StatusLineTermNC', s:none, s:bglight)
call s:h('WildMenu', s:bg, s:purple, [s:attrs.bold])
call s:h('CursorLine', s:none, s:subtle)
hi! link ColorColumn DraculaBgDark
hi! link CursorColumn CursorLine
hi! link CursorLineNr DraculaYellow
hi! link DiffAdd DraculaGreen
hi! link DiffAdded DiffAdd
hi! link DiffChange DraculaDiffChange
hi! link DiffDelete DraculaDiffDelete
hi! link DiffRemoved DiffDelete
hi! link DiffText DraculaDiffText
hi! link Directory DraculaPurpleBold
hi! link ErrorMsg DraculaRedInverse
hi! link FoldColumn DraculaSubtle
hi! link Folded DraculaBoundary
hi! link IncSearch DraculaOrangeInverse
call s:h('LineNr', s:comment)
hi! link MoreMsg DraculaFgBold
hi! link NonText DraculaSubtle
hi! link Pmenu DraculaBgDark
hi! link PmenuSbar DraculaBgDark
hi! link PmenuSel DraculaSelection
hi! link PmenuThumb DraculaSelection
hi! link Question DraculaFgBold
hi! link Search DraculaSearch
call s:h('SignColumn', s:comment)
hi! link TabLine DraculaBoundary
hi! link TabLineFill DraculaBgDarker
hi! link TabLineSel Normal
hi! link Title DraculaGreenBold
hi! link VertSplit DraculaBoundary
hi! link Visual DraculaSelection
hi! link VisualNOS Visual
hi! link WarningMsg DraculaOrangeInverse
" }}}
" Syntax: {{{
" Required as some plugins will overwrite
call s:h('MatchParen', s:green, s:none, [s:attrs.underline])
call s:h('Conceal', s:cyan, s:none)
" Neovim uses SpecialKey for escape characters only. Vim uses it for that, plus whitespace.
if has('nvim')
hi! link SpecialKey DraculaRed
hi! link LspDiagnosticsUnderline DraculaFgUnderline
hi! link LspDiagnosticsInformation DraculaCyan
hi! link LspDiagnosticsHint DraculaCyan
hi! link LspDiagnosticsError DraculaError
hi! link LspDiagnosticsWarning DraculaOrange
hi! link LspDiagnosticsUnderlineError DraculaErrorLine
hi! link LspDiagnosticsUnderlineHint DraculaInfoLine
hi! link LspDiagnosticsUnderlineInformation DraculaInfoLine
hi! link LspDiagnosticsUnderlineWarning DraculaWarnLine
else
hi! link SpecialKey DraculaSubtle
endif
hi! link Comment DraculaComment
hi! link Underlined DraculaFgUnderline
hi! link Todo DraculaTodo
hi! link Error DraculaError
hi! link SpellBad DraculaErrorLine
hi! link SpellLocal DraculaWarnLine
hi! link SpellCap DraculaInfoLine
hi! link SpellRare DraculaInfoLine
hi! link Constant DraculaPurple
hi! link String DraculaYellow
hi! link Character DraculaPink
hi! link Number Constant
hi! link Boolean Constant
hi! link Float Constant
hi! link Identifier DraculaFg
hi! link Function DraculaGreen
hi! link Statement DraculaPink
hi! link Conditional DraculaPink
hi! link Repeat DraculaPink
hi! link Label DraculaPink
hi! link Operator DraculaPink
hi! link Keyword DraculaPink
hi! link Exception DraculaPink
hi! link PreProc DraculaPink
hi! link Include DraculaPink
hi! link Define DraculaPink
hi! link Macro DraculaPink
hi! link PreCondit DraculaPink
hi! link StorageClass DraculaPink
hi! link Structure DraculaPink
hi! link Typedef DraculaPink
hi! link Type DraculaCyanItalic
hi! link Delimiter DraculaFg
hi! link Special DraculaPink
hi! link SpecialComment DraculaCyanItalic
hi! link Tag DraculaCyan
hi! link helpHyperTextJump DraculaLink
hi! link helpCommand DraculaPurple
hi! link helpExample DraculaGreen
hi! link helpBacktick Special
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0 et:

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#70A99F', 109]
let g:dracula_pro#palette.selection = ['#415854', 66]
let g:dracula_pro#palette.bglighter = ['#364946', 59]
let g:dracula_pro#palette.bglight = ['#2B3B38', 59]
let g:dracula_pro#palette.bg = ['#212C2A', 59]
let g:dracula_pro#palette.bgdark = ['#161D1C', 23]
let g:dracula_pro#palette.bgdarker = ['#0B0F0E', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_blade'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#9F70A9', 139]
let g:dracula_pro#palette.selection = ['#544158', 96]
let g:dracula_pro#palette.bglighter = ['#463649', 59]
let g:dracula_pro#palette.bglight = ['#382B3B', 59]
let g:dracula_pro#palette.bg = ['#2A212C', 59]
let g:dracula_pro#palette.bgdark = ['#1C161D', 53]
let g:dracula_pro#palette.bgdarker = ['#0E0B0F', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_buffy'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#A99F70', 144]
let g:dracula_pro#palette.selection = ['#585441', 101]
let g:dracula_pro#palette.bglighter = ['#494636', 59]
let g:dracula_pro#palette.bglight = ['#3B382B', 59]
let g:dracula_pro#palette.bg = ['#2C2A21', 59]
let g:dracula_pro#palette.bgdark = ['#1D1C16', 58]
let g:dracula_pro#palette.bgdarker = ['#0F0E0B', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_lincoln'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#A97079', 138]
let g:dracula_pro#palette.selection = ['#584145', 95]
let g:dracula_pro#palette.bglighter = ['#493639', 59]
let g:dracula_pro#palette.bglight = ['#3B2B2E', 59]
let g:dracula_pro#palette.bg = ['#2C2122', 59]
let g:dracula_pro#palette.bgdark = ['#1D1617', 52]
let g:dracula_pro#palette.bgdarker = ['#0F0B0B', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_morbius'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#708CA9', 109]
let g:dracula_pro#palette.selection = ['#414D58', 66]
let g:dracula_pro#palette.bglighter = ['#161A1D', 23]
let g:dracula_pro#palette.bglight = ['#111417', 16]
let g:dracula_pro#palette.bg = ['#0B0D0F', 16]
let g:dracula_pro#palette.bgdark = ['#070809', 16]
let g:dracula_pro#palette.bgdarker = ['#000000', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_van_helsing'

View File

@@ -0,0 +1,146 @@
*dracula_pro.txt* For Vim version 8 Last change: 2020 Apr 27
*dracula-pro* *vim-dracula-pro*
|\ ,, ~
\\ _ || _ ~
/ \\ ,._-_ < \, _-_ \\ \\ || < \, -_-_ ,._-_ /'\\ ~
|| || || /-|| || || || || /-|| || \\ || || || ~
|| || || (( || || || || || (( || || || || || || ~
\\/ \\, \/\\ \\,/ \\/\\ \\ \/\\ ||-' \\, \\,/ ~
|/ ~
' ~
A premium dark theme for vim
================================================================================
CONTENTS *dracula-pro-contents*
1. Intro .............................................. |dracula-pro-intro|
2. Usage .............................................. |dracula-pro-usage|
3. Configuration .............................. |dracula-pro-configuration|
4. Personal Customization ..................... |dracula-pro-customization|
5. License .......................................... |dracula-pro-license|
6. Bugs ................................................ |dracula-pro-bugs|
7. Contributing ................................ |dracula-pro-contributing|
8. Credits .......................................... |dracula-pro-credits|
================================================================================
INTRO *dracula-pro-intro*
Dracula PRO is a vim plugin that contains
- a dark colorscheme for vim
- a similarly-themed colorscheme for the vim plugin airline
================================================================================
USAGE *dracula-pro-usage*
Install it with your favorite plugin manager, and then >
colorscheme dracula_pro
" or
colorscheme dracula_pro_variation
in your vimrc! See also |dracula-pro-runtimepath|.
If you are an airline user, you can also do >
let g:airline_theme='dracula_pro'
to have airline use Dracula.
*dracula-pro-runtimepath*
Note that dracula must be in your 'runtimepath' for this command to work
properly: Version 2.0 introduced autoload functionality for part of the
plugin, which doesn't work without 'runtimepath' properly set.
For users of Vim 8's |packages| feature, it suffices to put this in your vimrc:
packadd! dracula_pro
colorscheme dracula_pro
================================================================================
CONFIGURATION *dracula-pro-configuration*
There are a couple of variables used by Dracula that you might want to adjust
depending on your terminal's capabilities.
Default values are shown.
--------------------------------------------------------------------------------
In the following section, `1` signifies `on` and `0` signifies `off`.
* *g:dracula_bold*
Include bold attributes in highlighting >
let g:dracula_bold = 1
* *g:dracula_italic*
Include italic attributes in highlighting >
let g:dracula_italic = 1
* *g:dracula_underline*
Include underline attributes in highlighting >
let g:dracula_underline = 1
* *g:dracula_undercurl*
Include undercurl attributes in highlighting (only if underline enabled) >
let g:dracula_undercurl = 1
* *g:dracula_inverse*
Include inverse attributes in highlighting >
let g:dracula_inverse = 1
* *g:dracula_colorterm*
Include background fill colors >
let g:dracula_colorterm = 1
================================================================================
CUSTOMIZATION *dracula-pro-customization*
Like all colorschemes, Dracula PRO is easy to customize with |autocmd|. Make use
of the |ColorScheme| event as in the following examples.
It would be a good idea to put all of your personal changes in an |augroup|,
which you can do with the following code: >
augroup dracula_customization
au!
" autocmds...
augroup END
>
- To add underline styling to |hl-CursorLine|, you can use the following: >
autocmd ColorScheme dracula_pro* hi CursorLine cterm=underline term=underline
<
================================================================================
LICENSE *dracula-pro-license*
Copyright © 2020 Dracula Theme
EULA available at https://gum.co/dracula-pro
================================================================================
BUGS *dracula-pro-bugs*
At the time of this writing, no major bugs have been found.
If you find one and wish to report it, send an email to zeno@draculatheme.com
================================================================================
CONTRIBUTING *dracula-pro-contributing*
Want to submit a new feature, bugfix, or hack on Dracula PRO?
Send an email to zeno@draculatheme.com
Existing code determines style guidelines.
================================================================================
CREDITS *dracula-pro-credits*
Originally Created by:
- Derek S. (https://github.com/dsifford)
- D. Ben Knoble (https://github.com/benknoble)
Modified by:
- D. Ben Knoble (https://github.com/benknoble)
- Zeno Rocha (https://github.com/zenorocha)
Further information available at
https://draculatheme.com/pro
vim:tw=78:ts=8:ft=help:norl:

Binary file not shown.

View File

@@ -0,0 +1 @@
doc/tags

View File

@@ -0,0 +1,63 @@
### [Vim](http://www.vim.org/)
#### Install
These are the default instructions using Vim 8's `|packages|` feature.
1. Create theme folder (in case you don't have yet):
```
mkdir -p ~/.vim/pack/themes/start
```
In case you're using NeoVim:
```
mkdir -p ~/.local/share/nvim/site/pack/themes/start
```
2. Copy the `vim` folder and rename to "dracula_pro":
```
cp -r vim ~/.vim/pack/themes/start/dracula_pro
```
**NeoVim**
In case you're using NeoVim, here are the instructions.
1. Create theme folder (in case you don't have yet):
```
mkdir -p ~/.local/share/nvim/site/pack/themes/start
```
2. Copy the `vim` folder and rename to "dracula_pro":
```
cp -r vim ~/.local/share/nvim/site/pack/themes/start/dracula_pro
```
#### Activate
1. Create configuration file (in case you don't have yet):
```
vim ~/.vimrc
```
Or `.nvimrc` if you're using NeoVim.
2. Edit the `~/.vimrc` file with the following content:
```
packadd! dracula_pro
syntax enable
let g:dracula_colorterm = 0
colorscheme dracula_pro
```
P.S.: You need a 256-color or truecolor terminal and you may want one that supports xterm sequences for :terminal.

View File

@@ -0,0 +1,45 @@
if dracula_pro#should_abort()
finish
endif
" Fzf: {{{
if exists('g:loaded_fzf') && ! exists('g:fzf_colors')
let g:fzf_colors = {
\ 'fg': ['fg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Search'],
\ 'fg+': ['fg', 'Normal'],
\ 'bg+': ['bg', 'Normal'],
\ 'hl+': ['fg', 'DraculaOrange'],
\ 'info': ['fg', 'DraculaPurple'],
\ 'border': ['fg', 'Ignore'],
\ 'prompt': ['fg', 'DraculaGreen'],
\ 'pointer': ['fg', 'Exception'],
\ 'marker': ['fg', 'Keyword'],
\ 'spinner': ['fg', 'Label'],
\ 'header': ['fg', 'Comment'],
\}
endif
"}}}
" ALE: {{{
if exists('g:ale_enabled')
hi! link ALEError DraculaErrorLine
hi! link ALEWarning DraculaWarnLine
hi! link ALEInfo DraculaInfoLine
hi! link ALEErrorSign DraculaRed
hi! link ALEWarningSign DraculaOrange
hi! link ALEInfoSign DraculaCyan
hi! link ALEVirtualTextError Comment
hi! link ALEVirtualTextWarning Comment
endif
" }}}
" CtrlP: {{{
if exists('g:loaded_ctrlp')
hi! link CtrlPMatch IncSearch
hi! link CtrlPBufferHid Normal
endif
" }}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,15 @@
if dracula_pro#should_abort('css')
finish
endif
hi! link cssAttrComma Delimiter
hi! link cssAttrRegion DraculaPink
hi! link cssAttributeSelector DraculaGreenItalic
hi! link cssBraces Delimiter
hi! link cssFunctionComma Delimiter
hi! link cssNoise DraculaPink
hi! link cssProp DraculaCyan
hi! link cssPseudoClass DraculaPink
hi! link cssPseudoClassId DraculaGreenItalic
hi! link cssUnitDecorators DraculaPink
hi! link cssVendor DraculaGreenItalic

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('gitcommit')
finish
endif
" The following two are misnomers. Colors are correct.
hi! link diffFile DraculaGreen
hi! link diffNewFile DraculaRed
hi! link diffAdded DraculaGreen
hi! link diffLine DraculaCyanItalic
hi! link diffRemoved DraculaRed

View File

@@ -0,0 +1,9 @@
if dracula_pro#should_abort('html')
finish
endif
hi! link htmlTag DraculaFg
hi! link htmlArg DraculaGreenItalic
hi! link htmlTitle DraculaFg
hi! link htmlH1 DraculaFg
hi! link htmlSpecialChar DraculaPurple

View File

@@ -0,0 +1,25 @@
if dracula_pro#should_abort('javascript')
finish
endif
hi! link javaScriptBraces Delimiter
hi! link javaScriptNumber Constant
hi! link javaScriptNull Constant
hi! link javaScriptFunction Keyword
" pangloss/vim-javascript {{{
hi! link jsArrowFunction Operator
hi! link jsClassMethodType Keyword
hi! link jsDestructuringAssignment DraculaOrangeItalic
hi! link jsDocParam DraculaOrangeItalic
hi! link jsDocTags Keyword
hi! link jsDocType Type
hi! link jsDocTypeBrackets DraculaCyan
hi! link jsFuncArgOperator Operator
hi! link jsFunction Keyword
hi! link jsTemplateBraces Special
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,6 @@
if dracula_pro#should_abort('json')
finish
endif
hi! link jsonKeyword DraculaCyan
hi! link jsonKeywordMatch DraculaPink

View File

@@ -0,0 +1,50 @@
if dracula_pro#should_abort('markdown', 'mkd')
finish
endif
if b:current_syntax ==# 'mkd'
" plasticboy/vim-markdown {{{1
hi! link htmlBold DraculaOrangeBold
hi! link htmlBoldItalic DraculaOrangeBoldItalic
hi! link htmlH1 DraculaPurpleBold
hi! link htmlItalic DraculaYellowItalic
hi! link mkdBlockquote DraculaYellowItalic
hi! link mkdBold DraculaOrangeBold
hi! link mkdBoldItalic DraculaOrangeBoldItalic
hi! link mkdCode DraculaGreen
hi! link mkdCodeEnd DraculaGreen
hi! link mkdCodeStart DraculaGreen
hi! link mkdHeading DraculaPurpleBold
hi! link mkdInlineUrl DraculaLink
hi! link mkdItalic DraculaYellowItalic
hi! link mkdLink DraculaPink
hi! link mkdListItem DraculaCyan
hi! link mkdRule DraculaComment
hi! link mkdUrl DraculaLink
"}}}1
elseif b:current_syntax ==# 'markdown'
" Builtin: {{{1
hi! link markdownBlockquote DraculaCyan
hi! link markdownBold DraculaOrangeBold
hi! link markdownBoldItalic DraculaOrangeBoldItalic
hi! link markdownCodeBlock DraculaGreen
hi! link markdownCode DraculaGreen
hi! link markdownCodeDelimiter DraculaGreen
hi! link markdownH1 DraculaPurpleBold
hi! link markdownH2 markdownH1
hi! link markdownH3 markdownH1
hi! link markdownH4 markdownH1
hi! link markdownH5 markdownH1
hi! link markdownH6 markdownH1
hi! link markdownHeadingDelimiter markdownH1
hi! link markdownHeadingRule markdownH1
hi! link markdownItalic DraculaYellowItalic
hi! link markdownLinkText DraculaPink
hi! link markdownListMarker DraculaCyan
hi! link markdownOrderedListMarker DraculaCyan
hi! link markdownRule DraculaComment
hi! link markdownUrl DraculaLink
"}}}
endif
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,7 @@
if dracula_pro#should_abort('ocaml')
finish
endif
hi! link ocamlModule Type
hi! link ocamlModPath Normal
hi! link ocamlLabel DraculaOrangeItalic

View File

@@ -0,0 +1,38 @@
if dracula_pro#should_abort('perl')
finish
endif
" Regex
hi! link perlMatchStartEnd DraculaRed
" Builtin functions
hi! link perlOperator DraculaCyan
hi! link perlStatementFiledesc DraculaCyan
hi! link perlStatementFiles DraculaCyan
hi! link perlStatementFlow DraculaCyan
hi! link perlStatementHash DraculaCyan
hi! link perlStatementIOfunc DraculaCyan
hi! link perlStatementIPC DraculaCyan
hi! link perlStatementList DraculaCyan
hi! link perlStatementMisc DraculaCyan
hi! link perlStatementNetwork DraculaCyan
hi! link perlStatementNumeric DraculaCyan
hi! link perlStatementProc DraculaCyan
hi! link perlStatementPword DraculaCyan
hi! link perlStatementRegexp DraculaCyan
hi! link perlStatementScalar DraculaCyan
hi! link perlStatementSocket DraculaCyan
hi! link perlStatementTime DraculaCyan
hi! link perlStatementVector DraculaCyan
" Highlighting for quoting constructs, tied to existing option in vim-perl
if get(g:, 'perl_string_as_statement', 0)
hi! link perlStringStartEnd DraculaRed
endif
" Signatures
hi! link perlSignature DraculaOrangeItalic
hi! link perlSubPrototype DraculaOrangeItalic
" Hash keys
hi! link perlVarSimpleMemberName DraculaPurple

View File

@@ -0,0 +1,10 @@
if dracula_pro#should_abort('php')
finish
endif
hi! link phpClass Type
hi! link phpClasses Type
hi! link phpDocTags DraculaCyanItalic
hi! link phpFunction Function
hi! link phpParent Normal
hi! link phpSpecialFunction DraculaCyan

View File

@@ -0,0 +1,13 @@
if dracula_pro#should_abort('plantuml')
finish
endif
hi! link plantumlClassPrivate SpecialKey
hi! link plantumlClassProtected DraculaOrange
hi! link plantumlClassPublic Function
hi! link plantumlColonLine String
hi! link plantumlDirectedOrVerticalArrowLR Constant
hi! link plantumlDirectedOrVerticalArrowRL Constant
hi! link plantumlHorizontalArrow Constant
hi! link plantumlSkinParamKeyword DraculaCyan
hi! link plantumlTypeKeyword Keyword

View File

@@ -0,0 +1,11 @@
if dracula_pro#should_abort('python')
finish
endif
hi! link pythonBuiltinObj Type
hi! link pythonBuiltinObject Type
hi! link pythonBuiltinType Type
hi! link pythonClassVar DraculaPurpleItalic
hi! link pythonExClass Type
hi! link pythonNone Type
hi! link pythonRun Comment

View File

@@ -0,0 +1,16 @@
if dracula_pro#should_abort('ruby')
finish
endif
if ! exists('g:ruby_operators')
let g:ruby_operators=1
endif
hi! link rubyBlockArgument DraculaOrangeItalic
hi! link rubyBlockParameter DraculaOrangeItalic
hi! link rubyCurlyBlock DraculaPink
hi! link rubyGlobalVariable DraculaPurple
hi! link rubyInstanceVariable DraculaPurpleItalic
hi! link rubyInterpolationDelimiter DraculaPink
hi! link rubyRegexpDelimiter DraculaRed
hi! link rubyStringDelimiter DraculaYellow

View File

@@ -0,0 +1,5 @@
if dracula_pro#should_abort('rust')
finish
endif
hi! link rustCommentLineDoc Comment

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('sass')
finish
endif
hi! link sassClass cssClassName
hi! link sassClassChar cssClassNameDot
hi! link sassId cssIdentifier
hi! link sassIdChar cssIdentifier
hi! link sassInterpolationDelimiter DraculaPink
hi! link sassMixinName Function
hi! link sassProperty cssProp
hi! link sassVariableAssignment Operator

View File

@@ -0,0 +1,8 @@
if dracula_pro#should_abort('bash', 'ksh', 'posix', 'sh')
finish
endif
hi! link shCommandSub NONE
hi! link shEscape DraculaRed
hi! link shParen NONE
hi! link shParenError NONE

View File

@@ -0,0 +1,17 @@
if dracula_pro#should_abort('tex')
finish
endif
hi! link texBeginEndName DraculaOrangeItalic
hi! link texBoldItalStyle DraculaOrangeBoldItalic
hi! link texBoldStyle DraculaOrangeBold
hi! link texInputFile DraculaOrangeItalic
hi! link texItalStyle DraculaYellowItalic
hi! link texLigature DraculaPurple
hi! link texMath DraculaPurple
hi! link texMathMatcher DraculaPurple
hi! link texMathSymbol DraculaPurple
hi! link texRefZone DraculaBgDarker
hi! link texSpecialChar DraculaPurple
hi! link texSubscripts DraculaPurple
hi! link texTitle DraculaFgBold

View File

@@ -0,0 +1,57 @@
if dracula_pro#should_abort('typescript', 'typescriptreact')
finish
endif
" HerringtonDarkholme/yats.vim {{{
hi! link typescriptAliasDeclaration Type
hi! link typescriptArrayMethod Function
hi! link typescriptArrowFunc Operator
hi! link typescriptArrowFuncArg DraculaOrangeItalic
hi! link typescriptAssign Operator
hi! link typescriptBOMWindowProp Constant
hi! link typescriptBinaryOp Operator
hi! link typescriptBraces Delimiter
hi! link typescriptCall typescriptArrowFuncArg
hi! link typescriptClassHeritage Type
hi! link typescriptClassName Type
hi! link typescriptDateMethod DraculaCyan
hi! link typescriptDateStaticMethod Function
hi! link typescriptDecorator DraculaGreenItalic
hi! link typescriptDefaultParam Operator
hi! link typescriptES6SetMethod DraculaCyan
hi! link typescriptEndColons Delimiter
hi! link typescriptEnum Type
hi! link typescriptEnumKeyword Keyword
hi! link typescriptFuncComma Delimiter
hi! link typescriptFuncKeyword Keyword
hi! link typescriptFuncType DraculaOrangeItalic
hi! link typescriptFuncTypeArrow Operator
hi! link typescriptGlobal Type
hi! link typescriptGlobalMethod DraculaCyan
hi! link typescriptGlobalObjects Type
hi! link typescriptIdentifier DraculaPurpleItalic
hi! link typescriptInterfaceHeritage Type
hi! link typescriptInterfaceName Type
hi! link typescriptInterpolationDelimiter Keyword
hi! link typescriptKeywordOp Keyword
hi! link typescriptLogicSymbols Operator
hi! link typescriptMember Identifier
hi! link typescriptMemberOptionality Special
hi! link typescriptObjectColon Special
hi! link typescriptObjectLabel Identifier
hi! link typescriptObjectSpread Operator
hi! link typescriptOperator Operator
hi! link typescriptParamImpl DraculaOrangeItalic
hi! link typescriptParens Delimiter
hi! link typescriptPredefinedType Type
hi! link typescriptRestOrSpread Operator
hi! link typescriptTernaryOp Operator
hi! link typescriptTypeAnnotation Special
hi! link typescriptTypeCast Operator
hi! link typescriptTypeParameter DraculaOrangeItalic
hi! link typescriptTypeReference Type
hi! link typescriptUnaryOp Operator
hi! link typescriptVariable Keyword
" }}}

View File

@@ -0,0 +1,10 @@
if dracula_pro#should_abort('typescriptreact')
finish
endif
runtime! syntax/typescript.vim
hi! link tsxAttrib DraculaGreenItalic
hi! link tsxEqual Operator
hi! link tsxIntrinsicTagName Keyword
hi! link tsxTagName Type

View File

@@ -0,0 +1,14 @@
if dracula_pro#should_abort('vim')
finish
endif
hi! link vimAutoCmdSfxList Type
hi! link vimAutoEventList Type
hi! link vimEnvVar Constant
hi! link vimFunction Function
hi! link vimHiBang Keyword
hi! link vimOption Type
hi! link vimSetMod Keyword
hi! link vimSetSep Delimiter
hi! link vimUserAttrbCmpltFunc Function
hi! link vimUserFunc Function

View File

@@ -0,0 +1,13 @@
if dracula_pro#should_abort('xml')
finish
endif
hi! link xmlAttrib DraculaGreenItalic
hi! link xmlEqual Operator
hi! link xmlTag Delimiter
hi! link xmlTagName Statement
" Fixes missing highlight over end tags
syn region xmlTagName
\ matchgroup=xmlTag start=+</[^ /!?<>"']\@=+
\ matchgroup=xmlTag end=+>+

View File

@@ -0,0 +1,12 @@
if dracula_pro#should_abort('yaml')
finish
endif
hi! link yamlAlias DraculaGreenItalicUnderline
hi! link yamlAnchor DraculaPinkItalic
hi! link yamlBlockMappingKey DraculaCyan
hi! link yamlFlowCollection DraculaPink
hi! link yamlFlowIndicator Delimiter
hi! link yamlNodeTag DraculaPink
hi! link yamlPlainScalar DraculaYellow

View File

@@ -0,0 +1,150 @@
" Helpers: {{{
" Takes a foreground color name, background color name, and optionally one or
" more attr-list items as input, transforms it to the format accepted by
" airline#themes#generate_color_map and returns that value
func! s:clr(fg, bg, ...)
let l:fg = g:dracula_pro#palette[a:fg]
let l:bg = g:dracula_pro#palette[a:bg]
return [ l:fg[0], l:bg[0], l:fg[1], l:bg[1] ] +
\ filter(copy(a:000), 'type(v:val) == 1 && len(v:val) > 0')
endfunc
" Takes three ['fg', 'bg'] color lists and optionally a dictionary of extra
" key-value pairs and returns the value generated by
" airline#themes#generate_color_map after optionally merging the dictionary of
" extra key-value pairs.
"
" a:a -> airline_a, airline_x
" a:b -> airline_b, airline_y
" a:c -> airline_c, airline_z
func! s:color_map(a, b, c, ...)
if a:0 == 0
return call('airline#themes#generate_color_map', [call('s:clr', a:a), call('s:clr', a:b), call('s:clr', a:c)])
else
return call('extend', [ call('airline#themes#generate_color_map', [call('s:clr', a:a), call('s:clr', a:b), call('s:clr', a:c)]) ] + a:000)
endif
endfunc
"}}}
let g:airline#themes#dracula_pro#palette = {
\ 'normal': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'normal_modified': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'insert': s:color_map(
\ ['bg', 'green'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'insert_modified': s:color_map(
\ ['bg', 'green'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'replace': s:color_map(
\ ['bg', 'orange'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'replace_modified': s:color_map(
\ ['bg', 'orange'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'visual': s:color_map(
\ ['bg', 'yellow'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'visual_modified': s:color_map(
\ ['bg', 'yellow'],
\ ['fg', 'comment'],
\ ['fg', 'bgdark'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'inactive': s:color_map(
\ ['bg', 'comment'],
\ ['fg', 'bgdark'],
\ ['fg', 'selection'],
\ {
\ 'airline_warning': s:clr('bg', 'orange'),
\ 'airline_error': s:clr('bg', 'red'),
\ },
\ ),
\ 'terminal': s:color_map(
\ ['bg', 'purple'],
\ ['fg', 'comment'],
\ ['fg', 'selection'],
\ {
\ 'airline_term': s:clr('fg', 'selection'),
\ },
\ ),
\}
" Extensions: {{{
" Tabline: {{{
if get(g:, 'airline#extensions#tabline#enabled', 0)
let g:airline#themes#dracula_pro#palette.tabline = {
\ 'airline_tabfill': s:clr('bg', 'bglight'),
\
\ 'airline_tab': s:clr('comment', 'bg'),
\ 'airline_tabsel': s:clr('bg', 'purple'),
\ 'airline_tabmod': s:clr('green', 'bg'),
\
\ 'airline_tab_right': s:clr('comment', 'bg'),
\ 'airline_tabsel_right': s:clr('fg', 'bg', ),
\ 'airline_tabmod_right': s:clr('green', 'bg'),
\}
endif
"}}}
" CtrlP: {{{2
if exists('g:loaded_ctrlp')
let g:airline#themes#dracula_pro#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
\ s:clr('fg', 'selection'),
\ s:clr('fg', 'comment'),
\ s:clr('fg', 'purple'),
\)
endif
"}}}2
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,57 @@
" Palette: {{{
let g:dracula_pro#palette = {}
let g:dracula_pro#palette.fg = ['#F8F8F2', 231]
let g:dracula_pro#palette.bglighter = ['#393649', 59]
let g:dracula_pro#palette.bglight = ['#2E2B3B', 59]
let g:dracula_pro#palette.bg = ['#22212C', 59]
let g:dracula_pro#palette.bgdark = ['#17161D', 17]
let g:dracula_pro#palette.bgdarker = ['#0B0B0F', 16]
let g:dracula_pro#palette.comment = ['#7970A9', 103]
let g:dracula_pro#palette.selection = ['#454158', 60]
let g:dracula_pro#palette.subtle = ['#424450', 60]
let g:dracula_pro#palette.cyan = ['#80FFEA', 159]
let g:dracula_pro#palette.green = ['#8AFF80', 157]
let g:dracula_pro#palette.orange = ['#FFCA80', 223]
let g:dracula_pro#palette.pink = ['#FF80BF', 218]
let g:dracula_pro#palette.purple = ['#9580FF', 147]
let g:dracula_pro#palette.red = ['#FF9580', 217]
let g:dracula_pro#palette.yellow = ['#FFFF80', 229]
"
" ANSI
"
let g:dracula_pro#palette.color_0 = '#454158'
let g:dracula_pro#palette.color_1 = '#FF9580'
let g:dracula_pro#palette.color_2 = '#8AFF80'
let g:dracula_pro#palette.color_3 = '#FFFF80'
let g:dracula_pro#palette.color_4 = '#9580FF'
let g:dracula_pro#palette.color_5 = '#FF80BF'
let g:dracula_pro#palette.color_6 = '#80FFEA'
let g:dracula_pro#palette.color_7 = '#F8F8F2'
let g:dracula_pro#palette.color_8 = '#7970A9'
let g:dracula_pro#palette.color_9 = '#FFAA99'
let g:dracula_pro#palette.color_10 = '#A2FF99'
let g:dracula_pro#palette.color_11 = '#FFFF99'
let g:dracula_pro#palette.color_12 = '#AA99FF'
let g:dracula_pro#palette.color_13 = '#FF99CC'
let g:dracula_pro#palette.color_14 = '#99FFEE'
let g:dracula_pro#palette.color_15 = '#FFFFFF'
" }}}
" Helper function that takes a variadic list of filetypes as args and returns
" whether or not the execution of the ftplugin should be aborted.
func! dracula_pro#should_abort(...)
if ! exists('g:colors_name') || g:colors_name !~# 'dracula_pro.*'
return 1
elseif a:0 > 0 && (! exists('b:current_syntax') || index(a:000, b:current_syntax) == -1)
return 1
endif
return 0
endfunction
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,35 @@
let s:black = g:dracula_pro#palette.bg
let s:gray = g:dracula_pro#palette.selection
let s:white = g:dracula_pro#palette.fg
let s:darkblue = g:dracula_pro#palette.comment
let s:cyan = g:dracula_pro#palette.cyan
let s:green = g:dracula_pro#palette.green
let s:orange = g:dracula_pro#palette.orange
let s:purple = g:dracula_pro#palette.purple
let s:red = g:dracula_pro#palette.red
let s:yellow = g:dracula_pro#palette.yellow
if exists('g:lightline')
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:purple ], [ s:cyan, s:gray ] ]
let s:p.normal.right = [ [ s:black, s:purple ], [ s:white, s:darkblue ] ]
let s:p.inactive.right = [ [ s:black, s:darkblue ], [ s:white, s:black ] ]
let s:p.inactive.left = [ [ s:cyan, s:black ], [ s:white, s:black ] ]
let s:p.insert.left = [ [ s:black, s:green ], [ s:cyan, s:gray ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:cyan, s:gray ] ]
let s:p.visual.left = [ [ s:black, s:orange ], [ s:cyan, s:gray ] ]
let s:p.normal.middle = [ [ s:white, s:gray ] ]
let s:p.inactive.middle = [ [ s:white, s:gray ] ]
let s:p.tabline.left = [ [ s:darkblue, s:gray ] ]
let s:p.tabline.tabsel = [ [ s:cyan, s:black ] ]
let s:p.tabline.middle = [ [ s:darkblue, s:gray ] ]
let s:p.tabline.right = copy(s:p.normal.right)
let s:p.normal.error = [ [ s:red, s:black ] ]
let s:p.normal.warning = [ [ s:yellow, s:black ] ]
let g:lightline#colorscheme#dracula_pro#palette = lightline#colorscheme#flatten(s:p)
endif
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0:

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#7970A9', 103]
let g:dracula_pro#palette.selection = ['#454158', 60]
let g:dracula_pro#palette.bglighter = ['#393649', 59]
let g:dracula_pro#palette.bglight = ['#2E2B3B', 59]
let g:dracula_pro#palette.bg = ['#22212C', 59]
let g:dracula_pro#palette.bgdark = ['#17161D', 17]
let g:dracula_pro#palette.bgdarker = ['#0B0B0F', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro'

View File

@@ -0,0 +1,301 @@
" Configuration: {{{
if v:version > 580
highlight clear
if exists('syntax_on')
syntax reset
endif
endif
let g:colors_name = 'dracula_pro'
if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256
finish
endif
" Palette: {{{2
let s:fg = g:dracula_pro#palette.fg
let s:bglighter = g:dracula_pro#palette.bglighter
let s:bglight = g:dracula_pro#palette.bglight
let s:bg = g:dracula_pro#palette.bg
let s:bgdark = g:dracula_pro#palette.bgdark
let s:bgdarker = g:dracula_pro#palette.bgdarker
let s:comment = g:dracula_pro#palette.comment
let s:selection = g:dracula_pro#palette.selection
let s:subtle = g:dracula_pro#palette.subtle
let s:cyan = g:dracula_pro#palette.cyan
let s:green = g:dracula_pro#palette.green
let s:orange = g:dracula_pro#palette.orange
let s:pink = g:dracula_pro#palette.pink
let s:purple = g:dracula_pro#palette.purple
let s:red = g:dracula_pro#palette.red
let s:yellow = g:dracula_pro#palette.yellow
let s:none = ['NONE', 'NONE']
if has('nvim')
for s:i in range(16)
let g:terminal_color_{s:i} = g:dracula_pro#palette['color_' . s:i]
endfor
endif
if has('terminal')
let g:terminal_ansi_colors = []
for s:i in range(16)
call add(g:terminal_ansi_colors, g:dracula_pro#palette['color_' . s:i])
endfor
endif
" }}}2
" User Configuration: {{{2
if !exists('g:dracula_bold')
let g:dracula_bold = 1
endif
if !exists('g:dracula_italic')
let g:dracula_italic = 1
endif
if !exists('g:dracula_underline')
let g:dracula_underline = 1
endif
if !exists('g:dracula_undercurl') && g:dracula_underline != 0
let g:dracula_undercurl = 1
endif
if !exists('g:dracula_inverse')
let g:dracula_inverse = 1
endif
if !exists('g:dracula_colorterm')
let g:dracula_colorterm = 1
endif
"}}}2
" Script Helpers: {{{2
let s:attrs = {
\ 'bold': g:dracula_bold == 1 ? 'bold' : 0,
\ 'italic': g:dracula_italic == 1 ? 'italic' : 0,
\ 'underline': g:dracula_underline == 1 ? 'underline' : 0,
\ 'undercurl': g:dracula_undercurl == 1 ? 'undercurl' : 0,
\ 'inverse': g:dracula_inverse == 1 ? 'inverse' : 0,
\}
function! s:h(scope, fg, ...) " bg, attr_list, special
let l:fg = copy(a:fg)
let l:bg = get(a:, 1, ['NONE', 'NONE'])
let l:attr_list = filter(get(a:, 2, ['NONE']), 'type(v:val) == 1')
let l:attrs = len(l:attr_list) > 0 ? join(l:attr_list, ',') : 'NONE'
" Falls back to coloring foreground group on terminals because
" nearly all do not support undercurl
let l:special = get(a:, 3, ['NONE', 'NONE'])
if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running')
let l:fg[0] = l:special[0]
let l:fg[1] = l:special[1]
endif
let l:hl_string = [
\ 'highlight!', a:scope,
\ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1],
\ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1],
\ 'gui=' . l:attrs, 'cterm=' . l:attrs,
\ 'guisp=' . l:special[0],
\]
execute join(l:hl_string, ' ')
endfunction
"}}}2
" Dracula Highlight Groups: {{{2
call s:h('DraculaBgLight', s:none, s:bglight)
call s:h('DraculaBgLighter', s:none, s:bglighter)
call s:h('DraculaBgDark', s:none, s:bgdark)
call s:h('DraculaBgDarker', s:none, s:bgdarker)
call s:h('DraculaFg', s:fg)
call s:h('DraculaFgUnderline', s:fg, s:none, [s:attrs.underline])
call s:h('DraculaFgBold', s:fg, s:none, [s:attrs.bold])
call s:h('DraculaComment', s:comment)
call s:h('DraculaCommentBold', s:comment, s:none, [s:attrs.bold])
call s:h('DraculaSelection', s:none, s:selection)
call s:h('DraculaSubtle', s:subtle)
call s:h('DraculaCyan', s:cyan)
call s:h('DraculaCyanItalic', s:cyan, s:none, [s:attrs.italic])
call s:h('DraculaGreen', s:green)
call s:h('DraculaGreenBold', s:green, s:none, [s:attrs.bold])
call s:h('DraculaGreenItalic', s:green, s:none, [s:attrs.italic])
call s:h('DraculaGreenItalicUnderline', s:green, s:none, [s:attrs.italic, s:attrs.underline])
call s:h('DraculaOrange', s:orange)
call s:h('DraculaOrangeBold', s:orange, s:none, [s:attrs.bold])
call s:h('DraculaOrangeItalic', s:orange, s:none, [s:attrs.italic])
call s:h('DraculaOrangeBoldItalic', s:orange, s:none, [s:attrs.bold, s:attrs.italic])
call s:h('DraculaOrangeInverse', s:bg, s:orange)
call s:h('DraculaPink', s:pink)
call s:h('DraculaPinkItalic', s:pink, s:none, [s:attrs.italic])
call s:h('DraculaPurple', s:purple)
call s:h('DraculaPurpleBold', s:purple, s:none, [s:attrs.bold])
call s:h('DraculaPurpleItalic', s:purple, s:none, [s:attrs.italic])
call s:h('DraculaRed', s:red)
call s:h('DraculaRedInverse', s:fg, s:red)
call s:h('DraculaYellow', s:yellow)
call s:h('DraculaYellowItalic', s:yellow, s:none, [s:attrs.italic])
call s:h('DraculaError', s:red, s:none, [], s:red)
call s:h('DraculaErrorLine', s:none, s:none, [s:attrs.undercurl], s:red)
call s:h('DraculaWarnLine', s:none, s:none, [s:attrs.undercurl], s:orange)
call s:h('DraculaInfoLine', s:none, s:none, [s:attrs.undercurl], s:cyan)
call s:h('DraculaTodo', s:cyan, s:none, [s:attrs.bold, s:attrs.inverse])
call s:h('DraculaSearch', s:green, s:none, [s:attrs.inverse])
call s:h('DraculaBoundary', s:comment, s:bgdark)
call s:h('DraculaLink', s:cyan, s:none, [s:attrs.underline])
call s:h('DraculaDiffChange', s:orange, s:none)
call s:h('DraculaDiffText', s:bg, s:orange)
call s:h('DraculaDiffDelete', s:red, s:bgdark)
" }}}2
" }}}
" User Interface: {{{
set background=dark
" Required as some plugins will overwrite
call s:h('Normal', s:fg, g:dracula_colorterm || has('gui_running') ? s:bg : s:none )
call s:h('StatusLine', s:none, s:bglighter, [s:attrs.bold])
call s:h('StatusLineNC', s:none, s:bglight)
call s:h('StatusLineTerm', s:none, s:bglighter, [s:attrs.bold])
call s:h('StatusLineTermNC', s:none, s:bglight)
call s:h('WildMenu', s:bg, s:purple, [s:attrs.bold])
call s:h('CursorLine', s:none, s:subtle)
hi! link ColorColumn DraculaBgDark
hi! link CursorColumn CursorLine
hi! link CursorLineNr DraculaYellow
hi! link DiffAdd DraculaGreen
hi! link DiffAdded DiffAdd
hi! link DiffChange DraculaDiffChange
hi! link DiffDelete DraculaDiffDelete
hi! link DiffRemoved DiffDelete
hi! link DiffText DraculaDiffText
hi! link Directory DraculaPurpleBold
hi! link ErrorMsg DraculaRedInverse
hi! link FoldColumn DraculaSubtle
hi! link Folded DraculaBoundary
hi! link IncSearch DraculaOrangeInverse
call s:h('LineNr', s:comment)
hi! link MoreMsg DraculaFgBold
hi! link NonText DraculaSubtle
hi! link Pmenu DraculaBgDark
hi! link PmenuSbar DraculaBgDark
hi! link PmenuSel DraculaSelection
hi! link PmenuThumb DraculaSelection
hi! link Question DraculaFgBold
hi! link Search DraculaSearch
call s:h('SignColumn', s:comment)
hi! link TabLine DraculaBoundary
hi! link TabLineFill DraculaBgDarker
hi! link TabLineSel Normal
hi! link Title DraculaGreenBold
hi! link VertSplit DraculaBoundary
hi! link Visual DraculaSelection
hi! link VisualNOS Visual
hi! link WarningMsg DraculaOrangeInverse
" }}}
" Syntax: {{{
" Required as some plugins will overwrite
call s:h('MatchParen', s:green, s:none, [s:attrs.underline])
call s:h('Conceal', s:cyan, s:none)
" Neovim uses SpecialKey for escape characters only. Vim uses it for that, plus whitespace.
if has('nvim')
hi! link SpecialKey DraculaRed
hi! link LspDiagnosticsUnderline DraculaFgUnderline
hi! link LspDiagnosticsInformation DraculaCyan
hi! link LspDiagnosticsHint DraculaCyan
hi! link LspDiagnosticsError DraculaError
hi! link LspDiagnosticsWarning DraculaOrange
hi! link LspDiagnosticsUnderlineError DraculaErrorLine
hi! link LspDiagnosticsUnderlineHint DraculaInfoLine
hi! link LspDiagnosticsUnderlineInformation DraculaInfoLine
hi! link LspDiagnosticsUnderlineWarning DraculaWarnLine
else
hi! link SpecialKey DraculaSubtle
endif
hi! link Comment DraculaComment
hi! link Underlined DraculaFgUnderline
hi! link Todo DraculaTodo
hi! link Error DraculaError
hi! link SpellBad DraculaErrorLine
hi! link SpellLocal DraculaWarnLine
hi! link SpellCap DraculaInfoLine
hi! link SpellRare DraculaInfoLine
hi! link Constant DraculaPurple
hi! link String DraculaYellow
hi! link Character DraculaPink
hi! link Number Constant
hi! link Boolean Constant
hi! link Float Constant
hi! link Identifier DraculaFg
hi! link Function DraculaGreen
hi! link Statement DraculaPink
hi! link Conditional DraculaPink
hi! link Repeat DraculaPink
hi! link Label DraculaPink
hi! link Operator DraculaPink
hi! link Keyword DraculaPink
hi! link Exception DraculaPink
hi! link PreProc DraculaPink
hi! link Include DraculaPink
hi! link Define DraculaPink
hi! link Macro DraculaPink
hi! link PreCondit DraculaPink
hi! link StorageClass DraculaPink
hi! link Structure DraculaPink
hi! link Typedef DraculaPink
hi! link Type DraculaCyanItalic
hi! link Delimiter DraculaFg
hi! link Special DraculaPink
hi! link SpecialComment DraculaCyanItalic
hi! link Tag DraculaCyan
hi! link helpHyperTextJump DraculaLink
hi! link helpCommand DraculaPurple
hi! link helpExample DraculaGreen
hi! link helpBacktick Special
"}}}
" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0 et:

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#70A99F', 109]
let g:dracula_pro#palette.selection = ['#415854', 66]
let g:dracula_pro#palette.bglighter = ['#364946', 59]
let g:dracula_pro#palette.bglight = ['#2B3B38', 59]
let g:dracula_pro#palette.bg = ['#212C2A', 59]
let g:dracula_pro#palette.bgdark = ['#161D1C', 23]
let g:dracula_pro#palette.bgdarker = ['#0B0F0E', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_blade'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#9F70A9', 139]
let g:dracula_pro#palette.selection = ['#544158', 96]
let g:dracula_pro#palette.bglighter = ['#463649', 59]
let g:dracula_pro#palette.bglight = ['#382B3B', 59]
let g:dracula_pro#palette.bg = ['#2A212C', 59]
let g:dracula_pro#palette.bgdark = ['#1C161D', 53]
let g:dracula_pro#palette.bgdarker = ['#0E0B0F', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_buffy'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#A99F70', 144]
let g:dracula_pro#palette.selection = ['#585441', 101]
let g:dracula_pro#palette.bglighter = ['#494636', 59]
let g:dracula_pro#palette.bglight = ['#3B382B', 59]
let g:dracula_pro#palette.bg = ['#2C2A21', 59]
let g:dracula_pro#palette.bgdark = ['#1D1C16', 58]
let g:dracula_pro#palette.bgdarker = ['#0F0E0B', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_lincoln'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#A97079', 138]
let g:dracula_pro#palette.selection = ['#584145', 95]
let g:dracula_pro#palette.bglighter = ['#493639', 59]
let g:dracula_pro#palette.bglight = ['#3B2B2E', 59]
let g:dracula_pro#palette.bg = ['#2C2122', 59]
let g:dracula_pro#palette.bgdark = ['#1D1617', 52]
let g:dracula_pro#palette.bgdarker = ['#0F0B0B', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_morbius'

View File

@@ -0,0 +1,14 @@
runtime autoload/dracula_pro.vim
let g:dracula_pro#palette.comment = ['#708CA9', 109]
let g:dracula_pro#palette.selection = ['#414D58', 66]
let g:dracula_pro#palette.bglighter = ['#161A1D', 23]
let g:dracula_pro#palette.bglight = ['#111417', 16]
let g:dracula_pro#palette.bg = ['#0B0D0F', 16]
let g:dracula_pro#palette.bgdark = ['#070809', 16]
let g:dracula_pro#palette.bgdarker = ['#000000', 16]
runtime colors/dracula_pro_base.vim
let g:colors_name = 'dracula_pro_van_helsing'

View File

@@ -0,0 +1,146 @@
*dracula_pro.txt* For Vim version 8 Last change: 2020 Apr 27
*dracula-pro* *vim-dracula-pro*
|\ ,, ~
\\ _ || _ ~
/ \\ ,._-_ < \, _-_ \\ \\ || < \, -_-_ ,._-_ /'\\ ~
|| || || /-|| || || || || /-|| || \\ || || || ~
|| || || (( || || || || || (( || || || || || || ~
\\/ \\, \/\\ \\,/ \\/\\ \\ \/\\ ||-' \\, \\,/ ~
|/ ~
' ~
A premium dark theme for vim
================================================================================
CONTENTS *dracula-pro-contents*
1. Intro .............................................. |dracula-pro-intro|
2. Usage .............................................. |dracula-pro-usage|
3. Configuration .............................. |dracula-pro-configuration|
4. Personal Customization ..................... |dracula-pro-customization|
5. License .......................................... |dracula-pro-license|
6. Bugs ................................................ |dracula-pro-bugs|
7. Contributing ................................ |dracula-pro-contributing|
8. Credits .......................................... |dracula-pro-credits|
================================================================================
INTRO *dracula-pro-intro*
Dracula PRO is a vim plugin that contains
- a dark colorscheme for vim
- a similarly-themed colorscheme for the vim plugin airline
================================================================================
USAGE *dracula-pro-usage*
Install it with your favorite plugin manager, and then >
colorscheme dracula_pro
" or
colorscheme dracula_pro_variation
in your vimrc! See also |dracula-pro-runtimepath|.
If you are an airline user, you can also do >
let g:airline_theme='dracula_pro'
to have airline use Dracula.
*dracula-pro-runtimepath*
Note that dracula must be in your 'runtimepath' for this command to work
properly: Version 2.0 introduced autoload functionality for part of the
plugin, which doesn't work without 'runtimepath' properly set.
For users of Vim 8's |packages| feature, it suffices to put this in your vimrc:
packadd! dracula_pro
colorscheme dracula_pro
================================================================================
CONFIGURATION *dracula-pro-configuration*
There are a couple of variables used by Dracula that you might want to adjust
depending on your terminal's capabilities.
Default values are shown.
--------------------------------------------------------------------------------
In the following section, `1` signifies `on` and `0` signifies `off`.
* *g:dracula_bold*
Include bold attributes in highlighting >
let g:dracula_bold = 1
* *g:dracula_italic*
Include italic attributes in highlighting >
let g:dracula_italic = 1
* *g:dracula_underline*
Include underline attributes in highlighting >
let g:dracula_underline = 1
* *g:dracula_undercurl*
Include undercurl attributes in highlighting (only if underline enabled) >
let g:dracula_undercurl = 1
* *g:dracula_inverse*
Include inverse attributes in highlighting >
let g:dracula_inverse = 1
* *g:dracula_colorterm*
Include background fill colors >
let g:dracula_colorterm = 1
================================================================================
CUSTOMIZATION *dracula-pro-customization*
Like all colorschemes, Dracula PRO is easy to customize with |autocmd|. Make use
of the |ColorScheme| event as in the following examples.
It would be a good idea to put all of your personal changes in an |augroup|,
which you can do with the following code: >
augroup dracula_customization
au!
" autocmds...
augroup END
>
- To add underline styling to |hl-CursorLine|, you can use the following: >
autocmd ColorScheme dracula_pro* hi CursorLine cterm=underline term=underline
<
================================================================================
LICENSE *dracula-pro-license*
Copyright © 2020 Dracula Theme
EULA available at https://gum.co/dracula-pro
================================================================================
BUGS *dracula-pro-bugs*
At the time of this writing, no major bugs have been found.
If you find one and wish to report it, send an email to zeno@draculatheme.com
================================================================================
CONTRIBUTING *dracula-pro-contributing*
Want to submit a new feature, bugfix, or hack on Dracula PRO?
Send an email to zeno@draculatheme.com
Existing code determines style guidelines.
================================================================================
CREDITS *dracula-pro-credits*
Originally Created by:
- Derek S. (https://github.com/dsifford)
- D. Ben Knoble (https://github.com/benknoble)
Modified by:
- D. Ben Knoble (https://github.com/benknoble)
- Zeno Rocha (https://github.com/zenorocha)
Further information available at
https://draculatheme.com/pro
vim:tw=78:ts=8:ft=help:norl:

89
vim/.vimrc Normal file
View File

@@ -0,0 +1,89 @@
" Don't try to be vi compatible
set nocompatible
" Syntax Highlighting
syntax on
" Pick a leader key
let mapleader = "\\"
" Security
set modelines=0
" Show line numbers
set number relativenumber
" Show file stats
set ruler
" Blink cursors on error instead of beeping
set visualbell
" Encoding
set encoding=utf-8
" Whitespace
set wrap
set textwidth=110
set formatoptions=tcqrn1
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set noshiftround
set smarttab
set autoindent
" Cursor Motion
set scrolloff=3
set backspace=indent,eol,start
set matchpairs+=<:> " use % to jumb between pairs
" Allow hidden buffers
set hidden
" Rendering
set ttyfast
" Status bar
set laststatus=2
" Last line
set showmode
set showcmd
" Searching
nnoremap / /\v
vnoremap / /\v
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
map <leader><space> :let @/=''<cr> " clear search
" Formatting
map <leader>q gqip
" Visualize tabs and newlines
set listchars=tab:▸\ ,eol
map <leader>l :set list!<CR> " Toggle tabs and EOL
" Exit Inser Mode Easily
:inoremap jk <esc>
" UI Config
set cursorline
filetype indent on
set wildmenu
set lazyredraw
set showmatch
" Add Dracula Themes
packadd! dracula
packadd! dracula_pro
" Enable Dracula Pro Theme
syntax enable
let g:dracula_colorterm = 0
colorscheme dracula_pro