-- Base16 Theme: Default Dark
-- http://chriskempson.com/projects/base16/
-- Theme author: Chris Kempson (http://chriskempson.com)
-- Template Repository: https://github.com/rgieseke/base16-textadept
-- Template adapted from Textadept's default templates
-- Copyright 2007-2020 Mitchell mitchell.att.foicica.com. MIT licensed.
-- Original from: https://raw.githubusercontent.com/rgieseke/base16-textadept/master/themes/base16-default-dark.lua

local view, colors, styles = view, lexer.colors, lexer.styles

-- Base16 colors
colors.base00 = 0x222827 -- * default background [all bg except current line hightlight]
colors.base01 = 0x252B2A -- * embedded/edge color [current line bg/php tag bg]
colors.base02 = 0x8A9090 -- line number/call tip
colors.base03 = 0x585858 -- * comment
colors.base04 = 0xb8b8b8
colors.base05 = 0xd8d8d8 -- operator
colors.base0G = 0x7226F9 -- real operator
colors.base06 = 0xe8e8e8
colors.base07 = 0xf8f8f8 -- caret color
colors.base08 = 0xF2F8F8 -- error/variable/brace bad/diff red
colors.base09 = 0xFF81AE -- constant/number/type
colors.base0A = 0x88caf7 -- class/label/preprocessor
colors.base0B = 0x74DBE6 -- * string
colors.base0C = 0xb9c186 -- regex/bracelight
colors.base0D = 0xc2af7c -- bookmark
colors.base0E = 0x7226F9 -- * function/keyword
colors.base0F = 0x4669a1 -- embedded

colors.base0H = 0xEFD966 -- FUNC_IDENTIFIERS
colors.base0I = 0x0000ff -- php_tag
colors.base0J = 0x2EE2A6 -- function names, green

-- Default font.
if not font then
  font = WIN32 and 'Consolas' or OSX and 'Menlo-Regular' or
    'Monospace'
end
if not size then size = not OSX and 10 or 12 end

-- Predefined styles.
styles.default = {
  font = font, size = size, fore = colors.base05, back = colors.base00
}
styles.line_number = {fore = colors.base04, back = colors.base00}
--styles.control_char =
styles.indent_guide = {fore = colors.base03}
styles.call_tip = {fore = colors.base04, back = colors.base01}
styles.fold_display_text = {fore = colors.base01}

-- Token styles.
styles.class = {fore = colors.base0A}
styles.comment = {fore = colors.base03}
styles.constant = {fore = colors.base09}
styles.embedded = {fore = colors.base0F, back = colors.base01}
styles.error = {fore = colors.base08, italics = true}
styles['function'] = {fore = colors.base0D}
styles.identifier = {}
styles.keyword = {fore = colors.base0E}
styles.label = {fore = colors.base08}
styles.number = {fore = colors.base09}
styles.operator = {fore = colors.base0G}
styles.preprocessor = {fore = colors.base0B}
styles.regex = {fore = colors.base0C}
styles.string = {fore = colors.base0B}
styles.type = {fore = colors.base0A}
styles.variable = {fore = colors.base08}
styles.whitespace = {}

-- Custom additions
styles.php_tag = {fore = colors.base0I}
styles.func_tags = {fore = colors.base0H}
styles.func_head_names = {fore = colors.base0J} -- function function_head_names(...
styles.special_tags = {fore = colors.base0H, italics = true} -- class, function etc.

-- Multiple Selection and Virtual Space
--view.additional_sel_alpha =
--view.additional_sel_fore =
--view.additional_sel_back =
--view.additional_caret_fore =

-- Caret and Selection Styles.
view:set_sel_fore(true, colors.base06)
view:set_sel_back(true, colors.base02)
--view.sel_alpha =
view.caret_fore = colors.base05
view.caret_line_back = colors.base01
--view.caret_line_back_alpha =

-- Fold Margin.
view:set_fold_margin_color(true, colors.base00)
view:set_fold_margin_hi_color(true, colors.base00)

-- Markers.
--view.marker_fore[textadept.bookmarks.MARK_BOOKMARK] = colors.base00
view.marker_back[textadept.bookmarks.MARK_BOOKMARK] = colors.base0B
--view.marker_fore[textadept.run.MARK_WARNING] = colors.base00
view.marker_back[textadept.run.MARK_WARNING] = colors.base0E
--view.marker_fore[textadept.run.MARK_ERROR] = colors.base00
view.marker_back[textadept.run.MARK_ERROR] = colors.base08
for i = view.MARKNUM_FOLDEREND, view.MARKNUM_FOLDEROPEN do -- fold margin
  view.marker_fore[i] = colors.base00
  view.marker_back[i] = colors.base03
  view.marker_back_selected[i] = colors.base02
end

-- Indicators.
view.indic_fore[ui.find.INDIC_FIND] = colors.base09
view.indic_alpha[ui.find.INDIC_FIND] = 255
view.indic_fore[textadept.editing.INDIC_BRACEMATCH] = colors.base06
view.indic_fore[textadept.editing.INDIC_HIGHLIGHT] = colors.base07
view.indic_alpha[textadept.editing.INDIC_HIGHLIGHT] = 64
view.indic_fore[textadept.snippets.INDIC_PLACEHOLDER] = colors.base04

-- Call tips.
view.call_tip_fore_hlt = colors.base06

-- Long Lines.
view.edge_color = colors.base02

-- Add red, green, and yellow for diff lexer.
colors.red = colors.base08
colors.green = colors.base0B
colors.yellow = colors.base0E
