--[[******************************************************************************
    *                                                                            *
    *                              PureBASIC Theme                               *
    *                                                                            *
    *                             v1.0 - 2016/10/27                              *
    *                                                                            *
    ******************************************************************************
    This theme emulates the native PureBASIC IDE color scheme.
    Written by Tristano Ajmone <tajmone@gmail.com>
    https://github.com/tajmone
    Released into the public domain according to the Unlicense licsense:
    http://unlicense.org/
  ]]

Description = "PureBASIC"

Categories = {"light"}

Canvas   = { Colour="#FFFFDF" }         -- "Half and Half"

Default  = { Colour="#000000" }         -- "Black"
Number   = Default
Operator = Default

String  = { Colour="#0080FF" }          -- "Azure Radiance"
Escape  = String
StringPreProc = Escape
Interpolation  =  Escape

LineComment = { Colour="#00AAAA" }      -- "Persian Green/Tradewind"
BlockComment = LineComment

LineNum      = { Colour="#808080" }     -- "Gray"

PreProcessor  = { Colour="#924B72" }    -- not used by PureBASIC syntax

Keywords = {
  { Colour="#006666" , Bold=true },     -- "Blue Stone"  (PB Keywords)
  { Colour="#924B72" },                 -- "Cannon Pink" (constants)
  { Colour="#006666" },                 -- "Blue Stone"  (Procedure calls)
  String,                               -- (Escaped-Strings Prefix "~")
  { Colour= "#006666" },
  { Colour= "#176629" },
}

-- new LSP based elements:

SemanticTokenTypes = {
  { Type = 'type', Style = Keywords[2] },
  { Type = 'class', Style =  Keywords[1] },
  { Type = 'struct', Style =  Keywords[4] },
  { Type = 'interface', Style = Keywords[1] },
  { Type = 'parameter', Style = Keywords[6] },
  { Type = 'variable', Style = Keywords[5] },
  { Type = 'enumMember', Style = Keywords[5] },
  { Type = 'function', Style = Keywords[4] },
  { Type = 'method', Style = Keywords[4] },
  { Type = 'keyword', Style =  Keywords[1]},
  { Type = 'number', Style = Number },
  { Type = 'regexp', Style = String },
  { Type = 'operator', Style = Operator },
}
