133 lines
8.3 KiB
Python
133 lines
8.3 KiB
Python
# 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'
|
|
}
|