diff --git a/INSTALL.md b/INSTALL.md index 309efe96..52143b47 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,70 +2,91 @@ #### Install -These are the default instructions using Vim 8's `|packages|` feature. See -sections below, if you use other plugin managers. +These are the default instructions using Vim 8's `|packages|` feature. See sections below, if you use other plugin managers. -1. Create theme folder (in case you don't have yet): +1. Create theme folder (in case you don't have it yet): -``` +- `\*nix`: + +```bash +# vim 8.2+ mkdir -p ~/.vim/pack/themes/start +# vim 8.0 +mkdir -p ~/.vim/pack/themes/opt ``` -If you use vim 8.0 (and not 8.2), you may need to use -`~/.vim/pack/themes/opt` instead. +- Windows: create directory `$HOME\vimfiles\pack\themes\start` or + `$HOME\vimfiles\pack\themes\opt`, according to your version. 2. Navigate to the folder above: -``` +- `\*nix`: + +```bash +# vim 8.2+ cd ~/.vim/pack/themes/start +# vim 8.0 +cd ~/.vim/pack/themes/opt ``` +- Windows: navigate to the directory you created earlier + 3. Clone the repository using the "dracula" name: -``` +```bash git clone https://github.com/dracula/vim.git dracula ``` -4. Create configuration file (in case you don't have yet): +(Or use your favorite GUI client, or download the ZIP) -``` -touch ~/.vimrc -``` - -5. Edit the `~/.vimrc` file with the following content: +4. Edit your `vimrc` file with the following content: ``` -packadd! dracula +if v:version < 802 + packadd! dracula +endif syntax enable colorscheme dracula ``` +The location of the `vimrc` varies between platforms: + +- `\*nix`: `~/.vim/vimrc` or `~/.vimrc` +- Windows: `$HOME\vimfiles\vimrc` or `$HOME\_vimrc` + #### Install using other plugin managers -If you [use vim + pathogen](http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/): +- If you [use vim + pathogen + submodules](http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/): - cd ~/.vim - git submodule add git@github.com:dracula/vim.git bundle/dracula +Navigate to your vim directory (`\*nix`: `~/.vim`; Windows: `$HOME\vimfiles`) + +```bash +git submodule add git@github.com:dracula/vim.git bundle/dracula +``` Place `colorscheme dracula` after `execute pathogen#infect()`. -If you [use vim + vundle](https://github.com/VundleVim/Vundle): +- If you [use vim + vundle](https://github.com/VundleVim/Vundle): - Plugin 'dracula/vim', { 'name': 'dracula' } - :PluginInstall +```vim +Plugin 'dracula/vim', { 'name': 'dracula' } +:PluginInstall +``` Place `colorscheme dracula` after `call vundle#end()`. -If you [use vim-plug](https://github.com/junegunn/vim-plug) (\`as\` will install -the plugin in a directory called 'dracula' instead of just 'vim'): +- If you [use vim-plug](https://github.com/junegunn/vim-plug) (\`as\` will install + the plugin in a directory called 'dracula' instead of just 'vim'): - Plug 'dracula/vim', { 'as': 'dracula' } - :PlugInstall +```vim +Plug 'dracula/vim', { 'as': 'dracula' } +:PlugInstall +``` Place `colorscheme dracula` after `call plug#end()`. -If you [use spacevim](https://spacevim.org), put the -following in `~/.SpaceVim.d/init.toml`: +- If you [use spacevim](https://spacevim.org), put the + following in `~/.SpaceVim.d/init.toml`: ```toml [options] @@ -82,4 +103,6 @@ following in `~/.SpaceVim.d/init.toml`: Note that dracula must be in your `'runtimepath'` to load properly: Version 2.0 introduced autoload functionality for part of the plugin, which doesn't work without `'runtimepath'` properly set. Consult your plugin-managers documentation -to make sure you put dracula on the `'runtimepath'` before loading it. +to make sure you put dracula on the `'runtimepath'` before loading it. For +`|packages|`, versions 8.2 and later will autoload `start` packages +correctly even in your vimrc. diff --git a/README.md b/README.md index cea8721e..9d6ea3f7 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ ![Screenshot](./screenshot.png) -Screenshot taken with the [pangloss/vim-javascript](https://github.com/pangloss/vim-javascript) -syntax plugin for javascript. +Screenshot taken with the [pangloss/vim-javascript](https://github.com/pangloss/vim-javascript) syntax plugin for javascript. ## Install @@ -20,6 +19,16 @@ This theme is maintained by the following person(s) and a bunch of | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | [Derek S.](https://github.com/dsifford) | [David Knoble](https://github.com/benknoble) | +## Community + +- [Twitter](https://twitter.com/draculatheme) - Best for getting updates about themes and new stuff. +- [GitHub](https://github.com/dracula/dracula-theme/discussions) - Best for asking questions and discussing issues. +- [Discord](https://draculatheme.com/discord-invite) - Best for hanging out with the community. + +## Dracula PRO + +[![Dracula PRO](./dracula-pro.png)](https://draculatheme.com/pro) + ## License [MIT License](./LICENSE) diff --git a/after/plugin/dracula.vim b/after/plugin/dracula.vim deleted file mode 100644 index 811cf968..00000000 --- a/after/plugin/dracula.vim +++ /dev/null @@ -1,45 +0,0 @@ -if dracula#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: diff --git a/after/syntax/css.vim b/after/syntax/css.vim deleted file mode 100644 index 764e0afc..00000000 --- a/after/syntax/css.vim +++ /dev/null @@ -1,15 +0,0 @@ -if dracula#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 diff --git a/after/syntax/gitcommit.vim b/after/syntax/gitcommit.vim deleted file mode 100644 index 08099e50..00000000 --- a/after/syntax/gitcommit.vim +++ /dev/null @@ -1,12 +0,0 @@ -if dracula#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 - diff --git a/after/syntax/html.vim b/after/syntax/html.vim deleted file mode 100644 index 243aef63..00000000 --- a/after/syntax/html.vim +++ /dev/null @@ -1,9 +0,0 @@ -if dracula#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 diff --git a/after/syntax/javascript.vim b/after/syntax/javascript.vim deleted file mode 100644 index 372bba5b..00000000 --- a/after/syntax/javascript.vim +++ /dev/null @@ -1,37 +0,0 @@ -if dracula#should_abort('javascript', 'javascriptreact', 'javascript.jsx') - 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 - -"}}} - -" maxmellon/vim-jsx-pretty {{{ - -hi! link jsxTag Keyword -hi! link jsxTagName Keyword -hi! link jsxComponentName Type -hi! link jsxCloseTag Type -hi! link jsxAttrib DraculaGreenItalic -hi! link jsxCloseString Identifier -hi! link jsxOpenPunct Identifier - -" }}} - -" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0: diff --git a/after/syntax/javascriptreact.vim b/after/syntax/javascriptreact.vim deleted file mode 100644 index b5b557c0..00000000 --- a/after/syntax/javascriptreact.vim +++ /dev/null @@ -1 +0,0 @@ -runtime! syntax/javascript.vim diff --git a/after/syntax/json.vim b/after/syntax/json.vim deleted file mode 100644 index a45d135d..00000000 --- a/after/syntax/json.vim +++ /dev/null @@ -1,6 +0,0 @@ -if dracula#should_abort('json') - finish -endif - -hi! link jsonKeyword DraculaCyan -hi! link jsonKeywordMatch DraculaPink diff --git a/after/syntax/lua.vim b/after/syntax/lua.vim deleted file mode 100644 index 664848df..00000000 --- a/after/syntax/lua.vim +++ /dev/null @@ -1,22 +0,0 @@ -if dracula#should_abort('lua') - finish -endif - -hi! link luaFunc DraculaCyan -hi! link luaTable DraculaFg - -" tbastos/vim-lua {{{ - -hi! link luaBraces DraculaFg -hi! link luaBuiltIn Constant -hi! link luaDocTag Keyword -hi! link luaErrHand DraculaCyan -hi! link luaFuncArgName DraculaOrangeItalic -hi! link luaFuncCall Function -hi! link luaLocal Keyword -hi! link luaSpecialTable Constant -hi! link luaSpecialValue DraculaCyan - -" }}} - -" vim: fdm=marker ts=2 sts=2 sw=2 fdl=0: diff --git a/after/syntax/markdown.vim b/after/syntax/markdown.vim deleted file mode 100644 index 0283a86d..00000000 --- a/after/syntax/markdown.vim +++ /dev/null @@ -1,50 +0,0 @@ -if dracula#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: diff --git a/after/syntax/ocaml.vim b/after/syntax/ocaml.vim deleted file mode 100644 index 60c76c96..00000000 --- a/after/syntax/ocaml.vim +++ /dev/null @@ -1,7 +0,0 @@ -if dracula#should_abort('ocaml') - finish -endif - -hi! link ocamlModule Type -hi! link ocamlModPath Normal -hi! link ocamlLabel DraculaOrangeItalic diff --git a/after/syntax/perl.vim b/after/syntax/perl.vim deleted file mode 100644 index 67f39231..00000000 --- a/after/syntax/perl.vim +++ /dev/null @@ -1,38 +0,0 @@ -if dracula#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 diff --git a/after/syntax/php.vim b/after/syntax/php.vim deleted file mode 100644 index 1475b018..00000000 --- a/after/syntax/php.vim +++ /dev/null @@ -1,10 +0,0 @@ -if dracula#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 diff --git a/after/syntax/plantuml.vim b/after/syntax/plantuml.vim deleted file mode 100644 index b9bf3651..00000000 --- a/after/syntax/plantuml.vim +++ /dev/null @@ -1,13 +0,0 @@ -if dracula#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 diff --git a/after/syntax/python.vim b/after/syntax/python.vim deleted file mode 100644 index 171eddde..00000000 --- a/after/syntax/python.vim +++ /dev/null @@ -1,11 +0,0 @@ -if dracula#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 diff --git a/after/syntax/rst.vim b/after/syntax/rst.vim deleted file mode 100644 index 8cb69240..00000000 --- a/after/syntax/rst.vim +++ /dev/null @@ -1,26 +0,0 @@ -if dracula#should_abort('rst') - finish -endif - -hi! link rstComment Comment -hi! link rstTransition Comment -hi! link rstCodeBlock DraculaGreen -hi! link rstInlineLiteral DraculaGreen -hi! link rstLiteralBlock DraculaGreen -hi! link rstQuotedLiteralBlock DraculaGreen -hi! link rstStandaloneHyperlink DraculaLink -hi! link rstStrongEmphasis DraculaOrangeBold -hi! link rstSections DraculaPurpleBold -hi! link rstEmphasis DraculaYellowItalic -hi! link rstDirective Keyword -hi! link rstSubstitutionDefinition Keyword -hi! link rstCitation String -hi! link rstExDirective String -hi! link rstFootnote String -hi! link rstCitationReference Tag -hi! link rstFootnoteReference Tag -hi! link rstHyperLinkReference Tag -hi! link rstHyperlinkTarget Tag -hi! link rstInlineInternalTargets Tag -hi! link rstInterpretedTextOrHyperlinkReference Tag -hi! link rstTodo Todo diff --git a/after/syntax/ruby.vim b/after/syntax/ruby.vim deleted file mode 100644 index fec00584..00000000 --- a/after/syntax/ruby.vim +++ /dev/null @@ -1,16 +0,0 @@ -if dracula#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 diff --git a/after/syntax/rust.vim b/after/syntax/rust.vim deleted file mode 100644 index 410334b2..00000000 --- a/after/syntax/rust.vim +++ /dev/null @@ -1,5 +0,0 @@ -if dracula#should_abort('rust') - finish -endif - -hi! link rustCommentLineDoc Comment diff --git a/after/syntax/sass.vim b/after/syntax/sass.vim deleted file mode 100644 index 35a810f9..00000000 --- a/after/syntax/sass.vim +++ /dev/null @@ -1,12 +0,0 @@ -if dracula#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 diff --git a/after/syntax/sh.vim b/after/syntax/sh.vim deleted file mode 100644 index 8d471ef7..00000000 --- a/after/syntax/sh.vim +++ /dev/null @@ -1,8 +0,0 @@ -if dracula#should_abort('bash', 'ksh', 'posix', 'sh') - finish -endif - -hi! link shCommandSub NONE -hi! link shEscape DraculaRed -hi! link shParen NONE -hi! link shParenError NONE diff --git a/after/syntax/tex.vim b/after/syntax/tex.vim deleted file mode 100644 index cd1478a4..00000000 --- a/after/syntax/tex.vim +++ /dev/null @@ -1,17 +0,0 @@ -if dracula#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 diff --git a/after/syntax/typescript.vim b/after/syntax/typescript.vim deleted file mode 100644 index c368fb57..00000000 --- a/after/syntax/typescript.vim +++ /dev/null @@ -1,57 +0,0 @@ -if dracula#should_abort('typescript', 'typescriptreact', 'typescript.tsx') - 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 - -" }}} diff --git a/after/syntax/typescriptreact.vim b/after/syntax/typescriptreact.vim deleted file mode 100644 index ec8062e9..00000000 --- a/after/syntax/typescriptreact.vim +++ /dev/null @@ -1,22 +0,0 @@ -if dracula#should_abort('typescriptreact', 'typescript.tsx') - finish -endif - -runtime! syntax/typescript.vim - -hi! link tsxAttrib DraculaGreenItalic -hi! link tsxEqual Operator -hi! link tsxIntrinsicTagName Keyword -hi! link tsxTagName Type - -" maxmellon/vim-jsx-pretty {{{ - -hi! link jsxTag Keyword -hi! link jsxTagName Keyword -hi! link jsxComponentName Type -hi! link jsxCloseTag Type -hi! link jsxAttrib DraculaGreenItalic -hi! link jsxCloseString Identifier -hi! link jsxOpenPunct Identifier - -" }}} diff --git a/after/syntax/vim.vim b/after/syntax/vim.vim deleted file mode 100644 index a49a93a6..00000000 --- a/after/syntax/vim.vim +++ /dev/null @@ -1,14 +0,0 @@ -if dracula#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 diff --git a/after/syntax/xml.vim b/after/syntax/xml.vim deleted file mode 100644 index 4b826983..00000000 --- a/after/syntax/xml.vim +++ /dev/null @@ -1,13 +0,0 @@ -if dracula#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=+>+ diff --git a/after/syntax/yaml.vim b/after/syntax/yaml.vim deleted file mode 100644 index fedc41f5..00000000 --- a/after/syntax/yaml.vim +++ /dev/null @@ -1,12 +0,0 @@ -if dracula#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 - diff --git a/autoload/dracula.vim b/autoload/dracula.vim index 23f96565..1216d635 100644 --- a/autoload/dracula.vim +++ b/autoload/dracula.vim @@ -43,15 +43,4 @@ let g:dracula#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#should_abort(...) - if ! exists('g:colors_name') || g:colors_name !=# 'dracula' - 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: diff --git a/colors/dracula.vim b/colors/dracula.vim index a10fc634..190b8561 100644 --- a/colors/dracula.vim +++ b/colors/dracula.vim @@ -77,6 +77,10 @@ if !exists('g:dracula_italic') let g:dracula_italic = 1 endif +if !exists('g:dracula_strikethrough') + let g:dracula_strikethrough = 1 +endif + if !exists('g:dracula_underline') let g:dracula_underline = 1 endif @@ -85,6 +89,10 @@ if !exists('g:dracula_undercurl') let g:dracula_undercurl = g:dracula_underline endif +if !exists('g:dracula_full_special_attrs_support') + let g:dracula_full_special_attrs_support = has('gui_running') +endif + if !exists('g:dracula_inverse') let g:dracula_inverse = 1 endif @@ -93,12 +101,17 @@ if !exists('g:dracula_colorterm') let g:dracula_colorterm = 1 endif +if !exists('g:dracula_high_contrast_diff') + let g:dracula_high_contrast_diff = 0 +endif + "}}}2 " Script Helpers: {{{2 let s:attrs = { \ 'bold': g:dracula_bold == 1 ? 'bold' : 0, \ 'italic': g:dracula_italic == 1 ? 'italic' : 0, + \ 'strikethrough': g:dracula_strikethrough == 1 ? 'strikethrough' : 0, \ 'underline': g:dracula_underline == 1 ? 'underline' : 0, \ 'undercurl': g:dracula_undercurl == 1 ? 'undercurl' : 0, \ 'inverse': g:dracula_inverse == 1 ? 'inverse' : 0, @@ -111,10 +124,15 @@ function! s:h(scope, fg, ...) " bg, attr_list, special 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 + " If the UI does not have full support for special attributes (like underline and + " undercurl) and the highlight does not explicitly set the foreground color, + " make the foreground the same as the attribute color to ensure the user will + " get some highlight if the attribute is not supported. The default behavior + " is to assume that terminals do not have full support, but the user can set + " the global variable `g:dracula_full_special_attrs_support` explicitly if the + " default behavior is not desirable. let l:special = get(a:, 3, ['NONE', 'NONE']) - if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running') + if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !g:dracula_full_special_attrs_support let l:fg[0] = l:special[0] let l:fg[1] = l:special[1] endif @@ -141,6 +159,7 @@ 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('DraculaFgStrikethrough', s:fg, s:none, [s:attrs.strikethrough]) call s:h('DraculaComment', s:comment) call s:h('DraculaCommentBold', s:comment, s:none, [s:attrs.bold]) @@ -185,11 +204,19 @@ 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('DraculaWinSeparator', s:comment, s:bgdark) call s:h('DraculaLink', s:cyan, s:none, [s:attrs.underline]) -call s:h('DraculaDiffChange', s:orange, s:none) +if g:dracula_high_contrast_diff + call s:h('DraculaDiffChange', s:yellow, s:purple) + call s:h('DraculaDiffDelete', s:bgdark, s:red) +else + call s:h('DraculaDiffChange', s:orange, s:none) + call s:h('DraculaDiffDelete', s:red, s:bgdark) +endif + call s:h('DraculaDiffText', s:bg, s:orange) -call s:h('DraculaDiffDelete', s:red, s:bgdark) +call s:h('DraculaInlayHint', s:comment, s:bgdark) " }}}2 @@ -228,14 +255,16 @@ hi! link Pmenu DraculaBgDark hi! link PmenuSbar DraculaBgDark hi! link PmenuSel DraculaSelection hi! link PmenuThumb DraculaSelection +call s:h('PmenuMatch', s:cyan, s:bgdark) +call s:h('PmenuMatchSel', s:cyan, s:selection) hi! link Question DraculaFgBold hi! link Search DraculaSearch call s:h('SignColumn', s:comment) hi! link TabLine DraculaBoundary -hi! link TabLineFill DraculaBgDarker +hi! link TabLineFill DraculaBgDark hi! link TabLineSel Normal hi! link Title DraculaGreenBold -hi! link VertSplit DraculaBoundary +hi! link VertSplit DraculaWinSeparator hi! link Visual DraculaSelection hi! link VisualNOS Visual hi! link WarningMsg DraculaOrangeInverse @@ -250,16 +279,52 @@ 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 LspDiagnosticsDefaultInformation DraculaCyan - hi! link LspDiagnosticsDefaultHint DraculaCyan - hi! link LspDiagnosticsDefaultError DraculaError - hi! link LspDiagnosticsDefaultWarning DraculaOrange - hi! link LspDiagnosticsUnderlineError DraculaErrorLine - hi! link LspDiagnosticsUnderlineHint DraculaInfoLine - hi! link LspDiagnosticsUnderlineInformation DraculaInfoLine - hi! link LspDiagnosticsUnderlineWarning DraculaWarnLine + hi! link LspReferenceText DraculaSelection + hi! link LspReferenceRead DraculaSelection + hi! link LspReferenceWrite DraculaSelection + " Link old 'LspDiagnosticsDefault*' hl groups + " for backward compatibility with neovim v0.5.x + hi! link LspDiagnosticsDefaultInformation DiagnosticInfo + hi! link LspDiagnosticsDefaultHint DiagnosticHint + hi! link LspDiagnosticsDefaultError DiagnosticError + hi! link LspDiagnosticsDefaultWarning DiagnosticWarn + hi! link LspDiagnosticsUnderlineError DiagnosticUnderlineError + hi! link LspDiagnosticsUnderlineHint DiagnosticUnderlineHint + hi! link LspDiagnosticsUnderlineInformation DiagnosticUnderlineInfo + hi! link LspDiagnosticsUnderlineWarning DiagnosticUnderlineWarn + hi! link LspInlayHint DraculaInlayHint + + hi! link DiagnosticInfo DraculaCyan + hi! link DiagnosticHint DraculaCyan + hi! link DiagnosticError DraculaError + hi! link DiagnosticWarn DraculaOrange + hi! link DiagnosticUnderlineError DraculaErrorLine + hi! link DiagnosticUnderlineHint DraculaInfoLine + hi! link DiagnosticUnderlineInfo DraculaInfoLine + hi! link DiagnosticUnderlineWarn DraculaWarnLine + + hi! link WinSeparator DraculaWinSeparator + hi! link NormalFloat Pmenu + + if has('nvim-0.9') + hi! link @lsp.type.class DraculaCyan + hi! link @lsp.type.decorator DraculaGreen + hi! link @lsp.type.enum DraculaCyan + hi! link @lsp.type.enumMember DraculaPurple + hi! link @lsp.type.function DraculaGreen + hi! link @lsp.type.interface DraculaCyan + hi! link @lsp.type.macro DraculaCyan + hi! link @lsp.type.method DraculaGreen + hi! link @lsp.type.namespace DraculaCyan + hi! link @lsp.type.parameter DraculaOrangeItalic + hi! link @lsp.type.property DraculaOrange + hi! link @lsp.type.struct DraculaCyan + hi! link @lsp.type.type DraculaCyanItalic + hi! link @lsp.type.typeParameter DraculaPink + hi! link @lsp.type.variable DraculaFg + endif else - hi! link SpecialKey DraculaSubtle + hi! link SpecialKey DraculaPink endif hi! link Comment DraculaComment @@ -311,6 +376,656 @@ hi! link helpCommand DraculaPurple hi! link helpExample DraculaGreen hi! link helpBacktick Special -"}}} +" }}} + +" Languages: {{{ + +" CSS: {{{ +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 +" }}} + +" Git Commit: {{{ +" 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 +" }}} + +" HTML: {{{ +hi! link htmlTag DraculaFg +hi! link htmlArg DraculaGreenItalic +hi! link htmlTitle DraculaFg +hi! link htmlH1 DraculaFg +hi! link htmlSpecialChar DraculaPurple +" }}} + +" JavaScript: {{{ +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 jsBuiltins DraculaCyan +hi! link jsClassDefinition DraculaCyan +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 jsFuncArgs DraculaOrangeItalic +hi! link jsFunction Keyword +hi! link jsNull Constant +hi! link jsObjectColon DraculaPink +hi! link jsSuper DraculaPurpleItalic +hi! link jsTemplateBraces Special +hi! link jsThis DraculaPurpleItalic +hi! link jsUndefined Constant + +" maxmellon/vim-jsx-pretty +hi! link jsxTag Keyword +hi! link jsxTagName Keyword +hi! link jsxComponentName Type +hi! link jsxCloseTag Type +hi! link jsxAttrib DraculaGreenItalic +hi! link jsxCloseString Identifier +hi! link jsxOpenPunct Identifier +" }}} + +" JSON: {{{ +hi! link jsonKeyword DraculaCyan +hi! link jsonKeywordMatch DraculaPink +" }}} + +" Lua: {{{ +hi! link luaFunc DraculaCyan +hi! link luaTable DraculaFg + +" tbastos/vim-lua +hi! link luaBraces DraculaFg +hi! link luaBuiltIn Constant +hi! link luaDocTag Keyword +hi! link luaErrHand DraculaCyan +hi! link luaFuncArgName DraculaOrangeItalic +hi! link luaFuncCall Function +hi! link luaLocal Keyword +hi! link luaSpecialTable Constant +hi! link luaSpecialValue DraculaCyan +" }}} + +" Markdown: {{{ +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 + +" plasticboy/vim-markdown +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 +" }}} + +" OCaml: {{{ +hi! link ocamlModule Type +hi! link ocamlModPath Normal +hi! link ocamlLabel DraculaOrangeItalic +" }}} + +" Perl: {{{ +" 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 +" }}} + +" PHP: {{{ +hi! link phpClass Type +hi! link phpClasses Type +hi! link phpDocTags DraculaCyanItalic +hi! link phpFunction Function +hi! link phpParent Normal +hi! link phpSpecialFunction DraculaCyan +" }}} + +" PlantUML: {{{ +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 +" }}} + +" PureScript: {{{ +hi! link purescriptModule Type +hi! link purescriptImport DraculaCyan +hi! link purescriptImportAs DraculaCyan +hi! link purescriptOperator Operator +hi! link purescriptBacktick Operator +" }}} + +" Python: {{{ +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 +" }}} + +" reStructuredText: {{{ +hi! link rstComment Comment +hi! link rstTransition Comment +hi! link rstCodeBlock DraculaGreen +hi! link rstInlineLiteral DraculaGreen +hi! link rstLiteralBlock DraculaGreen +hi! link rstQuotedLiteralBlock DraculaGreen +hi! link rstStandaloneHyperlink DraculaLink +hi! link rstStrongEmphasis DraculaOrangeBold +hi! link rstSections DraculaPurpleBold +hi! link rstEmphasis DraculaYellowItalic +hi! link rstDirective Keyword +hi! link rstSubstitutionDefinition Keyword +hi! link rstCitation String +hi! link rstExDirective String +hi! link rstFootnote String +hi! link rstCitationReference Tag +hi! link rstFootnoteReference Tag +hi! link rstHyperLinkReference Tag +hi! link rstHyperlinkTarget Tag +hi! link rstInlineInternalTargets Tag +hi! link rstInterpretedTextOrHyperlinkReference Tag +hi! link rstTodo Todo +" }}} + +" Ruby: {{{ +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 +" }}} + +" Rust: {{{ +hi! link rustCommentLineDoc Comment +" }}} + +" Sass: {{{ +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 +" }}} + +" Shell: {{{ +hi! link shCommandSub NONE +hi! link shEscape DraculaRed +hi! link shParen NONE +hi! link shParenError NONE +" }}} + +" Tex: {{{ +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 texSpecialChar DraculaPurple +hi! link texSubscripts DraculaPurple +hi! link texTitle DraculaFgBold +" }}} + +" Typescript: {{{ +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 + +hi! link tsxAttrib DraculaGreenItalic +hi! link tsxEqual Operator +hi! link tsxIntrinsicTagName Keyword +hi! link tsxTagName Type +" }}} + +" Vim: {{{ +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 +" }}} + +" XML: {{{ +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=+>+ +" }}} + +" YAML: {{{ +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 +" }}} + +" }}} + +" Plugins: {{{ + +" junegunn/fzf {{{ +if ! 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 +" }}} + +" dense-analysis/ale {{{ +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 +" }}} + +" ctrlpvim/ctrlp.vim: {{{ +hi! link CtrlPMatch IncSearch +hi! link CtrlPBufferHid Normal +" }}} + +" airblade/vim-gitgutter {{{ +hi! link GitGutterAdd DiffAdd +hi! link GitGutterChange DiffChange +hi! link GitGutterDelete DiffDelete +" }}} + +" Neovim-only plugins {{{ +if has('nvim') + + " nvim-treesitter/nvim-treesitter: {{{ + " The nvim-treesitter library defines many global highlight groups that are + " linked to the regular vim syntax highlight groups. We only need to redefine + " those highlight groups when the defaults do not match the dracula + " specification. + " https://github.com/nvim-treesitter/nvim-treesitter/blob/master/plugin/nvim-treesitter.vim + + " deprecated TS* highlight groups + " see https://github.com/nvim-treesitter/nvim-treesitter/pull/3656 + " # Misc + hi! link TSPunctSpecial Special + " # Constants + hi! link TSConstMacro Macro + hi! link TSStringEscape Character + hi! link TSSymbol DraculaPurple + hi! link TSAnnotation DraculaYellow + hi! link TSAttribute DraculaGreenItalic + " # Functions + hi! link TSFuncBuiltin DraculaCyan + hi! link TSFuncMacro Function + hi! link TSParameter DraculaOrangeItalic + hi! link TSParameterReference DraculaOrange + hi! link TSField DraculaOrange + hi! link TSConstructor DraculaCyan + " # Keywords + hi! link TSLabel DraculaPurpleItalic + " # Variable + hi! link TSVariableBuiltin DraculaPurpleItalic + " # Text + hi! link TSStrong DraculaFgBold + hi! link TSEmphasis DraculaFg + hi! link TSUnderline Underlined + hi! link TSTitle DraculaYellow + hi! link TSLiteral DraculaYellow + hi! link TSURI DraculaYellow + " HTML and JSX tag attributes. By default, this group is linked to TSProperty, + " which in turn links to Identifer (white). + hi! link TSTagAttribute DraculaGreenItalic + + if has('nvim-0.8.1') + " # Misc + hi! link @punctuation.delimiter Delimiter + hi! link @punctuation.bracket DraculaFg + hi! link @punctuation.special Special + hi! link @punctuation Delimiter + " # Constants + hi! link @constant Constant + hi! link @constant.builtin Constant + hi! link @constant.macro Macro + hi! link @string.regex @string.special + hi! link @string.escape @string.special + hi! link @string String + hi! link @string.regexp @string.special + hi! link @string.special SpecialChar + hi! link @string.special.symbol DraculaPurple + hi! link @string.special.url Underlined + hi! link @symbol DraculaPurple + hi! link @annotation DraculaYellow + hi! link @attribute DraculaGreenItalic + hi! link @namespace Structure + hi! link @module Structure + hi! link @module.builtin Special + " # Functions + hi! link @function.builtin DraculaCyan + hi! link @funcion.macro Function + hi! link @function Function + hi! link @parameter DraculaOrangeItalic + hi! link @parameter.reference DraculaOrange + hi! link @field DraculaOrange + hi! link @property DraculaFg + hi! link @constructor DraculaCyan + " # Keywords + hi! link @label DraculaPurpleItalic + hi! link @keyword.function DraculaPink + hi! link @keyword.operator Operator + hi! link @keyword Keyword + hi! link @exception DraculaPurple + hi! link @operator Operator + " # Types + hi! link @type Type + hi! link @type.builtin Special + hi! link @character Character + hi! link @character.special SpecialChar + hi! link @boolean Boolean + hi! link @number Number + hi! link @number.float Float + " # Variable + hi! link @variable DraculaFg + hi! link @variable.builtin DraculaPurpleItalic + hi! link @variable.parameter DraculaOrangeItalic + hi! link @variable.member DraculaOrange + " # Text + hi! link @text DraculaFg + hi! link @text.strong DraculaFgBold + hi! link @text.emphasis DraculaFg + hi! link @text.underline Underlined + hi! link @text.title DraculaYellow + hi! link @text.literal DraculaYellow + hi! link @text.uri DraculaYellow + hi! link @text.diff.add DiffAdd + hi! link @text.diff.delete DiffDelete + + hi! link @markup.strong DraculaFgBold + hi! link @markup.italic DraculaFgItalic + hi! link @markup.strikethrough DraculaFgStrikethrough + hi! link @markup.underline Underlined + + hi! link @markup Special + hi! link @markup.heading DraculaYellow + hi! link @markup.link Underlined + hi! link @markup.link.uri DraculaYellow + hi! link @markup.link.label SpecialChar + hi! link @markup.raw DraculaYellow + hi! link @markup.list Special + + hi! link @comment Comment + hi! link @comment.error DiagnosticError + hi! link @comment.warning DiagnosticWarn + hi! link @comment.note DiagnosticInfo + hi! link @comment.todo Todo + + hi! link @diff.plus Added + hi! link @diff.minus Removed + hi! link @diff.delta Changed + + " # Tags + hi! link @tag DraculaCyan + hi! link @tag.delimiter DraculaFg + " HTML and JSX tag attributes. By default, this group is linked to TSProperty, + " which in turn links to Identifer (white). + hi! link @tag.attribute DraculaGreenItalic + endif + " }}} + + " hrsh7th/nvim-cmp {{{ + hi! link CmpItemAbbrDeprecated DraculaError + + hi! link CmpItemAbbrMatch DraculaCyan + hi! link CmpItemAbbrMatchFuzzy DraculaCyan + + hi! link CmpItemKindText DraculaFg + hi! link CmpItemKindMethod Function + hi! link CmpItemKindFunction Function + hi! link CmpItemKindConstructor DraculaCyan + hi! link CmpItemKindField DraculaOrange + hi! link CmpItemKindVariable DraculaPurpleItalic + hi! link CmpItemKindClass DraculaCyan + hi! link CmpItemKindInterface DraculaCyan + hi! link CmpItemKindModule DraculaYellow + hi! link CmpItemKindProperty DraculaPink + hi! link CmpItemKindUnit DraculaFg + hi! link CmpItemKindValue DraculaYellow + hi! link CmpItemKindEnum DraculaPink + hi! link CmpItemKindKeyword DraculaPink + hi! link CmpItemKindSnippet DraculaFg + hi! link CmpItemKindColor DraculaYellow + hi! link CmpItemKindFile DraculaYellow + hi! link CmpItemKindReference DraculaOrange + hi! link CmpItemKindFolder DraculaYellow + hi! link CmpItemKindEnumMember DraculaPurple + hi! link CmpItemKindConstant DraculaPurple + hi! link CmpItemKindStruct DraculaPink + hi! link CmpItemKindEvent DraculaFg + hi! link CmpItemKindOperator DraculaPink + hi! link CmpItemKindTypeParameter DraculaCyan + + hi! link CmpItemMenu Comment + " }}} + + " lewis6991/gitsigns.nvim {{{ + hi! link GitSignsAdd DiffAdd + hi! link GitSignsAddLn DiffAdd + hi! link GitSignsAddNr DiffAdd + hi! link GitSignsChange DiffChange + hi! link GitSignsChangeLn DiffChange + hi! link GitSignsChangeNr DiffChange + + hi! link GitSignsDelete DraculaRed + hi! link GitSignsDeleteLn DraculaRed + hi! link GitSignsDeleteNr DraculaRed + " }}} + + " Saghen/blink.cmp {{{ + hi! link BlinkCmpKindText DraculaFg + hi! link BlinkCmpKindMethod Function + hi! link BlinkCmpKindFunction Function + hi! link BlinkCmpKindConstructor DraculaCyan + hi! link BlinkCmpKindField DraculaOrange + hi! link BlinkCmpKindVariable DraculaPurpleItalic + hi! link BlinkCmpKindClass DraculaCyan + hi! link BlinkCmpKindInterface DraculaCyan + hi! link BlinkCmpKindModule DraculaYellow + hi! link BlinkCmpKindProperty DraculaPink + hi! link BlinkCmpKindUnit DraculaFg + hi! link BlinkCmpKindValue DraculaYellow + hi! link BlinkCmpKindEnum DraculaPink + hi! link BlinkCmpKindKeyword DraculaPink + hi! link BlinkCmpKindSnippet DraculaFg + hi! link BlinkCmpKindColor DraculaYellow + hi! link BlinkCmpKindFile DraculaYellow + hi! link BlinkCmpKindReference DraculaOrange + hi! link BlinkCmpKindFolder DraculaYellow + hi! link BlinkCmpKindEnumMember DraculaPurple + hi! link BlinkCmpKindConstant DraculaPurple + hi! link BlinkCmpKindStruct DraculaPink + hi! link BlinkCmpKindEvent DraculaFg + hi! link BlinkCmpKindOperator DraculaPink + hi! link BlinkCmpKindTypeParameter DraculaCyan + " }}} + +endif +" }}} + +" }}} " vim: fdm=marker ts=2 sts=2 sw=2 fdl=0 et: diff --git a/doc/dracula.txt b/doc/dracula.txt index b60abb45..5dc6a663 100644 --- a/doc/dracula.txt +++ b/doc/dracula.txt @@ -1,4 +1,4 @@ -*dracula.txt* For Vim version 8 Last change: 2018 May 08 +*dracula.txt* For Vim version 8 Last change: 2021 Oct 22 *dracula* *vim-dracula* |\ ,, ~ @@ -78,6 +78,10 @@ Include bold attributes in highlighting > Include italic attributes in highlighting > let g:dracula_italic = 1 +* *g:dracula_strikethrough* +Include strikethrough attributes in highlighting > + let g:dracula_strikethrough = 1 + * *g:dracula_underline* Include underline attributes in highlighting > let g:dracula_underline = 1 @@ -86,6 +90,18 @@ Include underline attributes in highlighting > Include undercurl attributes in highlighting (only if underline enabled) > let g:dracula_undercurl = 1 +* *g:dracula_full_special_attrs_support* +Explicitly declare full support for special attributes. By default it is 1 +for graphical applications and 0 for terminals and terminal emulators. On +terminal emulators, set to 1 to allow underline/undercurl highlights without +changing the foreground color. > + let g:dracula_full_special_attrs_support = 1 + +* *g:dracula_high_contrast_diff* +Use high-contrast color when in diff mode. By default it is disabled, set to +1 to enable it. + let g:dracula_high_contrast_diff = 1 + * *g:dracula_inverse* Include inverse attributes in highlighting > let g:dracula_inverse = 1 @@ -98,19 +114,44 @@ Include background fill colors > CUSTOMIZATION *dracula-customization* Like all colorschemes, Dracula is easy to customize with |autocmd|. Make use -of the |ColorScheme| event as in the following examples. +of the |ColorScheme| event as in the following examples. Like all autocommands, +it's best to put all of your personal changes in an |augroup|: > + + augroup DraculaCustomization + autocmd! + " Change the highlight group used with vim-gitgutter. + autocmd ColorScheme dracula highlight! link GitGutterDelete DraculaRed + augroup END + + colorscheme dracula +< + +The autocommand must be defined before the colorscheme is set. To overwrite +any highlight link that is already established in `colors/dracula.vim`, you +will need to use the bang (!) modifier on the |hi-link| command. + +For more than one customization, it will be easier to define a function that +can be called from the autocommand: > + + function! s:customize_dracula() abort + " Link a highlight group to a predefined highlight group. + " See `colors/dracula.vim` for all predefined highlight groups. + " To overwrite a highlight link created in `colors/dracula.vim`, you + " will need to use the bang (!) modifier + highlight! link GitGutterDelete DraculaRed -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... + " Customize existing highlight groups, for example adding underline. + highlight CursorLine cterm=underline term=underline + endfunction + + augroup DraculaCustomization + autocmd! + autocmd ColorScheme dracula call s:customize_dracula() augroup END -> -- To add underline styling to |hl-CursorLine|, you can use the following: > - autocmd ColorScheme dracula hi CursorLine cterm=underline term=underline + colorscheme dracula < + ============================================================================== LICENSE *dracula-license* diff --git a/dracula-pro.png b/dracula-pro.png new file mode 100644 index 00000000..559212a7 Binary files /dev/null and b/dracula-pro.png differ diff --git a/screenshot.png b/screenshot.png index cf0a36e1..a6db5c67 100644 Binary files a/screenshot.png and b/screenshot.png differ