diff --git a/autoload/airline/themes/codedark.vim b/autoload/airline/themes/codedark.vim
index ec393d8..ef8e7b5 100644
--- a/autoload/airline/themes/codedark.vim
+++ b/autoload/airline/themes/codedark.vim
@@ -38,7 +38,7 @@ elseif !exists("g:codedark_term256")
     let g:codedark_term256=0
 endif
 
-let s:cdFront = {'gui': '#FFFFFF', 'cterm':  (g:codedark_term256 ? '15' : s:cterm07)}
+let s:cdFront = {'gui': '#FFFFFF', 'cterm':  (g:codedark_term256 ? '231' : s:cterm07)}
 let s:cdFrontGray = {'gui': '#D4D4D4', 'cterm': (g:codedark_term256 ? '188' : s:cterm05)}
 let s:cdBack = {'gui': '#1E1E1E', 'cterm': (g:codedark_term256 ? '234' : s:cterm00)}
 let s:cdSelection = {'gui': '#264F78', 'cterm': (g:codedark_term256 ? '24' : s:cterm01)}
diff --git a/colors/codedark.vim b/colors/codedark.vim
index 169f591..e67827b 100644
--- a/colors/codedark.vim
+++ b/colors/codedark.vim
@@ -107,6 +107,11 @@ if !exists("g:codedark_conservative")
     let g:codedark_conservative=0
 endif
 
+" Italicized comments
+if !exists("g:codedark_italics")
+    let g:codedark_italics=0
+endif
+
 let s:cdGray = {'gui': '#808080', 'cterm': s:cterm04, 'cterm256': '08'}
 let s:cdViolet = {'gui': '#646695', 'cterm': s:cterm04, 'cterm256': '60'}
 let s:cdBlue = {'gui': '#569CD6', 'cterm': s:cterm0D, 'cterm256': '75'}
@@ -125,6 +130,7 @@ let s:cdYellow = {'gui': '#DCDCAA', 'cterm': s:cterm0A, 'cterm256': '187'}
 if g:codedark_conservative | let s:cdYellow = s:cdFront | endif
 let s:cdPink = {'gui': '#C586C0', 'cterm': s:cterm0E, 'cterm256': '176'}
 if g:codedark_conservative | let s:cdPink = s:cdBlue | endif
+let s:cdSilver = {'gui': '#C0C0C0', 'cterm': s:cterm05, 'cterm256': '7'}
 
 " Vim editor colors
 "    <sid>hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE, SPECIAL)
@@ -134,7 +140,7 @@ call <sid>hi('Cursor', s:cdCursorDark, s:cdCursorLight, 'none', {})
 call <sid>hi('CursorLine', {}, s:cdCursorDarkDark, 'none', {})
 call <sid>hi('CursorColumn', {}, s:cdCursorDarkDark, 'none', {})
 call <sid>hi('Directory', s:cdBlue, s:cdBack, 'none', {})
-call <sid>hi('DiffAdd', {}, s:cdDiffGreenDark, 'none', {})
+call <sid>hi('DiffAdd', {}, s:cdDiffGreenLight, 'none', {})
 call <sid>hi('DiffChange', {}, s:cdDiffRedDark, 'none', {})
 call <sid>hi('DiffDelete', {}, s:cdDiffRedLight, 'none', {})
 call <sid>hi('DiffText', {}, s:cdDiffRedLight, 'none', {})
@@ -169,7 +175,12 @@ call <sid>hi('VisualNOS', s:cdNone, s:cdSelection, 'none', {})
 call <sid>hi('WarningMsg', s:cdOrange, s:cdBack, 'none', {})
 call <sid>hi('WildMenu', s:cdNone, s:cdSelection, 'none', {})
 
