--[[ "edit-fasm.theme"
******************************************************************************
*                                                                            *
*                                 FASM Theme                                 *
*                                                                            *
*                             v1.0 - 2017/03/14                              *
*                                                                            *
******************************************************************************
This theme mimics the native color scheme of Flat assembler's editor:
    https://flatassembler.net

Color names calculated using Name That Color (NTC) foss CLI tool:
    https://github.com/tajmone/name-that-color
------------------------------------------------------------------------------
Written by Tristano Ajmone <tajmone@gmail.com>
    https://github.com/tajmone
Released into the public domain according to the Unlicense license:
    http://unlicense.org/
------------------------------------------------------------------------------
Project repository:
    https://github.com/tajmone/fasm-highlighting
------------------------------------------------------------------------------
]]

Description   = "FASM Editor"

Categories = {"light"}

Canvas        = { Colour="#FFFFFF" }  -- "White"

Default       = { Colour="#000000" }  -- "Black"
Number        = { Colour="#009000" }  -- "Forest Green"
Operator      = { Colour="#3030F0" }  -- "Blue"

String        = { Colour="#B00000" }  -- "Bright Red"
Escape        = String
StringPreProc = String
Interpolation = String

LineComment   = { Colour="#808080" }  -- "Gray"
BlockComment  = LineComment

LineNum       = { Colour="#0078D7" }  -- "Lochmara" blue (in FASM IDE: Selection BG)

PreProcessor  = Operator -- (not used by FASM syntax)

Keywords =  {
                Default, -- REGISTERS
                Default, -- INSTRUCTIONS
                Default, -- LABELS
                Default, -- DIRECTIVES
                Default,
                Default,
}

-- 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 },
}
--[[
==============================================================================
                                  CHANGELOG
==============================================================================
v1.0 (2017/03/14)
  -- First release.
  -- Flat Assembler v1.71.60 (2017/03/04).
  -- Highlight v3.35 (2017/02/28).
]]
