/******************************************************************************/
/*                                                                            */
/* rexx-dark.css - Sample CSS for Rexx highlighting, dark background          */
/* =================================================================          */
/*                                                                            */
/* This program is part of the Rexx Parser package                            */
/* [See https://rexx.epbcn.com/rexx-parser/]                                  */
/*                                                                            */
/* Copyright (c) 2024-2026 Josep Maria Blasco <josep.maria.blasco@epbcn.com>  */
/*                                                                            */
/* License: Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0)  */
/*                                                                            */
/* Version history:                                                           */
/*                                                                            */
/* Date     Version Details                                                   */
/* -------- ------- --------------------------------------------------------- */
/* 20241206    0.1  First public release                                      */
/* 20241209    0.1b New call system                                           */
/* 20241222    0.1c Line number support                                       */
/* 20250103    0.1e Add TUTOR-flavored Unicode classes                        */
/* 20250116    0.1f Add support for sub-keywords                              */
/* 20250328    0.2  Main dir is now rexx-parser instead of rexx[.]parser      */
/* 20250406         Rename fractional numbers to decimal                      */
/* 20250530    0.2c Add support for detailed string highlighting              */
/* 20250624    0.2d Complete refactor to use nesting and "&"                  */
/* 20250630         Add support for doc-comment subelements                   */
/* 20250722         Add styles for rx-dskw                                    */
/* 20251014    0.2e Add support for Lua extensions                            */
/*                                                                            */
/* 20251109         use rexx-dark as template for vim colorschemes            */
/******************************************************************************/

/******************************************************************************/
/******************************************************************************/
/* BASE SELECTOR: highlight-rexx-vim-dark-koehler */
/******************************************************************************/
/******************************************************************************/
/*   Format: "highlight-rexx-vim-dark-koehler                                           */
/*   It will apply to the whole CSS file                                      */
/******************************************************************************/