-call <sid>hi('Comment', s:cdGreen, {}, 'none', {})
+" Legacy groups for official git.vim and diff.vim syntax
+hi! link diffAdded DiffAdd
+hi! link diffChanged DiffChange
+hi! link diffRemoved DiffDelete
+
+if g:codedark_italics | call <sid>hi('Comment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('Comment', s:cdGreen, {}, 'none', {}) | endif
 
 call <sid>hi('Constant', s:cdBlue, {}, 'none', {})
 call <sid>hi('String', s:cdOrange, {}, 'none', {})
@@ -204,7 +215,7 @@ call <sid>hi('Special', s:cdYellowOrange, {}, 'none', {})
 call <sid>hi('SpecialChar', s:cdFront, {}, 'none', {})
 call <sid>hi('Tag', s:cdFront, {}, 'none', {})
 call <sid>hi('Delimiter', s:cdFront, {}, 'none', {})
-call <sid>hi('SpecialComment', s:cdGreen, {}, 'none', {})
+if g:codedark_italics | call <sid>hi('SpecialComment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('SpecialComment', s:cdGreen, {}, 'none', {}) | endif
 call <sid>hi('Debug', s:cdFront, {}, 'none', {})
 
 call <sid>hi('Underlined', s:cdNone, {}, 'underline', {})
@@ -221,6 +232,64 @@ call <sid>hi('SpellCap', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
 call <sid>hi('SpellRare', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
 call <sid>hi('SpellLocal', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
 
+
+" Neovim Treesitter:
+call <sid>hi('TSError', s:cdRed, {}, 'none', {})
+call <sid>hi('TSPunctDelimiter', s:cdFront, {}, 'none', {})
+call <sid>hi('TSPunctBracket', s:cdFront, {}, 'none', {})
+call <sid>hi('TSPunctSpecial', s:cdFront, {}, 'none', {})
+" Constant
+call <sid>hi('TSConstant', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSConstBuiltin', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSConstMacro', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TSStringRegex', s:cdOrange, {}, 'none', {})
+call <sid>hi('TSString', s:cdOrange, {}, 'none', {})
+call <sid>hi('TSStringEscape', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSCharacter', s:cdOrange, {}, 'none', {})
+call <sid>hi('TSNumber', s:cdLightGreen, {}, 'none', {})
+call <sid>hi('TSBoolean', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSFloat', s:cdLightGreen, {}, 'none', {})
+call <sid>hi('TSAnnotation', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSAttribute', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TSNamespace', s:cdBlueGreen, {}, 'none', {})
+" Functions
+call <sid>hi('TSFuncBuiltin', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSFunction', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSFuncMacro', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSParameter', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSParameterReference', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSMethod', s:cdYellow, {}, 'none', {})
+call <sid>hi('TSField', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSProperty', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSConstructor', s:cdBlueGreen, {}, 'none', {})
+" Keywords
+call <sid>hi('TSConditional', s:cdPink, {}, 'none', {})
+call <sid>hi('TSRepeat', s:cdPink, {}, 'none', {})
+call <sid>hi('TSLabel', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSKeywordFunction', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSKeywordOperator', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSOperator', s:cdFront, {}, 'none', {})
+call <sid>hi('TSException', s:cdPink, {}, 'none', {})
+call <sid>hi('TSType', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TSTypeBuiltin', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSStructure', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSInclude', s:cdPink, {}, 'none', {})
+" Variable
+call <sid>hi('TSVariable', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('TSVariableBuiltin', s:cdLightBlue, {}, 'none', {})
+" Text
+call <sid>hi('TSText', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSStrong', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSEmphasis', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSUnderline', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSTitle', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSLiteral', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('TSURI', s:cdYellowOrange, {}, 'none', {})
+" Tags
+call <sid>hi('TSTag', s:cdBlue, {}, 'none', {})
+call <sid>hi('TSTagDelimiter', s:cdGray, {}, 'none', {})
+
 " Markdown:
 call <sid>hi('markdownBold', s:cdBlue, {}, 'bold', {})
 call <sid>hi('markdownCode', s:cdOrange, {}, 'none', {})
@@ -233,6 +302,29 @@ call <sid>hi('markdownUrl', s:cdLightBlue, {}, 'underline', {})
 call <sid>hi('markdownLinkText', s:cdOrange, {}, 'none', {})
 call <sid>hi('markdownEscape', s:cdYellowOrange, {}, 'none', {})
 
+" Asciidoc (for default syntax highlighting)
+call <sid>hi("asciidocAttributeEntry", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocAttributeList", s:cdPink, {}, 'none', {})
+call <sid>hi("asciidocAttributeRef", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocHLabel", s:cdBlue, {}, 'bold', {})
+call <sid>hi("asciidocListingBlock", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocMacroAttributes", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocOneLineTitle", s:cdBlue, {}, 'bold', {})
+call <sid>hi("asciidocPassthroughBlock", s:cdBlue, {}, 'none', {})
+call <sid>hi("asciidocQuotedMonospaced", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocTriplePlusPassthrough", s:cdYellow, {}, 'none', {})
+call <sid>hi("asciidocMacro", s:cdPink, {}, 'none', {})
+call <sid>hi("asciidocAdmonition", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocQuotedEmphasized", s:cdBlue, {}, 'italic', {})
+call <sid>hi("asciidocQuotedEmphasized2", s:cdBlue, {}, 'italic', {})
+call <sid>hi("asciidocQuotedEmphasizedItalic", s:cdBlue, {}, 'italic', {})
+hi! link asciidocBackslash Keyword
+hi! link asciidocQuotedBold markdownBold
+hi! link asciidocQuotedMonospaced2 asciidocQuotedMonospaced
+hi! link asciidocQuotedUnconstrainedBold asciidocQuotedBold
+hi! link asciidocQuotedUnconstrainedEmphasized asciidocQuotedEmphasized
+hi! link asciidocURL markdownUrl
+
 " JSON:
 call <sid>hi('jsonKeyword', s:cdLightBlue, {}, 'none', {})
 call <sid>hi('jsonEscape', s:cdYellowOrange, {}, 'none', {})
@@ -450,6 +542,7 @@ call <sid>hi('luaFuncKeyword', s:cdPink, {}, 'none', {})
 call <sid>hi('luaLocal', s:cdPink, {}, 'none', {})
 call <sid>hi('luaBuiltIn', s:cdBlue, {}, 'none', {})
 
+
 " SH:
 call <sid>hi('shDeref', s:cdLightBlue, {}, 'none', {})
 call <sid>hi('shVariable', s:cdLightBlue, {}, 'none', {})
@@ -463,3 +556,59 @@ call <sid>hi('sqlOperator', s:cdPink, {}, 'none', {})
 call <sid>hi('yamlKey', s:cdBlue, {}, 'none', {})
 call <sid>hi('yamlConstant', s:cdBlue, {}, 'none', {})
 
+" C++:
+call <sid>hi('CTagsClass', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsStructure', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsNamespace', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsGlobalVariable', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsDefinedName ', s:cdBlue, {}, 'none', {})
+highlight def link CTagsFunction Function
+highlight def link CTagsMember Identifier
+
+" C++ color_coded
+call <sid>hi('StructDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('UnionDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeRef', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypedefDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeAliasDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('EnumDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateTypeParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeAliasTemplateDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassTemplate', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassTemplatePartialSpecialization', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('FunctionTemplate', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateRef', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateTemplateParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('UsingDeclaration', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('MemberRef', s:cdLightBlue, {}, 'italic', {})
+call <sid>hi('MemberRefExpr', s:cdYellow, {}, 'italic', {})
+call <sid>hi('Namespace', s:cdSilver, {}, 'none', {})
+call <sid>hi('NamespaceRef', s:cdSilver, {}, 'none', {})
+call <sid>hi('NamespaceAlias', s:cdSilver, {}, 'none', {})
+
+" C++ lsp-cxx-highlight
+call <sid>hi('LspCxxHlSymClass', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymStruct', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymEnum', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymTypeAlias', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymTypeParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymConcept', s:cdBlueGreen, {}, 'italic', {})
+call <sid>hi('LspCxxHlSymNamespace', s:cdSilver, {}, 'none', {})
+
+" Coc Explorer:
+call <sid>hi('CocHighlightText', {}, s:cdSelection, 'none', {})
+call <sid>hi('CocExplorerIndentLine', s:cdCursorDark, {}, 'none', {})
+
+" nvim-cmp
+call <sid>hi('CmpItemAbbrDeprecated', s:cdGray, {}, 'strikethrough', {})
+call <sid>hi('CmpItemAbbrMatch', s:cdBlue, {}, 'none', {})
+call <sid>hi('CmpItemAbbrMatchFuzzy', s:cdBlue, {}, 'none', {})
+call <sid>hi('CmpItemKindVariable', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('CmpItemKindInterface', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('CmpItemKindText', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('CmpItemKindFunction', s:cdPink, {}, 'none', {})
+call <sid>hi('CmpItemKindMethod ', s:cdPink, {}, 'none', {})
+call <sid>hi('CmpItemKindKeyword', s:cdFront, {}, 'none', {})
+call <sid>hi('CmpItemKindProperty', s:cdFront, {}, 'none', {})
+call <sid>hi('CmpItemKindUnit', s:cdFront, {}, 'none', {})