<gh_stars>1-10
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

from pygments.style import Style
from pygments.token import (
    Comment, Error, Generic, Keyword, Literal, Name, Number, Operator, Other,
    Punctuation, String, Text, Whitespace)


class JupyterStyle(Style):
    """
    A pygments style using JupyterLab CSS variables.

    The goal is to mimick JupyterLab's codemirror theme.

    Known impossibilities:

    - With pygments, the dot in `foo.bar` is considered an Operator (class: 'o'),
      while in codemirror, it is bare text.
    - With pygments, in both `from foo import bar`, and `foo.bar`, "bar" is
      considered a Name (class: 'n'), while in coremirror, the latter is a property.

Available CSS variables are

  --jp-mirror-editor-keyword-color
  --jp-mirror-editor-atom-color
  --jp-mirror-editor-number-color
  --jp-mirror-editor-def-color
  --jp-mirror-editor-variable-color
  --jp-mirror-editor-variable-2-color
  --jp-mirror-editor-variable-3-color
  --jp-mirror-editor-punctuation-color
  --jp-mirror-editor-property-color
  --jp-mirror-editor-operator-color
  --jp-mirror-editor-comment-color
  --jp-mirror-editor-string-color
  --jp-mirror-editor-string-2-color
  --jp-mirror-editor-meta-color
  --jp-mirror-editor-qualifier-color
  --jp-mirror-editor-builtin-color
  --jp-mirror-editor-bracket-color
  --jp-mirror-editor-tag-color
  --jp-mirror-editor-attribute-color
  --jp-mirror-editor-header-color
  --jp-mirror-editor-quote-color
  --jp-mirror-editor-link-color
  --jp-mirror-editor-error-color
    """

    default_style = ''
    background_color = 'var(--jp-cell-editor-background)'
    highlight_color = 'var(--jp-cell-editor-active-background)'

    styles = {
        Text:                      'var(--jp-mirror-editor-variable-color)',        # no class
        Whitespace:                '',                                              # class: 'w' 
        Error:                     'var(--jp-mirror-editor-error-color)',           # class: 'err'
        Other:                     '',                                              # class: 'x'

        Comment:                   'italic var(--jp-mirror-editor-comment-color)',  # class: 'c'
        #Comment.Multiline:         '',                                             # class: 'cm'
        #Comment.Preproc:           '',                                             # class: 'cp'
        #Comment.Single:            '',                                             # class: 'c1'
        #Comment.Special:           '',                                             # class: 'cs'

        Keyword:                   'bold var(--jp-mirror-editor-keyword-color)',    # class: 'k'
        #Keyword.Constant:          '',                                             # class: 'kc'
        #Keyword.Declaration:       '',                                             # class: 'kd'
        #Keyword.Namespace:         '',                                             # class: 'kn'
        #Keyword.Pseudo:            '',                                             # class: 'kp'
        #Keyword.Reserved:          '',                                             # class: 'kr'
        #Keyword.Type:              '',                                             # class: 'kt'

        Operator:                  'bold var(--jp-mirror-editor-operator-color)',   # class: 'o'
        Operator.Word:             '',                                              # class: 'ow'

        Literal:                   '',                                              # class: 'l'
        Literal.Date:              '',                                              # class: 'ld'

        String:                    'var(--jp-mirror-editor-string-color)',
        #String.Backtick:           '',                                             # class: 'sb'
        #String.Char:               '',                                             # class: 'sc'
        #String.Doc:                '',                                             # class: 'sd'
        #String.Double:             '',                                             # class: 's2'
        #String.Escape:             '',                                             # class: 'se'
        #String.Heredoc:            '',                                             # class: 'sh'
        #String.Interpol:           '',                                             # class: 'si'
        #String.Other:              '',                                             # class: 'sx'
        #String.Regex:              '',                                             # class: 'sr'
        #String.Single:             '',                                             # class: 's1'
        #String.Symbol:             '',                                             # class: 'ss'

        Number:                    'var(--jp-mirror-editor-number-color)',          # class: 'm'
        #Number.Float:              '',                                             # class: 'mf'
        #Number.Hex:                '',                                             # class: 'mh'
        #Number.Integer:            '',                                             # class: 'mi'
        #Number.Integer.Long:       '',                                             # class: 'il'
        #Number.Oct:                '',                                             # class: 'mo'

        Name:                      '',                                              # class: 'n'
        #Name.Attribute:            '',                                             # class: 'na'
        #Name.Builtin:              '',                                             # class: 'nb'
        #Name.Builtin.Pseudo:       '',                                             # class: 'bp'
        #Name.Class:                '',                                             # class: 'nc'
        #Name.Constant:             '',                                             # class: 'no'
        #Name.Decorator:            '',                                             # class: 'nd'
        #Name.Entity:               '',                                             # class: 'ni'
        #Name.Exception:            '',                                             # class: 'ne'
        #Name.Function:             '',                                             # class: 'nf'
        #Name.Property:             '',                                             # class  'py'
        #Name.Label:                '',                                             # class: 'nl'
        #Name.Namespace:            '',                                             # class: 'nn'
        #Name.Other:                '',                                             # class: 'nx'
        #Name.Tag:                  '',                                             # class: 'nt'
        #Name.Variable:             '',                                             # class: 'nv'
        #Name.Variable.Class:       '',                                             # class: 'vc'
        #Name.Variable.Global:      '',                                             # class: 'vg'
        #Name.Variable.Instance:    '',                                             # class: 'vi'

        Generic:                   '',                                              # class: 'g'
        #Generic.Deleted:           '',                                             # class: 'gd',
        #Generic.Emph:              'italic',                                       # class: 'ge'
        #Generic.Error:             '',                                             # class: 'gr'
        #Generic.Heading:           '',                                             # class: 'gh'
        #Generic.Inserted:          '',                                             # class: 'gi'
        #Generic.Output:            '',                                             # class: 'go'
        #Generic.Prompt:            '',                                             # class: 'gp'
        #Generic.Strong:            '',                                             # class: 'gs'
        #Generic.Subheading:        '',                                             # class: 'gu'
        #Generic.Traceback:         '',                                             # class: 'gt'

        Punctuation:               'var(-jp-mirror-editor-punctuation-color)'       # class: 'p'
    }

# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

from pygments.style import Style
from pygments.token import (
    Comment, Error, Generic, Keyword, Literal, Name, Number, Operator, Other,
    Punctuation, String, Text, Whitespace)


class JupyterStyle(Style):
    """
    A pygments style using JupyterLab CSS variables.

    The goal is to mimick JupyterLab's codemirror theme.

    Known impossibilities:

    - With pygments, the dot in `foo.bar` is considered an Operator (class: 'o'),
      while in codemirror, it is bare text.
    - With pygments, in both `from foo import bar`, and `foo.bar`, "bar" is
      considered a Name (class: 'n'), while in coremirror, the latter is a property.

Available CSS variables are

  --jp-mirror-editor-keyword-color
  --jp-mirror-editor-atom-color
  --jp-mirror-editor-number-color
  --jp-mirror-editor-def-color
  --jp-mirror-editor-variable-color
  --jp-mirror-editor-variable-2-color
  --jp-mirror-editor-variable-3-color
  --jp-mirror-editor-punctuation-color
  --jp-mirror-editor-property-color
  --jp-mirror-editor-operator-color
  --jp-mirror-editor-comment-color
  --jp-mirror-editor-string-color
  --jp-mirror-editor-string-2-color
  --jp-mirror-editor-meta-color
  --jp-mirror-editor-qualifier-color
  --jp-mirror-editor-builtin-color
  --jp-mirror-editor-bracket-color
  --jp-mirror-editor-tag-color
  --jp-mirror-editor-attribute-color
  --jp-mirror-editor-header-color
  --jp-mirror-editor-quote-color
  --jp-mirror-editor-link-color
  --jp-mirror-editor-error-color
    """

    default_style = ''
    background_color = 'var(--jp-cell-editor-background)'
    highlight_color = 'var(--jp-cell-editor-active-background)'

    styles = {
        Text:                      'var(--jp-mirror-editor-variable-color)',        # no class
        Whitespace:                '',                                              # class: 'w' 
        Error:                     'var(--jp-mirror-editor-error-color)',           # class: 'err'
        Other:                     '',                                              # class: 'x'

        Comment:                   'italic var(--jp-mirror-editor-comment-color)',  # class: 'c'
        #Comment.Multiline:         '',                                             # class: 'cm'
        #Comment.Preproc:           '',                                             # class: 'cp'
        #Comment.Single:            '',                                             # class: 'c1'
        #Comment.Special:           '',                                             # class: 'cs'

        Keyword:                   'bold var(--jp-mirror-editor-keyword-color)',    # class: 'k'
        #Keyword.Constant:          '',                                             # class: 'kc'
        #Keyword.Declaration:       '',                                             # class: 'kd'
        #Keyword.Namespace:         '',                                             # class: 'kn'
        #Keyword.Pseudo:            '',                                             # class: 'kp'
        #Keyword.Reserved:          '',                                             # class: 'kr'
        #Keyword.Type:              '',                                             # class: 'kt'

        Operator:                  'bold var(--jp-mirror-editor-operator-color)',   # class: 'o'
        Operator.Word:             '',                                              # class: 'ow'

        Literal:                   '',                                              # class: 'l'
        Literal.Date:              '',                                              # class: 'ld'

        String:                    'var(--jp-mirror-editor-string-color)',
        #String.Backtick:           '',                                             # class: 'sb'
        #String.Char:               '',                                             # class: 'sc'
        #String.Doc:                '',                                             # class: 'sd'
        #String.Double:             '',                                             # class: 's2'
        #String.Escape:             '',                                             # class: 'se'
        #String.Heredoc:            '',                                             # class: 'sh'
        #String.Interpol:           '',                                             # class: 'si'
        #String.Other:              '',                                             # class: 'sx'
        #String.Regex:              '',                                             # class: 'sr'
        #String.Single:             '',                                             # class: 's1'
        #String.Symbol:             '',                                             # class: 'ss'

        Number:                    'var(--jp-mirror-editor-number-color)',          # class: 'm'
        #Number.Float:              '',                                             # class: 'mf'
        #Number.Hex:                '',                                             # class: 'mh'
        #Number.Integer:            '',                                             # class: 'mi'
        #Number.Integer.Long:       '',                                             # class: 'il'
        #Number.Oct:                '',                                             # class: 'mo'

        Name:                      '',                                              # class: 'n'
        #Name.Attribute:            '',                                             # class: 'na'
        #Name.Builtin:              '',                                             # class: 'nb'
        #Name.Builtin.Pseudo:       '',                                             # class: 'bp'
        #Name.Class:                '',                                             # class: 'nc'
        #Name.Constant:             '',                                             # class: 'no'
        #Name.Decorator:            '',                                             # class: 'nd'
        #Name.Entity:               '',                                             # class: 'ni'
        #Name.Exception:            '',                                             # class: 'ne'
        #Name.Function:             '',                                             # class: 'nf'
        #Name.Property:             '',                                             # class  'py'
        #Name.Label:                '',                                             # class: 'nl'
        #Name.Namespace:            '',                                             # class: 'nn'
        #Name.Other:                '',                                             # class: 'nx'
        #Name.Tag:                  '',                                             # class: 'nt'
        #Name.Variable:             '',                                             # class: 'nv'
        #Name.Variable.Class:       '',                                             # class: 'vc'
        #Name.Variable.Global:      '',                                             # class: 'vg'
        #Name.Variable.Instance:    '',                                             # class: 'vi'

        Generic:                   '',                                              # class: 'g'
        #Generic.Deleted:           '',                                             # class: 'gd',
        #Generic.Emph:              'italic',                                       # class: 'ge'
        #Generic.Error:             '',                                             # class: 'gr'
        #Generic.Heading:           '',                                             # class: 'gh'
        #Generic.Inserted:          '',                                             # class: 'gi'
        #Generic.Output:            '',                                             # class: 'go'
        #Generic.Prompt:            '',                                             # class: 'gp'
        #Generic.Strong:            '',                                             # class: 'gs'
        #Generic.Subheading:        '',                                             # class: 'gu'
        #Generic.Traceback:         '',                                             # class: 'gt'

        Punctuation:               'var(-jp-mirror-editor-punctuation-color)'       # class: 'p'
    }
# Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. A pygments style using JupyterLab CSS variables.      The goal is to mimick JupyterLab's codemirror theme.      Known impossibilities:      - With pygments, the dot in `foo.bar` is considered an Operator (class: 'o'),       while in codemirror, it is bare text.     - With pygments, in both `from foo import bar`, and `foo.bar`, "bar" is       considered a Name (class: 'n'), while in coremirror, the latter is a property.  Available CSS variables are    --jp-mirror-editor-keyword-color   --jp-mirror-editor-atom-color   --jp-mirror-editor-number-color   --jp-mirror-editor-def-color   --jp-mirror-editor-variable-color   --jp-mirror-editor-variable-2-color   --jp-mirror-editor-variable-3-color   --jp-mirror-editor-punctuation-color   --jp-mirror-editor-property-color   --jp-mirror-editor-operator-color   --jp-mirror-editor-comment-color   --jp-mirror-editor-string-color   --jp-mirror-editor-string-2-color   --jp-mirror-editor-meta-color   --jp-mirror-editor-qualifier-color   --jp-mirror-editor-builtin-color   --jp-mirror-editor-bracket-color   --jp-mirror-editor-tag-color   --jp-mirror-editor-attribute-color   --jp-mirror-editor-header-color   --jp-mirror-editor-quote-color   --jp-mirror-editor-link-color   --jp-mirror-editor-error-color # no class # class: 'w' # class: 'err' # class: 'x' # class: 'c' #Comment.Multiline:         '',                                             # class: 'cm' #Comment.Preproc:           '',                                             # class: 'cp' #Comment.Single:            '',                                             # class: 'c1' #Comment.Special:           '',                                             # class: 'cs' # class: 'k' #Keyword.Constant:          '',                                             # class: 'kc' #Keyword.Declaration:       '',                                             # class: 'kd' #Keyword.Namespace:         '',                                             # class: 'kn' #Keyword.Pseudo:            '',                                             # class: 'kp' #Keyword.Reserved:          '',                                             # class: 'kr' #Keyword.Type:              '',                                             # class: 'kt' # class: 'o' # class: 'ow' # class: 'l' # class: 'ld' #String.Backtick:           '',                                             # class: 'sb' #String.Char:               '',                                             # class: 'sc' #String.Doc:                '',                                             # class: 'sd' #String.Double:             '',                                             # class: 's2' #String.Escape:             '',                                             # class: 'se' #String.Heredoc:            '',                                             # class: 'sh' #String.Interpol:           '',                                             # class: 'si' #String.Other:              '',                                             # class: 'sx' #String.Regex:              '',                                             # class: 'sr' #String.Single:             '',                                             # class: 's1' #String.Symbol:             '',                                             # class: 'ss' # class: 'm' #Number.Float:              '',                                             # class: 'mf' #Number.Hex:                '',                                             # class: 'mh' #Number.Integer:            '',                                             # class: 'mi' #Number.Integer.Long:       '',                                             # class: 'il' #Number.Oct:                '',                                             # class: 'mo' # class: 'n' #Name.Attribute:            '',                                             # class: 'na' #Name.Builtin:              '',                                             # class: 'nb' #Name.Builtin.Pseudo:       '',                                             # class: 'bp' #Name.Class:                '',                                             # class: 'nc' #Name.Constant:             '',                                             # class: 'no' #Name.Decorator:            '',                                             # class: 'nd' #Name.Entity:               '',                                             # class: 'ni' #Name.Exception:            '',                                             # class: 'ne' #Name.Function:             '',                                             # class: 'nf' #Name.Property:             '',                                             # class  'py' #Name.Label:                '',                                             # class: 'nl' #Name.Namespace:            '',                                             # class: 'nn' #Name.Other:                '',                                             # class: 'nx' #Name.Tag:                  '',                                             # class: 'nt' #Name.Variable:             '',                                             # class: 'nv' #Name.Variable.Class:       '',                                             # class: 'vc' #Name.Variable.Global:      '',                                             # class: 'vg' #Name.Variable.Instance:    '',                                             # class: 'vi' # class: 'g' #Generic.Deleted:           '',                                             # class: 'gd', #Generic.Emph:              'italic',                                       # class: 'ge' #Generic.Error:             '',                                             # class: 'gr' #Generic.Heading:           '',                                             # class: 'gh' #Generic.Inserted:          '',                                             # class: 'gi' #Generic.Output:            '',                                             # class: 'go' #Generic.Prompt:            '',                                             # class: 'gp' #Generic.Strong:            '',                                             # class: 'gs' #Generic.Subheading:        '',                                             # class: 'gu' #Generic.Traceback:         '',                                             # class: 'gt' # class: 'p'