.highlight-rexx-vim-dark-koehler {

/******************************************************************************/
/* Default settings                                                           */
/* ================                                                           */
/*                                                                            */
/*   The "rexx" class is used as a fallback when no suitable class is found   */
/*                                                                            */
/******************************************************************************/

  pre, .rexx {
    /* %NORMAL%     */ background-color: #000000 ; color: #ffffff ;            /* vim: background and foreground */
  }

/******************************************************************************/
/* Support for line numbers                                                   */
/* ========================                                                   */
/******************************************************************************/

  .rx-lineno  {                         /* ANSI Driver only                   */
    /* %LINENR%     */ color: #ffff00 ;
  }
  .rx-linebar {                         /* ANSI Driver only                   */
    /* %LINENR%     */ color: #ffff00 ;
  }

  pre.number-lines {
          padding-left: 50px;
    &.w3 {padding-left: 58px; code:before {width:58px;} }
    &.w4 {padding-left: 65px; code:before {width:65px;} }
    &.w5 {padding-left: 72px; code:before {width:72px;} }
    code:before{
      content: attr(lineno) " | ";
      position:absolute;
      left:10px;
      width:50px;
      text-align:right;
      /* %LINENR%     */ color: #ffff00 ;
    }
  }

/******************************************************************************/
/* Whitespace and continuations                                               */
/* ============================                                               */
/******************************************************************************/

  /* .rx-ws, .rx-cont { color: #cc0; } */
  .rx-cont { /* %WILDMENU%   */ background-color: #ffff00 ; color: #000000 ; }

/******************************************************************************/
/* Standard (non-doc) comments                                                */
/* ===========================                                                */
/******************************************************************************/

  .rx-cm,                               /* Classic, block comments            */
  .rx-lncm {                            /* Line comments                      */
    /* %COMMENT%    */ color: #80a0ff ;
  }

/******************************************************************************/
/* Doc-comments                                                               */
/* ============                                                               */
/******************************************************************************/

  .rx-doc-comment,                      /* Classic style doc-comments         */
  .rx-doc-comment-markdown {            /* Markdown style doc-comments        */

                                        /* Default values (for "block"..      */
                                        /* ..highlighting.                    */
    /* %COMMENT%    */ color: #80a0ff ;

    &.rx-doc-comment-armature,          /* Armature, whitespace and main      */
    &.rx-doc-comment-whitespace,        /* description share the same style.  */
    &.rx-doc-comment-main-description {
        /* %COMMENT%    */ color: #80a0ff ;
    }
    &.rx-doc-comment-summary {          /* Initial summary statement.         */
        /* %COMMENT%    */ color: #80a0ff ;
    }
    &.rx-doc-comment-tag {              /* @block-tag                         */
        /* %COMMENT%    */ color: #80a0ff ;
    }
    &.rx-doc-comment-tag-value {        /* As the name in "@param name".      */
        /* %COMMENT%    */ color: #80a0ff ;
    }
    &.rx-doc-comment-tag-description {  /* Text after @deprecated.            */
        /* %COMMENT%    */ color: #80a0ff ;
    }
  }

/******************************************************************************/
/* Shebangs                                                                   */
/* ========                                                                   */
/******************************************************************************/

  .rx-shb { /* %SPECIAL%    */ color: #ffa500 ; }

/******************************************************************************/
/* Keywords and subkeywords, assignment sequences, and "::"                   */
/* ========================================================                   */
/******************************************************************************/

  .rx-kw,                               /* Keywords                           */
  .rx-skw,                              /* Subkeywords                        */
  .rx-asg                               /* Assignment sequences (incl. "=")   */
  {
    /* %STATEMENT%  */ color: #ffff60 ;font-weight: bold;  /* %_KEYWORD_% */
  }

  .rx-dkw,                              /* Directive keywords                 */
  .rx-dskw,                             /* Directive subkeywords              */
  .rx-dir                               /* The directive start "::" sequence  */
  {
    /* %PREPROC%    */ color: #ff80ff ; /* %_TYPE_% */
  }

  /* Additionally, directive keywords and subkeywords are underlined          */

  .rx-dkw, .rx-dskw { /* %NONE% */ }

/******************************************************************************/
/* Strings (including taken constants that are strings)                       */
/* ====================================================                       */
/******************************************************************************/

  .rx-str , .rx-bstr, .rx-xstr,         /* Classic Rexx strings               */
  .rx-ystr, .rx-pstr, .rx-gstr, .rx-tstr, .rx-ustr { /* TUTOR Unicode strings */
    /* %STRING%     */ color: #ffa0a0 ;                            /* the inner part of the string       */
    &.rx-ssuf            { /* %STRING%     */ color: #ffa0a0 ; }   /* String suffix                      */
    &.rx-oquo, &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }   /* Quotes                             */
  }

  /* Taken constants that are strings                                         */

  .rx-const {
    &.rx-ssuf            { /* %SPECIAL%    */ color: #ffa500 ; /* %_STRING_% */ }   /* String suffix                      */
    &.rx-oquo, &.rx-cquo { /* %SPECIAL%    */ color: #ffa500 ; /* %_STRING_% */ }   /* Quotes                             */
  }

/******************************************************************************/
/* Numbers                                                                    */
/* =======                                                                    */
/******************************************************************************/

  /*--------------------------------------------------------------------------*/
  /* Simple highlighting classes (not used by the highlighter)                */
  /*--------------------------------------------------------------------------*/

  .rx-int,                              /* Integers                           */
  .rx-deci,                             /* Decimals (w/ a dot, no exponent)   */
  .rx-exp {                             /* Exponentials (w/ or w/o a dot)     */
    /* %NUMBER%     */ color: #ffa0a0 ;
  }

  /*--------------------------------------------------------------------------*/
  /* Detailed highlighting (includes non X and B strings that are numbers)    */
  /*--------------------------------------------------------------------------*/

  .rx-nsign { /* %NUMBER%     */ color: #ffa0a0 ; }                /* Number sign (for strings only)     */


  .rx-ipart,                            /* Integer part                       */
  .rx-fpart,                            /* Fractional part                    */
  .rx-expon                             /* The exponent itself                */
  {
    /* %NUMBER%     */ color: #ffa0a0 ;
  }

  .rx-dpoint { /* %NUMBER%     */ color: #ffa0a0 ; }        /* The decimal point                  */
  .rx-emark  { /* %NUMBER%     */ color: #ffa0a0 ; }        /* The exponent mark ("E" or "e")     */
  .rx-esign  { /* %NUMBER%     */ color: #ffa0a0 ; }        /* The (optional) exponent sign       */

/******************************************************************************/
/* Variables and constant symbols                                             */
/* ==============================                                             */
/******************************************************************************/

  /* Set a common color for all variables                                     */
  .rx-var, .rx-xvar, .rx-stem, .rx-xstem, .rx-cmp, .rx-xcmp { /* %IDENTIFIER% */ color: #40ffff ; }

  /* Additionally, exposed variables will be italicized                       */
  .rx-xvar, .rx-xstem, .rx-xcmp { /* %IDENTIFIER% */ color: #40ffff ; }

  /* Environment symbols                                                      */
  .rx-env { /* %PREPROC%    */ color: #ff80ff ; /* %_NONTEXT_% */ }

  /* Const symbols that are not environment symbols                           */
  .rx-lit { /* %SPECIAL%    */ color: #ffa500 ; /* %_NONTEXT_% */ }

/******************************************************************************/
/* Special characters and operators                                           */
/* ================================                                           */
/******************************************************************************/

  .rx-spe, .rx-op { /* %OPERATOR%   */ color: #ffff60 ;font-weight: bold;  }

/******************************************************************************/
/* Taken constants                                                            */
/* ===============                                                            */
/*                                                                            */
/*   I.e., tokens that are "strings or symbols taken as a constant".          */
/*   In the case of strings, quotes and suffixes are assignes styles under    */
/*   "strings".                                                               */
/******************************************************************************/

  .rx-const {

    /*------------------------------------------------------------------------*/
    /* Default highlighting                                                   */
    /*------------------------------------------------------------------------*/

    /* %STATEMENT%  */ color: #ffff60 ;font-weight: bold; 

    /*------------------------------------------------------------------------*/
    /* Built-in functions and procedures                                      */
    /*------------------------------------------------------------------------*/

    &.rx-bif-func, &.rx-bif-proc {
      /* %FUNCTION%   */ background-color: #000000 ; color: #ffffff ;                        /* Color (symbols and strings)        */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ;   }          /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ;   }
    }

    /*------------------------------------------------------------------------*/
    /* Internal functions and procedures, labels and block instruction names  */
    /*------------------------------------------------------------------------*/

    &.rx-int-func, &.rx-int-proc, &.rx-block, &.rx-label {
      /* %FUNCTION%   */ background-color: #000000 ; color: #ffffff ;                        /* Color (symbols and strings)        */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /*------------------------------------------------------------------------*/
    /* ::ROUTINE names, ::ROUTINE function and procedure calls,               */
    /* and namespace-qualified ::ROUTINEs                                     */
    /*------------------------------------------------------------------------*/

    &.rx-routine, &.rx-pkg-func, &.rx-pkg-proc, &.rx-ext-pkg-func,
    &.rx-ext-pkg-proc {
      /* %FUNCTION%   */ background-color: #000000 ; color: #ffffff ;                        /* Color (symbols and strings)        */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /*------------------------------------------------------------------------*/
    /* External calls                                                         */
    /*------------------------------------------------------------------------*/

    &.rx-ext-func, &.rx-ext-proc {
      /* %FUNCTION%   */ background-color: #000000 ; color: #ffffff ;                        /* Color (symbols and strings)        */
                                        /* Italic (symbols and strings)       */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /*------------------------------------------------------------------------*/
    /* Method names                                                           */
    /*------------------------------------------------------------------------*/

    &.rx-method {
      /* %TAG%        */ color: #ffff60 ;font-weight: bold;                              /* Color (symbols and strings)        */
                                        /* Italic (symbols and strings)       */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /*------------------------------------------------------------------------*/
    /* Namespace names                                                        */
    /*------------------------------------------------------------------------*/

    &.rx-namespace {
      /* %STATUSLINE% */ background-color: #ffffff ; color: #0000ff ;font-weight: bold;                       /* Color (symbols and strings)        */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /*------------------------------------------------------------------------*/
    /* Resources                                                              */
    /*------------------------------------------------------------------------*/

    /* Resource name                                                          */
    &.rx-resource {
      /* %PREPROC%    */ color: #ff80ff ;                         /* Color (symbols and strings)        */
      &.rx-ssuf { /* %STRING%     */ color: #ffa0a0 ; }            /* Suffix (for strings)               */
      &.rx-oquo,                        /* Quotes (for strings)               */
      &.rx-cquo { /* %STRING%     */ color: #ffa0a0 ; }
    }

    /* Resource delimiter                                                     */
    &.rx-res-delimiter {
      /* %PREPROC%    */ color: #ff80ff ;
    }

  } /* <-- END OF .rx-const                                                   */

/******************************************************************************/
/* ::RESOURCE data and ignored stuff                                          */
/******************************************************************************/

  /* Resource data                                                            */
  .rx-res-data {
   /* %STRING%     */ color: #ffa0a0 ;
  }

  /* Resource ignored stuff                                                   */
  .rx-res-ignore {
   /* %COMMENT%    */ color: #80a0ff ;
  }

/******************************************************************************/
/* Lua extensions                                                             */
/* ==============                                                             */
/*                                                                            */
/*   Highlighting of Lua operators "and", "not" and "or"; constants "fail",   */
/*   "false", "nil" and "true"; table delimiters "[", "(", ")", "]"; and      */
/*   table field names.                                                       */
/******************************************************************************/

  .rx-lua {
    /* %UNDERLINED% */ color: #add8e6 ;font-weight: bold; text-decoration: underline; 
  }

/******************************************************************************/
/******************************************************************************/
/* END highlight-rexx-dark                                                    */
/******************************************************************************/
/******************************************************************************/

} /* <--- END OF highlight-rexx-vim-dark-koehler                                        */

/******************************************************************************/
/******************************************************************************/
/* END OF BASE SELECTOR highlight-rexx-dark                                   */
/******************************************************************************/
/******************************************************************************/
